Languages¶
RustGIS's interface is available in 17 languages:
| Language | Code | Language | Code | |
|---|---|---|---|---|
| English | en |
Русский (Russian) | ru |
|
| Deutsch (German) | de |
Türkçe (Turkish) | tr |
|
| Español (Spanish) | es |
Azərbaycanca (Azerbaijani) | az |
|
| Français (French) | fr |
Bahasa Indonesia (Indonesian) | id |
|
| Italiano (Italian) | it |
Tiếng Việt (Vietnamese) | vi |
|
| Nederlands (Dutch) | nl |
简体中文 (Chinese, Simplified) | zh |
|
| Português (Portuguese) | pt |
日本語 (Japanese) | ja |
|
| ქართული (Georgian) | ka |
한국어 (Korean) | ko |
|
| فارسی (Persian) | fa |
Choosing a language¶
By default RustGIS follows your system's language (your browser's on the web) and falls back to
English. To choose one yourself, open Settings › Language. The choice is remembered (in
prefs.json beside the app's settings on the desktop, in the browser on the web). For one run,
set RUSTGIS_LANGUAGE:
RUSTGIS_LANGUAGE=de cargo run --release -p rustgis
Only the interface is translated. Your data, layer and field names, command ids and the command line stay as they are, so scripts work in every language.
Chinese, Japanese and Korean need a CJK font. The desktop app uses one you have installed (Noto
Sans CJK, Microsoft YaHei, Yu Gothic, Malgun Gothic, PingFang, Hiragino or Apple SD Gothic Neo);
the web app downloads Noto Sans from assets.rustgis.app the first time you pick one of these
languages.
Map labels in images exported from the desktop app and the command line draw CJK text with the
same installed font, whatever the interface language. Images exported from the web app have no
CJK font yet, so CJK characters are left out of their labels.
Persian needs a font with both Arabic-script and Latin letters. The desktop app uses one you have
installed (Segoe UI, Tahoma, Arial, Vazirmatn or DejaVu Sans); the web app downloads Vazirmatn from
assets.rustgis.app the first time you pick Persian.
Translating¶
Each language is a catalog of English<TAB>Translation lines in
crates/ui-egui/src/i18n/<code>.tsv. A missing entry shows in English, so translations can grow
one line at a time, and corrections from native speakers are very welcome.
Every catalog uses the same keys. Pull requests can leave new strings out of the catalogs: the
maintainer translates them before each release. To translate a new string, add a line with the
exact English text, a tab, and the translation. Keep {placeholders} such as {n} or {name}
(they may move), keep the line break (\n) in two-line ribbon labels, and leave product, format
and key names (RustGIS, GeoJSON, CSV, Ctrl…) in English. The i18n tests check every catalog's format and
placeholders:
cargo test -p rustgis-ui-egui i18n
Persian is written right to left, which the UI toolkit doesn't lay out yet: its text is put in
display order before it is drawn (crates/ui-egui/src/i18n/rtl.rs), while the panes keep their
left-to-right layout. Other right-to-left languages (Arabic, Hebrew) can use the same layer;
languages needing complex shaping of their own (Hindi, Thai) will follow once the toolkit supports
them.