Domino 9 und frühere Versionen > ND8: Entwicklung - XPages

Localization - Sprachabhängige Berechnung von View- und Dokument-Inhalten

<< < (2/2)

Driri:
Args, das war der Schubs in die richtige Richtung. In der View sind Dokumente enthalten, bei denen das Feld nicht gefüllt ist. Dann kommt natürlich ein Leerstring zurück.

Oh man, manchmal hat man wirklich Tomaten auf den Augen  :-[

Danke Ulrich, ich teste noch mal kurz gegen, aber ich denke das wars.

Driri:
Jopp, das wars. Danke Ulrich, Wochenende gerettet  ;D

Driri:
Für die View mußte ich noch ein wenig basteln, habs jetzt aber soweit ich das testen konnte lauffähig. Allerdings ist mein Fall vermutlich etwas speziell, da die zu lokalisierende Kategorie immer gefüllt ist. Ich muß hier also keine Leerwerte berücksichtigen.

Daher noch ein paar Tipps, falls noch jemand vor dem Problem steht.

Der grobe Aufbau ist im Ausgangsposting skizziert. Probleme hatte ich vor allem mit der Anzeige von Nicht-Kategoriezeilen und künstlichen Unterkategorien (z.B. Kategorie\\Unterkategorie).


Mein Script zur Berechnung der lokalisierbaren Spalte sieht jetzt so aus :


--- Code: ---var cat = @ReplaceSubstring(rowData.getColumnValue("Category")," ","");
var catStr = String(cat);
if (catStr=="") {
return "";
} else {
return categories[catStr];
}

--- Ende Code ---

Somit bekomme ich in einer Kategoriezeile den lokalisierten String für die Kategorie und in allen Nicht-Kategoriezeilen einen Leerwert.


Die künstlichen Unterkategorien setzt das View Control automatisch um. Das war für mich die nächste Falle, denn ich hatte in den Sprachdateien immer nur die vollständigen Kategorien übersetzt, also z.B.

Werbemittel\Anzeige=Advertising\Ad

Dann läuft man allerdings auf einen Runtime Error, weil Kategorie und künstliche Unterkategorie getrennt übersetzt werden. Man muß also in den Sprachdateien jeweils alle möglichen Kategorien und Unterkategorien einbauen, also in diesem Beispiel :

Werbemittel=Advertising
Anzeige=Ad


Worauf mich Stephan Wissel noch auf Stackoverflow hingewiesen hat :

Die Sortierung der übersetzten Kategorien entspricht der Sortierung der Ausgangssprache.

Kategorien in der Ausgangssprache


--- Zitat ---Auto
Baum
Haus
Strasse

--- Ende Zitat ---

Kategorien in Englisch


--- Zitat ---Car
Tree
House
Street

--- Ende Zitat ---


Dafür habe ich auch noch keine Lösung.

eknori (retired):

--- Zitat ---Die Sortierung der übersetzten Kategorien entspricht der Sortierung der Ausgangssprache.
--- Ende Zitat ---
Auch das ist lösbar; habe hier eine ähnliche Konstellation. Da habe ich in der ersten Spalte die ID eines Dokuments in unserer Anwendung. Die muss "übersetzt" werden, weil sonst die Sortierung der Spalte im Frontend nach der ID und nicht nach dem CompanyName erfolgt.

Ich setze dafür ein xe:objectData control aus der ExtensionLib ein. Hat zudem noch den Vorteil, daß es einen intelligenten Cache Mechanismus enthält. Aber das nur am Rande.


--- Code: --- <xe:objectData var="companies"
createObject="#{javascript:new com.isatweb.cois.ObjectDataCompany();}"
scope="view" />
</xp:this.data>
--- Ende Code ---

In einem POJO baue ich die Daten zusammen. Hier erfolgt auch die Übersetzung der ID in den lesbaren Namen. Als Rückgabe erhalte ich eine Liste, die die jeweiligen Company ObjeKte mit ihren Eigenschaften enthält.  ( Name, Größe etc ) Diese Liste kann ich sortieren.

Das objectData ist an eine DataTable gebunden, in der ich dann die Werte darstelle

--- Code: --- <xp:dataTable id="data_table_companies" rows="15" var="entry"
value="#{javascript:companies.getCompanyList()}">
<xp:column id="colCompanyName">
<xp:this.facets>
<xp:label id="hdrCompanyName" xp:key="header" value="${langString_CRM['COMPANYNAME']}"
themeId="cois.column.header" />
</xp:this.facets>
<xp:text escape="true" id="txtCompanyName" value="#{entry[0]}" />
</xp:column>
--- Ende Code ---

Noch ein Hinweis. Die globalen Variablen für die Sprache stehen beim Aufruf des objectData Objects (noch) nicht zur Verfügung. Daher muss mann den Zugriff auf die resourcen ebenfalls in den Java Code verlegen.

Driri:
Danke für die Info, Ulrich.

Ich muß das glaub ich noch zwei- bis dreimal lesen, bevor ich den Ansatz verstanden habe  ;)

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln