Internationalization
The Internationalization section configures translations. A translatable text is defined as a key-value pair. For all available languages, a key is assigned the respective translation as a value.
All keys configured in the Internationalization section are available as translatable items. Translatable items can be used to replace texts integrated in the application (user interface elements, headings, help texts, …) in the configuration so that they can be addressed by the language control.These text elements are thereby displayed in the VC Map by the language selected in the language setting.
| In order to use translatable items, the translation keys must be used in place of the static text in the respective element editor. This translation key is picked up in the internationalization editor that provides the respective translation per language. |
There are two ways to create translations in the Internationalization section:
-
Add Language is used to add all existing keys of translatable items at this point in time as entries. This option allows to perform a full translation of all items into a new language. This includes both, items of the user interface that are provided by default, and entries previously added via the internationalization editor for variable elements of the VC Map.
-
Add Entry is used to add translatable items for variable elements of the VC Map that are added during configuration. This applies, for example, to headlines, titles of layers, oblique imagery collections or viewpoints, or to contents of the feature info. Thus, attribute values of geodata consisting of alphanumeric codes can be translated into natural language for display in the feature info via the internationalization editor.
| The general actions for editing components are explained here. |
Add Language
With click on a new language can be added.
By default, two languages are available for the VC Map user interface: German (de) and English (en).
New languages can be added by taking the key-value pairs from an existing language and adjusting them. After adding the language entry, the internationalization editor opens to adjust the values accordingly.
The following parameters can be configured for internationalization:
General Settings
| Option | Description |
|---|---|
Name (ID) |
Unique name (identifier) for the internationalization entry. For new entries a default identifier is generated which can be renamed manually. For languages, the name corresponds to the name of the language. |
Language |
Selection of a language key whose translations can be displayed and edited under Entries. |
Entries
| Option | description |
|---|---|
Key |
Key of the element to translate. |
Translation |
Translation text in the current selected language. |
Add Entry
Clicking on adds a new entry and opens the internationalization editor.
Individual entries are suitable for all text elements that are added individually in the course of app configuration and are to be addressed by the language control equivalent to standard components of the user interface.
There is currently no strict syntax for the structure of a translation key. However, for the sake of unambiguous mapping and maintainability, it is recommended to adopt the following naming convention when defining the translation key:
<section>.<item> or <section>.<item>.<subitem>.
The following parameters can be configured for internationalization:
General Settings
| Option | Description |
|---|---|
Name (ID) |
Unique name (identifier) for the internationalization entry. For new entries a default identifier is generated which can be renamed manually. For languages, the name corresponds to the name of the language. |
Language |
Selection of a language key whose translations can be displayed and edited under Entries. |
Entries
| Option | description |
|---|---|
Key |
Key of the element to translate. |
Translation |
Translation text in the current selected language. |
Examples
Single Elements
Typical examples of individual entries of translations include headings, titles of layers or views, or help texts.
Following the recommended naming convention, here are some examples to define the associated translation keys:
example heading
app.headline
example layer title
layer.buildings.title
example layer tooltip
layer.buildings.tooltip
Codelists
Codelists for translating alphanumeric attribute values into natural language can be built by adding new entries. Here the principle for translating languages is applied to attribute values.
There is currently no strict syntax for building codelists. However, for the sake of unambiguous mapping and maintainability, it is recommended to use the following naming convention when defining a code list:
codeList.<attributeName>.<alphanumericCode> for translating attribute values.
and if necessary
codeList.<attributename>.attributeKey for the translation of attribute names.
Example roof type in dot-notation
The dot notation is used to access the values of the respective key in the JSON object. In reverse, this means that the associated JSON object that maps this setting is created as a nested object, where the first key corresponds to the language key:
Example roof type as JSON-object
{
"name": "codelistRoof",
"de": {
"codeList": {
"roofType": {
"0": "nicht definiert",
"1000": "Flachdach",
"2100": "Pultdach",
"2200": "Versetztes Pultdach",
"3100": "Satteldach",
"3200": "Walmdach",
"3300": "Krüppelwalmdach",
"3400": "Mansardendach",
"3500": "Zeltdach",
"3600": "Kegeldach",
"3700": "Kuppeldach",
"3800": "Sheddach",
"3900": "Bogendach",
"4000": "Turmdach",
"5000": "Mischform",
"9999": "Sonstiges",
"attributeKey": "Dachform"
}
}
},
"en": {
"codeList": {
"roofType": {
"0": "not defined",
"1000": "flat roof",
"2100": "monopitch roof",
"2200": "dual pent roof",
"3100": "gabled roof",
"3200": "hipped roof",
"3300": "half-hipped roof",
"3400": "mansard roof",
"3500": "pavilion roof",
"3600": "cone roof",
"3700": "copula roof",
"3800": "sawtooth roof ",
"3900": "arch roof",
"4000": "pyramidal broach roof",
"5000": "combination of roof forms",
"9999": "other",
"attributeKey": "Roof Type"
}
}
}
}
Example building function as JSON-object
{
"name": "codelistFunction",
"de": {
"codeList": {
"function": {
"31001_1000": "Wohngebäude",
"31001_1010": "Wohnhaus",
"31001_1020": "Wohnheim",
"31001_1021": "Kinderheim",
"31001_1022": "Seniorenheim",
"31001_1023": "Schwesternwohnheim",
"31001_1024": "Studenten-, Schülerwohnheim",
"31001_1025": "Schullandheim",
"31001_1100": "Gemischt genutztes Gebäude mit Wohnen",
"31001_1110": "Wohngebäude mit Gemeinbedarf",
"31001_1120": "Wohngebäude mit Handel und Dienstleistungen",
"31001_1121": "Wohn- und Verwaltungsgebäude",
"31001_1122": "Wohn- und Bürogebäude",
"31001_1123": "Wohn- und Geschäftsgebäude",
"31001_1130": "Wohngebäude mit Gewerbe und Industrie",
"31001_1131": "Wohn- und Betriebsgebäude",
"31001_1210": "Land- und forstwirtschaftliches Wohngebäude",
"31001_1220": "Land- und forstwirtschaftliches Wohn- und Betriebsgebäude",
"31001_1221": "Bauernhaus",
"31001_1222": "Wohn- und Wirtschaftsgebäude",
"31001_1223": "Forsthaus",
"31001_1310": "Gebäude zur Freizeitgestaltung",
"31001_1311": "Ferienhaus",
"31001_1312": "Wochenendhaus",
"31001_1313": "Gartenhaus",
"31001_2000": "Gebäude für Wirtschaft oder Gewerbe",
"31001_2010": "Gebäude für Handel und Dienstleistungen",
"31001_2020": "Bürogebäude",
"31001_2030": "Kreditinstitut",
"31001_2040": "Versicherung",
"31001_2050": "Geschäftsgebäude",
"31001_2051": "Kaufhaus",
"31001_2052": "Einkaufszentrum",
"31001_2053": "Markthalle",
"31001_2054": "Laden",
"31001_2055": "Kiosk",
"31001_2056": "Apotheke",
"31001_2060": "Messehalle",
"31001_2070": "Gebäude für Beherbergung",
"31001_2071": "Hotel, Motel, Pension",
"31001_2072": "Jugendherberge",
"31001_2073": "Hütte (mit Übernachtungsmöglichkeit)",
"31001_2074": "Campingplatzgebäude",
"31001_2080": "Gebäude für Bewirtung",
"31001_2081": "Gaststätte, Restaurant",
"31001_2082": "Hütte (ohne Übernachtungsmöglichkeit)",
"31001_2083": "Kantine",
"31001_2090": "Freizeit- und Vergnügungsstätte",
"31001_2091": "Festsaal",
"31001_2092": "Kino",
"31001_2093": "Kegel-, Bowlinghalle",
"31001_2094": "Spielkasino",
"31001_2100": "Gebäude für Gewerbe und Industrie",
"31001_2110": "Produktionsgebäude",
"31001_2111": "Fabrik",
"31001_2112": "Betriebsgebäude",
"31001_2113": "Brauerei",
"31001_2114": "Brennerei",
"31001_2120": "Werkstatt",
"31001_2121": "Sägewerk",
"31001_2130": "Tankstelle",
"31001_2131": "Waschstraße, Waschanlage, Waschhalle",
"31001_2140": "Gebäude für Vorratshaltung",
"31001_2141": "Kühlhaus",
"31001_2142": "Speichergebäude",
"31001_2143": "Lagerhalle, Lagerschuppen, Lagerhaus",
"31001_2150": "Speditionsgebäude",
"31001_2160": "Gebäude für Forschungszwecke",
"31001_2170": "Gebäude für Grundstoffgewinnung",
"31001_2171": "Bergwerk",
"31001_2172": "Saline",
"31001_2180": "Gebäude für betriebliche Sozialeinrichtung",
"31001_2200": "Sonstiges Gebäude für Gewerbe und Industrie",
"31001_2210": "Mühle",
"31001_2211": "Windmühle",
"31001_2212": "Wassermühle",
"31001_2213": "Schöpfwerk",
"31001_2220": "Wetterstation",
"31001_2310": "Gebäude für Handel und Dienstleistung mit Wohnen",
"31001_2320": "Gebäude für Gewerbe und Industrie mit Wohnen",
"31001_2400": "Betriebsgebäude zu Verkehrsanlagen (allgemein)",
"31001_2410": "Betriebsgebäude für Straßenverkehr",
"31001_2411": "Straßenmeisterei",
"31001_2412": "Wartehalle",
"31001_2420": "Betriebsgebäude für Schienenverkehr",
"31001_2421": "Bahnwärterhaus",
"31001_2422": "Lokschuppen, Wagenhalle",
"31001_2423": "Stellwerk, Blockstelle",
"31001_2424": "Betriebsgebäude des Güterbahnhofs",
"31001_2430": "Betriebsgebäude für Flugverkehr",
"31001_2431": "Flugzeughalle",
"31001_2440": "Betriebsgebäude für Schiffsverkehr",
"31001_2441": "Werft (Halle)",
"31001_2442": "Dock (Halle)",
"31001_2443": "Betriebsgebäude zur Schleuse",
"31001_2444": "Bootshaus",
"31001_2450": "Betriebsgebäude zur Seilbahn",
"31001_2451": "Spannwerk zur Drahtseilbahn",
"31001_2460": "Gebäude zum Parken",
"31001_2461": "Parkhaus",
"31001_2462": "Parkdeck",
"31001_2463": "Garage",
"31001_2464": "Fahrzeughalle",
"31001_2500": "Gebäude zur Versorgung",
"31001_2501": "Gebäude zur Energieversorgung",
"31001_2510": "Gebäude zur Wasserversorgung",
"31001_2511": "Wasserwerk",
"31001_2512": "Pumpstation",
"31001_2513": "Wasserbehälter",
"31001_2520": "Gebäude zur Elektrizitätsversorgung",
"31001_2521": "Elektrizitätswerk",
"31001_2522": "Umspannwerk",
"31001_2523": "Umformer",
"31001_2527": "Reaktorgebäude",
"31001_2528": "Turbinenhaus",
"31001_2529": "Kesselhaus",
"31001_2540": "Gebäude für Fernmeldewesen",
"31001_2560": "Gebäude an unterirdischen Leitungen",
"31001_2570": "Gebäude zur Gasversorgung",
"31001_2571": "Gaswerk",
"31001_2580": "Heizwerk",
"31001_2590": "Gebäude zur Versorgungsanlage",
"31001_2591": "Pumpwerk (nicht für Wasserversorgung)",
"31001_2600": "Gebäude zur Entsorgung",
"31001_2610": "Gebäude zur Abwasserbeseitigung",
"31001_2611": "Gebäude der Kläranlage",
"31001_2612": "Toilette",
"31001_2620": "Gebäude zur Abfallbehandlung",
"31001_2621": "Müllbunker",
"31001_2622": "Gebäude zur Müllverbrennung",
"31001_2623": "Gebäude der Abfalldeponie",
"31001_2700": "Gebäude für Land- und Forstwirtschaft",
"31001_2720": "Land- und forstwirtschaftliches Betriebsgebäude",
"31001_2721": "Scheune",
"31001_2723": "Schuppen",
"31001_2724": "Stall",
"31001_2726": "Scheune und Stall",
"31001_2727": "Stall für Tiergroßhaltung",
"31001_2728": "Reithalle",
"31001_2729": "Wirtschaftsgebäude",
"31001_2732": "Almhütte",
"31001_2735": "Jagdhaus, Jagdhütte",
"31001_2740": "Treibhaus, Gewächshaus",
"31001_2741": "Treibhaus",
"31001_2742": "Gewächshaus, verschiebbar",
"31001_3000": "Gebäude für öffentliche Zwecke",
"31001_3010": "Verwaltungsgebäude",
"31001_3011": "Parlament",
"31001_3012": "Rathaus",
"31001_3013": "Post",
"31001_3014": "Zollamt",
"31001_3015": "Gericht",
"31001_3016": "Botschaft, Konsulat",
"31001_3017": "Kreisverwaltung",
"31001_3018": "Bezirksregierung",
"31001_3019": "Finanzamt",
"31001_3020": "Gebäude für Bildung und Forschung",
"31001_3021": "Allgemein bildende Schule",
"31001_3022": "Berufsbildende Schule",
"31001_3023": "Hochschulgebäude (Fachhochschule, Universität)",
"31001_3024": "Forschungsinstitut",
"31001_3030": "Gebäude für kulturelle Zwecke",
"31001_3031": "Schloss",
"31001_3032": "Theater, Oper",
"31001_3033": "Konzertgebäude",
"31001_3034": "Museum",
"31001_3035": "Rundfunk, Fernsehen",
"31001_3036": "Veranstaltungsgebäude",
"31001_3037": "Bibliothek, Bücherei",
"31001_3038": "Burg, Festung",
"31001_3040": "Gebäude für religiöse Zwecke",
"31001_3041": "Kirche",
"31001_3042": "Synagoge",
"31001_3043": "Kapelle",
"31001_3044": "Gemeindehaus",
"31001_3045": "Gotteshaus",
"31001_3046": "Moschee",
"31001_3047": "Tempel",
"31001_3048": "Kloster",
"31001_3050": "Gebäude für Gesundheitswesen",
"31001_3051": "Krankenhaus",
"31001_3052": "Heilanstalt, Pflegeanstalt, Pflegestation",
"31001_3053": "Ärztehaus, Poliklinik",
"31001_3060": "Gebäude für soziale Zwecke",
"31001_3061": "Jugendfreizeitheim",
"31001_3062": "Freizeit-, Vereinsheim, Dorfgemeinschafts-, Bürgerhaus",
"31001_3063": "Seniorenfreizeitstätte",
"31001_3064": "Obdachlosenheim",
"31001_3065": "Kinderkrippe, Kindergarten, Kindertagesstätte",
"31001_3066": "Asylbewerberheim",
"31001_3070": "Gebäude für Sicherheit und Ordnung",
"31001_3071": "Polizei",
"31001_3072": "Feuerwehr",
"31001_3073": "Kaserne",
"31001_3074": "Schutzbunker",
"31001_3075": "Justizvollzugsanstalt",
"31001_3080": "Friedhofsgebäude",
"31001_3081": "Trauerhalle",
"31001_3082": "Krematorium",
"31001_3090": "Empfangsgebäude",
"31001_3091": "Bahnhofsgebäude",
"31001_3092": "Flughafengebäude",
"31001_3094": "Gebäude zum U-Bahnhof",
"31001_3095": "Gebäude zum S-Bahnhof",
"31001_3097": "Gebäude zum Busbahnhof",
"31001_3098": "Empfangsgebäude Schifffahrt",
"31001_3100": "Gebäude für öffentliche Zwecke mit Wohnen",
"31001_3200": "Gebäude für Erholungszwecke",
"31001_3210": "Gebäude für Sportzwecke",
"31001_3211": "Sport-, Turnhalle",
"31001_3212": "Gebäude zum Sportplatz",
"31001_3220": "Badegebäude",
"31001_3221": "Hallenbad",
"31001_3222": "Gebäude im Freibad",
"31001_3230": "Gebäude im Stadion",
"31001_3240": "Gebäude für Kurbetrieb",
"31001_3241": "Badegebäude für medizinische Zwecke",
"31001_3242": "Sanatorium",
"31001_3260": "Gebäude im Zoo",
"31001_3261": "Empfangsgebäude des Zoos",
"31001_3262": "Aquarium, Terrarium, Voliere",
"31001_3263": "Tierschauhaus",
"31001_3264": "Stall im Zoo",
"31001_3270": "Gebäude im botanischen Garten",
"31001_3271": "Empfangsgebäude des botanischen Gartens",
"31001_3272": "Gewächshaus (Botanik)",
"31001_3273": "Pflanzenschauhaus",
"31001_3280": "Gebäude für andere Erholungseinrichtung",
"31001_3281": "Schutzhütte",
"31001_3290": "Touristisches Informationszentrum",
"31001_9998": "Nach Quellenlage nicht zu spezifizieren",
"51001_1001": "Wasserturm",
"51001_1002": "Kirchturm",
"51001_1003": "Aussichtsturm",
"51001_1004": "Kontrollturm",
"51001_1005": "Kühlturm",
"51001_1006": "Leuchtturm",
"51001_1007": "Feuerwachturm",
"51001_1008": "Sende-,Funkturm",
"51001_1009": "Stadt-,Torturm",
"51001_1010": "Förderturm",
"51001_1011": "Bohrturm",
"51001_1012": "Schloss-, Burgturm",
"51001_9998": "Nach Quellenlage nicht zu spezifizieren",
"51001_9999": "Sonstiges",
"51002_1215": "Biogasanlage",
"51002_1220": "Windrad",
"51002_1230": "Solarzellen",
"51002_1250": "Mast",
"51002_1251": "Freileitungsmast",
"51002_1260": "Funkmast",
"51002_1280": "Radioteleskop",
"51002_1290": "Schornstein",
"51002_1330": "Kran",
"51002_1331": "Drehkran",
"51002_1332": "Portalkran",
"51002_1333": "Laufkran",
"51002_1340": "Trockendock",
"51002_1350": "Hochofen",
"51002_1400": "Umformer",
"51002_9999": "Sonstiges",
"51003_1201": "Silo",
"51003_1205": "Tank",
"51003_1206": "Gasometer",
"51003_9999": "Sonstiges",
"51006_1430": "Zuschauertribüne",
"51006_1431": "Zuschauertribüne, überdacht",
"51006_1432": "Zuschauertribüne, nicht überdacht",
"51006_1440": "Stadion",
"51006_1470": "Sprungschanze",
"51006_1490": "Gradierwerk",
"51006_9999": "Sonstiges",
"51007_1100": "Historische Wasserleitung",
"51007_1110": "Aquaedukt",
"51007_1210": "Wachturm",
"51007_1400": "Befestigung (Burgruine)",
"51007_1410": "Burg",
"51007_1500": "Historische Mauer",
"51007_1510": "Stadtmauer",
"51007_1520": "Sonstige historische Mauer",
"51007_9999": "Sonstiges",
"51009_1610": "Überdachung",
"51009_1611": "Carport",
"51009_1700": "Mauer",
"51009_1750": "Denkmal",
"51009_9999": "Sonstiges",
"52003_1010": "Schiffshebewerk",
"52003_1020": "Kammerschleuse",
"53001_1800": "Brücke",
"53001_1806": "Drehbrücke",
"53001_1807": "Hebebrücke",
"53001_1808": "Zugbrücke",
"53001_1830": "Hochbahn, Hochstraße",
"53001_1880": "Schutzgalerie, Einhausung",
"53001_1890": "Schleusenkammer",
"53009_2030": "Staumauer",
"53009_2050": "Wehr",
"53009_2060": "Sicherheitstor",
"53009_2070": "Siel",
"53009_2080": "Sperrwerk",
"53009_2090": "Schöpfwerk",
"attributeKey": "Funktion"
}
}
}
}
| To apply a code list, in the Feature Info section for value mapping this defined syntax and a template string instead of the alphanumeric code has to be used, e.g. `codeList.<attribute name>.${value}`. |
| Apply applies the changes made to the displayed app. See also Editing and saving. |