2015-01-26 6 views
2

Интересно, где я могу поместить файл Bundle для интернационализации. Вики Libgdx не объясняет, где (папка активов Android?), И они используют в качестве примера имя файла MyBundle. Могу ли я использовать другое имя? Приносим извинения за мою наивность.Интернационализация Libgdx

ответ

3

Первый аргумент конструктора I18NBundle является экземпляром FileHandle. Это означает, что вы не ограничены одной конкретной папкой. См. this wiki entry об обработке файлов в libGDX. Я полагаю, вы используете образец из официальной вики и имеет следующую строку:

FileHandle baseFileHandle = Gdx.files.internal("i18n/MyBundle"); 

В данном случае, когда мы используем Gdx.files.internal, пучок должен быть расположен в папке assets Android проекта. Также нет ограничений на имя файла.

+0

Позвольте мне увидеть, если я получаю это: когда я использую команду Gdx.files.internal («i18n/MyBundle») программа будет знать, файл будет находиться в папке активов и нагрузки для меня? – Jazzguy

+2

@ César 'Gdx.files.internal' дает вам' FileHandle', относительно папки ресурсов Android. Это означает, что в вашем случае внутри активов он ищет папку с именем «i18n», которая содержит «File» MyBundle. – Springrbua

+0

Теперь он показывает: «Не удается найти пакет для дескриптора базового файла i18n/MyBundle, locale pt_BR». Что может быть? – Jazzguy

1

Создайте папку i18n в активах модуля android. создавать разные файлы свойств в папке i18n, например lang.properties, lang_es.properties, lang_fr.properties и т. д.

Затем я использую этот код в своем проекте.

FileHandle internal = Gdx.files.internal("i18n/lang"); 
I18NBundle local = I18NBundle.createBundle(internal, Locale.ROOT); 
I18NBundle portuguese = I18NBundle.createBundle(internal, new Locale("pt"));