Представляю вашему вниманию i18n.d – простое и минималистичное решение для интернационализации программ на языке D. Работает по принципу GNU gettext и других аналогичных инструментов: для перевода строки, ее нужно обернуть в функцию “_”.
В данный момент модуль имеет поддержку Windows и всех POSIX-систем.
Пример использования:
import std.stdio;
import i18n;
void main()
{
Locale.readLang("locale", ".lang");
writeln("Hello, world!"._);
}
Программа будет искать файлы локализации (*.lang) в каталоге locale. Имена файлов должны соответствовать RFC 3066 (в POSIX-варианте). Кодировка – UTF-8.
Вот пример русской локали (ru_RU.lang):
"Hello, world!" = "Привет, мир!"
"Some text" = "Какой-то текст"
Исходный код i18n.d:
https://gist.github.com/gecko0307/8419717