[gelöst] BCP-47 (IETF Language Tags)

Rund um die LCL und andere Komponenten
Antworten
hubblec4
Beiträge: 341
Registriert: Sa 25. Jan 2014, 17:50

[gelöst] BCP-47 (IETF Language Tags)

Beitrag von hubblec4 »

Hallo Lazarusgemeinde

Gibt es bereits für Lazarus ein Package was die BCP-47 kann?

Ich habe dazu ein paar Internetseiten besucht und gelesen
https://tools.ietf.org/search/bcp47
https://www.w3.org/International/articl ... s/index.en
https://www.iana.org/assignments/langua ... g-registry

Ich würde das alles gerne als Package haben wollen, um es effizient in verschiedene Projekte einzubinden.

EDIT:
Es gibt nun ein Package.
Zuletzt geändert von hubblec4 am Di 19. Okt 2021, 02:15, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: BCP-47 (IETF Language Tags)

Beitrag von wp_xyz »

Sind damit die Länderabkürzungen "de", "en", "fr" etc gemeint? In der Unit gettext gibt es die Routine GetLanguageIDs, mit der du die Spracheinstellung des Systems abfragen kannst (bzw ähnlich auch LazGetLanguageIDs in LazUTF8):

Code: Alles auswählen

uses
  gettext;
procedure TForm1.FormCreate(Sender: TObject);
var
  lang, fblang: String;
begin
  GetLanguageIDs(lang, fblang);
  Caption := Format('%s (%s)', [lang, fblang]);
end; 
In den Units Translations und LCLTranslator kannst du die Länderabkürzungen verwenden, um entsprechende übersetzte Sprachdateien zu verwenden.

https://wiki.lazarus.freepascal.org/Tra ... r_programs
https://wiki.lazarus.freepascal.org/Eve ... anslations
https://wiki.lazarus.freepascal.org/Ste ... plications

hubblec4
Beiträge: 341
Registriert: Sa 25. Jan 2014, 17:50

Re: BCP-47 (IETF Language Tags)

Beitrag von hubblec4 »

Hi wp_xyz

Also BCP-47 ist mehr als nur Ländercodes. Es ist ein komplexes System aus Sprachen-ErweiterteSprachen-Länder-und-noch-mehr codes, welche als Tags dargestellt werden.

Gut erklärt ist das in dem Link zu w3.org.

Mein problem sind die vielen RFC's die da verwendet werden, mit ihren laaangen Listen an Code-Kürzeln. So richtig, habe ich keine vollständigen Listen gefunden.

BeniBela
Beiträge: 309
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: BCP-47 (IETF Language Tags)

Beitrag von BeniBela »

hubblec4 hat geschrieben:
Fr 2. Jul 2021, 16:44

Gibt es bereits für Lazarus ein Package was die BCP-47 kann?
Wie kann?

In meinen Internet Tools baue ich BCP-47-Codes für Stringvergleiche mit Unicode collations über libicu

hubblec4
Beiträge: 341
Registriert: Sa 25. Jan 2014, 17:50

Re: BCP-47 (IETF Language Tags)

Beitrag von hubblec4 »

BeniBela hat geschrieben:
Sa 3. Jul 2021, 17:41
hubblec4 hat geschrieben:
Fr 2. Jul 2021, 16:44

Gibt es bereits für Lazarus ein Package was die BCP-47 kann?
Wie kann?
Naja, so das man halt in seinem Tool direkt auf die ganzen Listen zugreifen kann.

Um zum beispiel eine Combobox zubefüllen oder eine Listview usw.

Des weiteren gibt es ja auch bestimmte Abhängigkeiten: So zum beispiel für die ExtLang, da dürfen nur bestimmte Erweiterungen mit bestimmten Sprach-codes kombiniert werden.

Oder das verwenden der Scripts welche auch nur für bestimmte Sprach-Codes verwendet werden Dürfen/sollten.

dann muss ja so ein BCP-47 tag geparst werden, dabei sollte der Tag-String gültig sein und die ausgelesenen Codes der jeweiligen Sprache zugeordnet werden können.



Immerhin habe ich jetzt schonmal vollständige Listen "gefunden" welche vom DEBIAN Team bereitgestellt werden.
https://salsa.debian.org/iso-codes-team/iso-codes/

das sind zwar erstmal "nur" die für die Sprachen, Länder und Scripts...

und für Extended-language und Sprach-Varianten kann man direkt die von IANA nutzen
https://www.iana.org/assignments/langua ... g-registry


Und all diese Listen und dessen interne logik möchte ich gern als Package haben.
Ich habe da auch schon selbst mal angefangen eines zu basteln und werde es vielleicht weiter machen.

Antworten