---
title: Hoofdstuk 23. Lokalisatie - I18N/L10N gebruiken en instellen
part: Deel III. Systeembeheer
prev: books/handbook/virtualization
next: books/handbook/cutting-edge
showBookMenu: true
weight: 27
params:
  path: "/books/handbook/l10n/"
---

[[l10n]]
= Lokalisatie - I18N/L10N gebruiken en instellen
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 23
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/l10n/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[l10n-synopsis]]
== Overzicht

FreeBSD is een zeer gedistribueerd project met gebruikers over de gehele wereld. Dit hoofdstuk behandelt de internationalisatie- en lokalisatie-eigenschappen van FreeBSD die niet-Engelssprekende gebruikers echt werk laten verzetten. Er zitten veel aspecten van de i18n-implementatie in zowel de systeem- als applicatieniveaus, dus waar mogelijk wordt de lezer verwezen naar meer specifieke bronnen.

Na dit hoofdstuk weet de lezer:

* Hoe verschillende talen en locales gecodeerd zijn op moderne besturingssystemen.
* Hoe de locale in te stellen voor een login-shell.
* Hoe de console voor niet-Engelse talen in te stellen.
* Hoe het X Window systeem effectief met meerdere talen te gebruiken.
* Waar meer informatie te vinden over het schrijven van i18n-respecterende applicaties.

Veronderstelde voorkennis:

* Weten hoe aanvullende applicaties van derde partijen geïnstalleerd worden (crossref:ports[ports,Applicaties installeren. pakketten en ports]).

[[l10n-basics]]
== Beginselen

=== Wat is I18N/L10N?

Ontwikkelaars hebben internationalisatie ("internationalization" afgekort tot de term I18N, de eerste en de laatste letter en het aantal tussenliggende letters. L10N gebruikt hetzelfde schema voor naamgeving en komt van "localization". Samen staan I18N/L10N methoden, protocollen en applicaties gebruikers toe de taal van hun keuze te gebruiken.

I18N-applicaties zijn geprogrammeerd door gebruik te maken van I18N-gereedschappen van bibliotheken. Daarmee kunnen ontwikkelaars een eenvoudig bestand schrijven en menu's en teksten weergeven in elke taal. Programmeurs worden door het FreeBSD Project sterk aangemoedigd deze conventie te volgen.

=== Waarom I18N/L10N gebruiken?

I18N/L10N wordt gebruikt als een gebruiker gegevens wil bekijken, invoeren of verwerken in niet-Engelse talen.

=== Welke talen worden ondersteund door I18N?

I18N en L10N zijn niet FreeBSD specifiek. Momenteel kan er gekozen worden uit de meeste grote wereldtalen, inclusief maar niet beperkt tot: Chinees, Duits, Japans, Koreaans, Frans, Russisch en Vietnamees.

[[using-localization]]
== Lokalisatie gebruiken

In al zijn pracht is I18N niet FreeBSD specifiek maar een conventie. Het FreeBSD Project moedigt iedereen aan FreeBSD te helpen deze conventie te gebruiken.

Lokalisatie-instellingen zijn gebaseerd op drie hoofdtermen: Taalcode, Landcode en Codering. Localenamen zijn als volgt opgebouwd:

[.programlisting]
....
Taalcode_Landcode.Codering
....

=== Taal- en landcodes

Om een FreeBSD-systeem (of een ander I18N-ondersteunend UNIX(R) achtig systeem) te lokaliseren naar een bepaalde taal, moet de gebruiker de codes voor het specifieke land en taal achterhalen. Landcodes geven applicaties aan welke variatie van de gegeven taal gebruikt moet worden. Ook webbrowsers, SMTP/POP-servers, webservers, enzovoorts maken beslissingen gebaseerd op die codes. Hieronder staan voorbeelden van taal- en landcodes:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Taal- en landcode
| Omschrijving

|en_US
|Engels - Verenigde Staten

|ru_RU
|Russisch voor Rusland

|zh_TW
|Traditioneel Chinees voor Taiwan
|===

Een complete lijst van beschikbare locales is beschikbaar via:

[source,shell]
....
% locale -a
....

=== Coderingen

Sommige talen gebruiken andere ASCII-coderingen dan 8-bit, wijde of multibyte karakters, zie man:multibyte[3]. Oudere programma's herkennen die niet en interpreteren ze foutief als controlekarakters aan. Afhankelijk van de implementatie moeten gebruikers eventueel een applicatie met wijde of multibyte karakterondersteuning compileren, of hem correct instellen. Om wijde of multibyte karakters in te kunnen voeren en te kunnen verwerken levert de link:https://www.FreeBSD.org/ports/[FreeBSD Portscollectie] voor elke taal programma's. Hiervoor staat I18N-documentatie in de respectievelijke FreeBSD Port.

Voor het bouwen van een gewenste applicatie met lokalisatie is het verstandig de applicatiedocumentatie te bekijken om te bepalen hoe de juiste waarden doorgegeven kunnen worden naar configure, Makefile of de compiler.

Houd rekening met:

* Taalspecifieke enkele C-karakters karakterverzamelingen (zie man:multibyte[3]), bijvoorbeeld ISO8859-1, ISO-8859-15, KOI8-R of CP437.
* Wijde of multibyte coderingen, bijvoorbeeld EUC of Big5.

Een lijst met actieve karakterverzamelingen staat bij de http://www.iana.org/assignments/character-sets[IANA Registry].

[NOTE]
====
FreeBSD gebruikt in plaats hiervan X11-compatible locale-coderingen.
====

=== I18N applicaties

In het FreeBSD Ports en Package systeem hebben I18N-applicaties `I18N` in hun naam zodat ze eenvoudig herkend kunnen worden. Toch ondersteunen ze niet altijd iedere mogelijk gewenste taal.

[[setting-locale]]
=== Locale instellen

Meestal is het voldoende om de waarde van de localenaam te exporteren als `LANG` in de login-shell. Dit kan door die waarde in [.filename]#~/.login_conf# van de gebruiker of in [.filename]#~/.profile#, [.filename]#~/.bashrc# of [.filename]#~/.cshrc#) van de gebruiker te zetten. Het is niet nodig om localedeelverzamelingen als `LC_CTYPE` of `LC_CTIME` in te stellen. Bij de taalspecifieke FreeBSD documentatie staat vaak nog informatie.

De twee volgende omgevingsvariabelen moeten in de instellingenbestanden ingesteld worden:

* `LANG` voor de POSIX(R) man:setlocale[3] functies.
* `MM_CHARSET` voor de MIME karakters voor applicaties.

Dit is inclusief het instellen van de gebruikers-shell, het instellen van de specifieke applicatie en de instellingen voor X11.

==== Methoden om locale in te stellen

Er zijn twee methoden om de locale in te stellen en beiden worden hieronder beschreven. De eerste (aanbevolen) methode is door middel van het toekennen van omgevingsvariabelen in de <<login-class,loginklasse>> en de tweede is mogelijk door middel van het toevoegen van de omgevingsvariabelen aan het <<startup-file,opstartbestand>> van de systeem-shell.

[[login-class]]
===== Methode loginklasse

Deze methode biedt de mogelijkheid om omgevingsvariabelen die nodig zijn voor de localenaam en MIME karakterverzamelingen éénmalig voor elke mogelijke shell toe te kennen in plaats van door toekenning via het opstartbestand van elke shell. <<usr-setup,Gebruikersinstellingen>> kunnen door de gebruiker zelf worden gemaakt en voor <<adm-setup,Beheerdersinstellingen>> zijn superuser-rechten nodig.

[[usr-setup]]
====== Gebruikersinstellingen

Hieronder staat een minimaal voorbeeld van een [.filename]#.login_conf# bestand in de thuismap van een gebruiker die beide variabelen heeft ingesteld op Latin-1 codering:

[.programlisting]
....
me:\
  :charset=ISO-8859-1:\
  :lang=de_DE.ISO8859-1:
....

Hieronder staat is een voorbeeld van een [.filename]#.login_conf# die variabelen instelt voor traditioneel Chinees in BIG-5 codering. Er zijn veel andere variabelen ingesteld zijn omdat sommige software localevariabelen niet correct respecteert voor Chinees, Japans, en Koreaans.

[.programlisting]
....
# Gebruikers die geen valuta eenheden of tijdformaten voor Taiwan
# willen gebruiken kunnen handmatig elke variabele wijzigen.
me:\
  :lang=zh_TW.Big5:\
  :setenv=LC_ALL=zh_TW.Big5:\
  :setenv=LC_COLLATE=zh_TW.Big5:\
  :setenv=LC_CTYPE=zh_TW.Big5:\
  :setenv=LC_MESSAGES=zh_TW.Big5:\
  :setenv=LC_MONETARY=zh_TW.Big5:\
  :setenv=LC_NUMERIC=zh_TW.Big5:\
  :setenv=LC_TIME=zh_TW.Big5:\
  :charset=big5:\
  :xmodifiers="@im=gcin": # Stel gcin in als XIM invoerserver
....

Zie <<adm-setup,Beheerdersinstellingen>> en man:login.conf[5] voor meer details.

[[adm-setup]]
===== Beheerdersinstellingen

Er dient gecontroleerd te worden of loginklasse voor gebruikers, [.filename]#/etc/login.conf#, de juiste taal instelt door de volgende instellingen in [.filename]#/etc/login.conf#:

[.programlisting]
....
taalnaam|accountstitel:\
  :charset=MIME_karakterverzameling:
  :lang=localenaam:\
  :tc=default:
....

Voor het bovenstaande voorbeeld dat gebruik maakt van Latin-1 ziet dat er als hieronder uit:

[.programlisting]
....
german|Duitse gebruikersaccounts:\
  :charset=ISO-8859-1:\
  :lang=de_DE.ISO8859-1:\
  :tc=default:
....

Voer voordat de gebruikers login class wordt gewijzigd het volgende uit:

[source,shell]
....
# cap_mkdb /etc/login.conf
....

om de nieuwe configuratie in [.filename]#/etc/login.conf# zichtbaar te maken voor het systeem.

===== Loginklasse wijzigen met man:vipw[8]

Met `vipw` kunnen nieuwe gebruikers toegevoegd worden en de instellingen dienen ongeveer als volgt uit te zien:

[.programlisting]
....
gebruiker:wachtwoord:1111:11:taal:0:0:Gebruikersnaam:/home/gebruiker:/bin/sh
....

===== Loginklasse wijzigen met man:adduser[8]

Met `adduser` kunnen nieuwe gebruikers toegevoegd worden. Hierna dient één van de volgende stappen uitgevoerd te worden:

* `defaultclass = taal` instellen in [.filename]#/etc/adduser.conf#. In dit geval dient er voor alle gebruikers van andere talen een `default` klasse ingevoerd te worden.
* Er kan ook gekozen worden voor een antwoord op de vraag over taal vanuit man:adduser[8]:
+
[source,shell]
....
Enter login class: default []: 
....

* Ook kan het volgende gebruikt worden voor elke gebruiker die een andere taal gebruikt:
+
[source,shell]
....
# adduser -class taal
....

===== Loginklasse wijzigen met man:pw[8]

Als man:pw[8] wordt gebruikt om nieuwe gebruikers toe te voegen:

[source,shell]
....
# pw useradd gebruikersnaam -L taal
....

[[startup-file]]
===== Methode opstartbestand shell

[NOTE]
====
Deze methode wordt niet aanbevolen omdat er instellingenen nodig zijn voor elke mogelijke shell. Het advies is de <<login-class,Methode Loginklasse>> te gebruiken.
====

Om de localenaam en MIME karakterverzameling toe te voegen kunnen gewoon twee omgevingsvariabelen ingesteld worden, zoals hieronder te zien is, in [.filename]#/etc/profile# en/of [.filename]#/etc/csh.login# opstartbestanden voor shells. Hier wordt de Duitse taal als voorbeeld gebruikt:

In [.filename]#/etc/profile#:

[.programlisting]
....
LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET
....

Of in [.filename]#/etc/csh.login#:

[.programlisting]
....
setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1
....

Het is ook mogelijk de bovenstaande instructies toe te toevoegen [.filename]#/usr/shared/skel/dot.profile# (ongeveer gelijk aan wat hierboven in [.filename]#/etc/profile# is gebruikt) of aan [.filename]#/usr/shared/skel/dot.login# (ongeveer gelijk aan wat hierboven in [.filename]#/etc/csh.login# is gebruikt).

Voor X11:

In [.filename]#$HOME/.xinitrc#:

[.programlisting]
....
LANG=de_DE.ISO8859-1; export LANG
....

Of:

[.programlisting]
....
setenv LANG de_DE.ISO8859-1
....

Afhankelijk van de shell (zie boven).

[[setting-console]]
=== Console instellen

Voor alle enkele C-karakters karakterverzamelingen worden de juiste lettertypen voor het console ingesteld in [.filename]#/etc/rc.conf# voor de taal in kwestie met:

[.programlisting]
....
font8x16=lettertypenaam
font8x14=fontnaam
font8x8=fontnaam
....

De _lettertypenaam_ komt uit de map [.filename]#/usr/shared/syscons/fonts# zonder het achtervoegsel [.filename]#.fnt#.

De gebruiker dient ervoor te zorgen dat indien nodig de juiste enkele C-karakters karakterverzameling wordt ingesteld met [.filename]#/stand/sysinstall#. In sysinstall kan [.guimenuitem]#Configure# en [.guimenuitem]#Console# gekozen worden. Het is ook mogelijk het volgende aan [.filename]#/etc/rc.conf# toe te voegen:

[.programlisting]
....
scrnmap=schermmappingnaam
keymap=toetsenmappingnaam
keychange="fkey_nummer sequentie"
....

_schermmappingnaam_ komt uit de map [.filename]#/usr/shared/syscons/scrnmaps# zonder het achtervoegsel [.filename]#.scm#. Meestal is een schermmapping met een overeenkomstig gemapt lettertype nodig als workaround om bit 8 naar bit 9 uit te breiden op een lettertype-karaktermatrix van een VGA-adapter in pseudografische gebieden, dat wil zeggen om letters uit dat gebied te halen als het schermlettertype een bit 8 kolom gebruikt.

Als de moused daemon is ingeschakeld met de onderstaande regel in [.filename]#/etc/rc.conf#, dan wordt aangeraden de muiscursorinformatie in de volgende paragraaf te bekijken.

[.programlisting]
....
moused_enable="YES"
....

Standaard neemt de muiscursor van het man:syscons[4] stuurprogramma het bereik 0xd0-0xd3 van de tekenverzameling in beslag. Als een ingestelde taal dit bereik gebruikt, moet het cursorbereik hierbuiten gehaald worden. Om de workaround voor FreeBSD aan te zetten kan de volgende regel aan [.filename]#/etc/rc.conf# toegevoegd worden:

[.programlisting]
....
mousechar_start=3
....

De _toetsenmappingnaam_ komt uit de map [.filename]#/usr/shared/syscons/keymaps# zonder het achtervoegsel [.filename]#.kbd#. Als niet precies duidelijk is welke toetsenmapping te gebruiken, kan de toetsenmapping getest worden met man:kbdmap[1] zonder opnieuw op te starten.

`keychange` is nodig om functietoetsen zo te programmeren dat ze overeenkomen met het geselecteerde terminaltype omdat functietoetssequenties niet in de toetsenmapping gedefinieerd kunnen worden.

Er dient ook een controle te zijn op een juiste instelling van het juiste terminaltype voor het console in [.filename]#/etc/ttys# voor alle `ttyv*` regels. De huidige instellingen zijn:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Karakterverzameling
| Terminaltype

|ISO8859-1 of ISO-8859-15
|`cons25l1`

|ISO8859-2
|`cons25l2`

|ISO8859-7
|`cons25l7`

|KOI8-R
|`cons25r`

|KOI8-U
|`cons25u`

|CP437 (VGA standaardinstelling)
|`cons25`

|US-ASCII
|`cons25w`
|===

Voor wijde of multibyte karaktertalen kan je juiste FreeBSD port in de map [.filename]#/usr/ports/taal# gebruikt worden. Sommige ports verschijnen als console terwijl het systeem ze als serieële vtty ziet. Er dienen dus voldoende vtty's gereserveerd te zijn voor zowel X11 als de pseudo-serieële console. Hier is een gedeeltelijke lijst van applicaties voor het gebruik van andere talen in console:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Taal
| Locatie

|traditioneel Chinees (BIG-5)
|package:chinese/big5con[]

|Japans
|package:japanese/kon2-16dot[] of package:japanese/mule-freewnn[]

|Koreaans
|package:korean/han[]
|===

=== X11 instellen

Hoewel X11 geen deel is van het FreeBSD Project wordt het hier wel besproken voor FreeBSD gebruikers. Meer details zijn te vinden op de http://www.x.org/[Xorg website] of op de website van een andere X11 server die gebruikt wordt.

In [.filename]#~/.Xresources# kunnen applicatiespecifieke I18N instellingen gemaakt worden als lettertypen, menu's, enzovoort.

==== Lettertypen weergeven

Eerst moet Xorg server (package:x11-servers/xorg-server[]), geïnstalleerd worden en daarna de TrueType(R) lettertypen van de taal. Door de gewenste locale in te stellen worden de menu's en dergelijke in de gekozen taal weergegeven.

==== Niet-Engelse karakters invoeren

Het X11 Input Method (XIM) protocol is een nieuwe standaard voor alle X11-cliënts. Alle X11-applicaties horen geschreven te worden als XIM-cliënts die invoer aannemen van de XIM-invoerservers. Er zijn meerdere XIM-servers beschikbaar voor verschillende talen.

=== Printerinstellingen

Sommige enkele C-karakters karakterverzamelingen zijn standaard hardware-gecodeerd in printers. Voor wijde of multibyte karakterverzamelingen is een speciale installatie nodig en het gebruik van apsfilter wordt dan aangeraden. Een document kan ook naar PostScript(R) of PDF formaat omgezet worden door gebruik te maken van taalspecifieke conversieprogramma's.

=== Kernel en bestandssystemen

Het FreeBSD Snelle Bestandssysteem (FFS) is 8-bit schoon, dus het kan gebruikt worden met elke enkele C-karakters karakterverzameling (zie man:multibyte[3]), maar er is geen karakterverzamelingnaam opgeslagen in het bestandssysteem. Het is dus rauw 8-bit en het weet niets van coderingsbevelen. Officieel ondersteunt FFS nog geen enkele vorm van wijde of multibyte karakterverzamelingen. Toch hebben sommige wijde of multibyte karakterverzamelingen onafhankelijke patches voor FFS die ondersteuning inschakelen. Dit zijn tijdelijke oplossingen of hacks die niet overdraagbaar zijn en daarom is besloten ze niet in de source tree op te nemen. Op de websites van de talen staan de patchbestanden en meer informatie.

Voor het FreeBSD MS-DOS(R) bestandssysteem kan geschakeld worden tussen MS-DOS(R), Unicode karakterverzamelingen en gekozen FreeBSD bestandssysteem-karakterverzamelingen. man:mount_msdosfs[8] beschijft de details.

[[l10n-compiling]]
== I18N-programma's compileren

Veel FreeBSD Ports zijn geschikt gemaakt voor FreeBSD met I18N-ondersteuning. Een aantal daarvan zijn gemarkeerd met "-I18N" in de portnaam. Deze en nog veel andere programma's hebben ingebouwde ondersteuning voor I18N en behoeven geen speciale aandacht.

Toch is het voor sommige applicaties zoals MySQL nodig dat de [.filename]#Makefile# ingesteld is met de specifieke karakterverzameling. Dit wordt normaliter gedaan in de [.filename]#Makefile# of door middel van het doorgeven van een waarde aan configure in de broncode.

[[lang-setup]]
== FreeBSD lokaliseren naar talen

[[ru-localize]]
=== Russisch (KOI8-R codering)

Voor meer informatie over KOI8-R codering, zie de http://koi8.pp.ru/[KOI8-R References (Russian Net Character Set)].

==== Locale instellen

Voeg de volgende regels toe aan [.filename]#~/.login_conf# bestand:

[.programlisting]
....
me:Mijn account:\
  :charset=KOI8-R:\
  :lang=ru_RU.KOI8-R:
....

Zie eerder in dit hoofdstuk voor voorbeelden over het opzetten van de <<setting-locale,locale>>.

==== Console instellen

* Voeg de volgende regel toe aan [.filename]#/etc/rc.conf#:
+
[.programlisting]
....
mousechar_start=3
....

* Gebruik ook de volgende instellingen in [.filename]#/etc/rc.conf#:
+
[.programlisting]
....
keymap="ru.utf-8"
scrnmap="utf-82cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"
....

* Voor elke `ttyv*` regel in [.filename]#/etc/ttys#, gebruik `cons25r` als het terminaltype.

Zie eerder in dit hoofdstuk voor voorbeelden over het opzetten van de <<setting-console,console>>.

==== Printer instellen

Aangezien de meeste printers met Russische karakters met hardware-codepagina CP866 komen, is een speciaal uitvoerfilter nodig om KOI8-R om te zetten in CP866. Zo'n filter is standaard geïnstalleerd als [.filename]#/usr/libexec/lpr/ru/koi2alt#. Een [.filename]#/etc/printcap# regel voor een Russische printer moet er uit zien als:

[.programlisting]
....
lp|Russische lokale lijnprinter:\
  :sh:of=/usr/libexec/lpr/ru/koi2alt:\
  :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
....

Zie man:printcap[5] voor een gedetailleerde beschrijving.

==== MS-DOS(R) bestandssysteem en Russische bestandsnamen

De volgende voorbeeld man:fstab[5] regel zet ondersteuning aan voor Russische bestandsnamen gekoppeld op MS-DOS(R) bestandssystemen:

[.programlisting]
....
/dev/ad0s2  /dos/c  msdos rw,-Wkoi2dos,-Lru_RU.KIO8-R 0	0
....

De `-L` optie selecteert de te gebruiken localenaam, en `-W` stelt de karakteromzettabel in. Om de `-W` te gebruiken moet [.filename]#/usr# gemount zijn voor de MS-DOS(R) partitie omdat de omzettabellen zich bevinden in [.filename]#/usr/libdata/msdosfs#. man:mount_msdosfs[8] geeft verdere uitleg.

==== X11 instellen

. Voer eerst de <<setting-locale,niet-X lokale instellingen>> uit zoals beschreven.
. Installeer bij gebruik van Xorg het package package:x11-fonts/xorg-fonts-cyrillic[].
+ 
Controleer de `"Files"` sectie in [.filename]#/etc/X11/xorg.conf# bestand. Zorg dat de volgende regel _vóór_ andere `FontPath` regels staan:
+
[.programlisting]
....
FontPath  "/usr/local/lib/X11/fonts/cyrillic"
....
+
[NOTE]
====
Zie de Ports Collectie voor meer cyrillic fonts.
====

. Om een Russisch toetsenbord te activeren dient het volgende in het `"Keyboard"` gedeelte van [.filename]#xorg.conf# te staan:
+
[.programlisting]
....
XkbLayout "ru"
XkbOptions  "grp:caps_toggle"
....
+ 
Voor Xorg:
+
[.programlisting]
....
Option  "XkbLayout"	"us,ru"
Option	"XkbOptions"  "grp:caps_toggle"
....
+ 
Ook moet daar `XkbDisable` uitgeschakeld (uitgecomment) zijn.
+ 
Voor `grp:toggle` is de RUS/LAT-schakelaar kbd:[Rechter Alt] voor de `grp:ctrl_shift_toggle` schakelaar zal dat kbd:[Ctrl+Shift] zijn. Voor `grp:caps_toggle` zal de RUS/LAT-schakelaar kbd:[CapsLock] zijn. De oude kbd:[CapsLock] functie is nog steeds beschikbaar via kbd:[Shift+CapsLock] (alleen in LAT-modus). `grp:caps_toggle` werkt om onbekende reden niet in Xorg.
+ 
Als er "Windows(R)" toetsen op een toetsenbord zitten en het blijkt dat sommige niet-alfabetische toetsen verkeerd gemapt zijn in RUS-modus, dan kan de volgende regel aan [.filename]#xorg.conf# toegevoegd worden:
+
[.programlisting]
....
Option  "XkbVariant"  ",winkeys"
....
+
[NOTE]
====
Het Russische XKB toetsenbord hoeft niet te werken met niet-gelokaliseerde applicaties.
====

[NOTE]
====
Minimaal gelokaliseerde applicaties moeten vroeg in het programma een aanroep naar de `XtSetLanguageProc (NULL, NULL,);` functie doen.

In http://koi8.pp.ru/xwin.html[KOI8-R for X Window] staan meer instructies over het lokaliseren van X11-applicaties.
====

=== Traditioneel Chinees voor Taiwan

Het FreeBSD-Taiwan Project heeft een Chinese HOWTO voor FreeBSD op http://netlab.cse.yzu.edu.tw/\~statue/zh-l10n-tut/[http://netlab.cse.yzu.edu.tw/~statue/zh-l10n-tut/] die gebruik maakt van veel Chinese ports. De huidige redacteur voor de `FreeBSD Chinese HOWTO` is Shen Chuan-Hsing mailto:statue@freebsd.sinica.edu.tw[statue@freebsd.sinica.edu.tw].

Chuan-Hsing Shen heeft de http://netlab.cse.yzu.edu.tw/\~statue/cfc[Chinese FreeBSD Collection (CFC)] gemaakt met gebruik van FreeBSD-Taiwan's `zh-L10N-tut`. De packages en scriptbestanden zijn beschikbaar op link:ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC[ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC].

=== Duits (alle ISO 8859-1 talen)

Slaven Rezic mailto:eserte@cs.tu-berlin.de[eserte@cs.tu-berlin.de] heeft een tutorial geschreven over het gebruik van umlauten op een FreeBSD-machine. De tutorial is in het Duits geschreven en staat op link:ttp://user.cs.tu-berlin.de/\~eserte/FreeBSD/doc/umlaute/umlaute.html[ttp://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html].

=== Grieks

Nikos Kokkalis mailto:nickkokkalis@gmail.com[nickkokkalis@gmail.com] heeft een compleet artikel over Griekse ondersteuning in FreeBSD geschreven. Het is beschikbaar als deel van de officiële Griekse FreeBSD-documentatie, in https://www.FreeBSD.org/doc/el/articles/greek-language-support/[http://www.freebsd.org/doc/el/articles/greek-language-support/]. Merk opdat dit _alleen_ in het Grieks beschikbaar is.

=== Japans en Koreaans

Japanse lokalisatie staat beschreven op http://www.jp.FreeBSD.org/[http://www.jp.FreeBSD.org/] en de Koreaanse lokalisatie staat op http://www.kr.FreeBSD.org/[http://www.kr.FreeBSD.org/].

=== Niet-Engelstalige FreeBSD documentatie

Sommige delen van de FreeBSD-documentatie zijn naar andere talen vertaald. Hiernaar staan links op de link:https://www.FreeBSD.org/[hoofdsite] of in [.filename]#/usr/shared/doc#.
