Мощный инструмент, который обеспечивает возможность переводить текст на лету, который может быть полезен при разработке RestAPI с помощью многоязычности
dotnet add package OftobTech.AppLocalizator
или через Nuget Tools в Visual Studio
Создать папку Lang в корне опубликованного проекта
Внутри этой папки вы можете создать файлы перевода, например,
en.txt
jp.txt
ar.txt
Тогда вы не можете использовать эти инструменты в коде
using OftobTech . AppLocalizator ;
OftobTech . AppLocalizator . Reader . UpdateLangs ( ) ;
var message = T . Compile ( "[Text to transalete]" ) ;
Console . WriteLine ( message ) ;[sentence for translate] : [translated sentence]
[sentence for translate] : [translated sentence]
[sentence for translate] : [translated sentence]
....Каждое переведенное предложение должно заканчиваться переходом на новую строку, текстовый сепаратор для перевода и переведенный текст - это толстая кишка
Библиотека также поддерживает минимальную конфигурацию, которая позволяет настроить язык по умолчанию и местоположение папки с файлами перевода относительно проекта.
Если файл конфигурации не был создан, по умолчанию принимается:
# The default language will be used if it
# was not passed an additional parameter when using the library
DefaultLang: en
# The address of the language files can be either relative or absolute
LangsFilesPath: Langs Вы можете вручную создавать данные файла, используя следующий путь config/lang.conf
Или позвоните в следующую конструкцию:
using OftobTech . AppLocalizator ;
OftobTech . AppLocalizator . Config . PublishConfig ( ) ;Который автоматически создаст конфигурацию по умолчанию
Чтобы изменить язык во время выполнения программы, вам необходимо вызвать метод setLang(string lang)
using OftobTech . AppLocalizator ;
T . setLang ( item . DeviceLanguage ) ;Его также можно вызывать каждый раз перед переводом (стоит учитывать, что запоминается последний разоблаченный язык)
using OftobTech . AppLocalizator ;
T . setLang ( item . DeviceLanguage ) . Compile ( "[Text to transalete]" ) ; Чтобы перевести строки с параметрами в файле перевода, вам необходимо встроить параметры в строку перевода, это делается путем обертывания некоторого идентификатора параметров в вьющиеся скобки Пример:
Hello : Hello {parametr_1} {parametr_2} Чтобы перевести такую строку в метод компиляции, атрибут для замены пропускает объект с помощью Dictionary<string, string> , где ключ - идентификатор параметра (без вьющихся скобков), и значение должно быть заменено на
Пример
using OftobTech . AppLocalizator ;
var params = new Dictionary < string , string > ( ) {
{ "parametr_1" , "beautiful" } ,
{ "parametr_2" , "world!" } ,
}
T . setLang ( item . DeviceLanguage ) . Compile ( "Hello" , params ) ; Библиотека поддерживает 2 режима перевода в обычный режим и время времени, в нормальном режиме, если в файлах перевода не было обнаружено никаких подходящих строк, в строгом режиме возвращается строка, которая была передана, если строка перевода не найдена, нулевой будет возвращен.
Пример
using OftobTech . AppLocalizator ;
T . Compile ( "[Text to transalete]" , true ) ;
/// OR
T . Compile ( "[Text to transalete]" , params , true ) ; Есть случаи, когда есть необходимость добавлять или обновлять языковые файлы, но вы не можете перезагрузить приложение, то метод Updatelangs () может прийти к вашей помощи, что позволяет вам обновлять переводы в памяти приложения на лету
using OftobTech . AppLocalizator ;
OftobTech . AppLocalizator . Reader . UpdateLangs ( ) ;