我想知道如何放置我的Bundle文件以进行国际化。Libgdx维基没有说明应该放在哪里(是Android资产文件夹吗?),并且他们使用名为MyBundle的文件作为示例。我可以使用其他名称吗?对我的幼稚表示歉意。
我想知道如何放置我的Bundle文件以进行国际化。Libgdx维基没有说明应该放在哪里(是Android资产文件夹吗?),并且他们使用名为MyBundle的文件作为示例。我可以使用其他名称吗?对我的幼稚表示歉意。
I18NBundle构造函数的第一个参数是FileHandle实例。这意味着您不受一个特定文件夹的限制。请参见libGDX中有关文件处理的此wiki条目。我假设您使用官方wiki中的示例,并且其中包含此行:
FileHandle baseFileHandle = Gdx.files.internal("i18n/MyBundle");
Gdx.files.internal
时,bundle 必须位于 Android 项目的 assets
文件夹中。文件名没有限制。 FileHandle internal = Gdx.files.internal("i18n/MyBundle");
I18NBundle local = I18NBundle.createBundle(internal, Locale.getDefault());
FileHandle internal = Gdx.files.internal("i18n/lang");
I18NBundle local = I18NBundle.createBundle(internal, Locale.ROOT);
I18NBundle portuguese = I18NBundle.createBundle(internal, new Locale("pt"));
如果您想使用手机本地化: 在资产文件夹中创建一个i18n和一个子文件夹(例如MyBundle)。 在此文件夹中放置文件: - MyBundle.properties(默认值,例如:game=Game) - MyBundle_en.properties(game=Game) - MyBundle_fr.properties
初始化: FileHandle internal = Gdx.files.internal("i18n/MyBundle"); I18NBundle local = I18NBundle.createBundle(internal, Locale.getDefault());
用法: String sTitre=local.get("game");
Gdx.files.internal
会给你一个相对于 Android 资源文件夹的FileHandle
。也就是说,在你的情况下,它会在 assets 文件夹中寻找名为 "i18n" 的文件夹,其中包含名为 "MyBundle" 的File
。 - Robert P