Libgdx国际化

3

我想知道如何放置我的Bundle文件以进行国际化。Libgdx维基没有说明应该放在哪里(是Android资产文件夹吗?),并且他们使用名为MyBundle的文件作为示例。我可以使用其他名称吗?对我的幼稚表示歉意。

4个回答

3

I18NBundle构造函数的第一个参数是FileHandle实例。这意味着您不受一个特定文件夹的限制。请参见libGDX中有关文件处理的此wiki条目。我假设您使用官方wiki中的示例,并且其中包含此行:

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

在这种情况下,当我们使用 Gdx.files.internal 时,bundle 必须位于 Android 项目的 assets 文件夹中。文件名没有限制。

让我看看是否理解正确:当我使用命令Gdx.files.internal("i18n/MyBundle")时,程序会知道文件在assets文件夹中,并为我加载它? - Jazzguy
2
@César Gdx.files.internal 会给你一个相对于 Android 资源文件夹的 FileHandle。也就是说,在你的情况下,它会在 assets 文件夹中寻找名为 "i18n" 的文件夹,其中包含名为 "MyBundle" 的 File - Robert P
现在显示:"找不到基本文件处理程序i18n/MyBundle的包,区域设置为pt_BR"。可能是什么原因? - Jazzguy

1
如果您想使用默认本地语言:
    FileHandle internal = Gdx.files.internal("i18n/MyBundle");
    I18NBundle local = I18NBundle.createBundle(internal, Locale.getDefault());

1
在Android模块的资产中创建i18n文件夹。在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"));

0

如果您想使用手机本地化: 在资产文件夹中创建一个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");


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接