12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- MODULE Localization; (** AUTHOR "staubesv"; PURPOSE "Localization interface"; *)
- IMPORT
- Configuration;
- TYPE
- Language* = RECORD
- code* : ARRAY 3 OF CHAR; (* ISO 936-1 language code *)
- END;
- Languages* = POINTER TO ARRAY OF Language;
- VAR
- currentLanguage : Language;
- preferenceList : Languages; (* {(preferenceList # NIL) & (LEN(preferenceList) >= 0) } *)
- PROCEDURE GetCurrentLanguage*() : Language;
- BEGIN {EXCLUSIVE}
- RETURN currentLanguage;
- END GetCurrentLanguage;
- PROCEDURE GetLanguagePreferences*() : Languages;
- BEGIN {EXCLUSIVE}
- RETURN preferenceList;
- END GetLanguagePreferences;
- PROCEDURE SetLanguage*(CONST language : Language);
- BEGIN {EXCLUSIVE}
- currentLanguage := language;
- preferenceList[0] := currentLanguage;
- END SetLanguage;
- PROCEDURE GetDefaultLanguage;
- VAR
- res: WORD;
- BEGIN
- Configuration.Get("Local.Language", currentLanguage.code, res);
- IF res # Configuration.Ok THEN
- currentLanguage.code := "en"
- END
- END GetDefaultLanguage;
- BEGIN
- GetDefaultLanguage;
- NEW(preferenceList, 1);
- preferenceList[0] := currentLanguage;
- END Localization.
- System.Free Localization ~
|