Android - 翻译菜单标签

时间:2012-01-14 03:10:50

标签: android translation multilingual

有一种使用values strings.xml翻译菜单选项卡文本的简单方法吗?   由于菜单文本是在java上设置的,我看不到这样做的方法。

如果没有,哪个更好的方法呢?

解决:

恢复字符串的方法:getString(R.string.tela_principal_menu_tab_um);

2 个答案:

答案 0 :(得分:1)

虽然你不能轻易地在strings.xml中这样做,但我经常在xml中使用菜单资源。它的工作原理如下:

在名为res\的{​​{1}}中创建一个文件夹。

最初像这样设置XML文件

menu

现在您可以将菜单添加到上面指定的空间中。 `<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <!-- menu contents in here... --> </menu>` 可以容纳多个Groups,或者您可以在其中保留Items。每个都有自己的Items,因此您可以快速轻松地引用它。这是一个完整的样本..

id

现在您只需将其添加到代码中即可:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/cmd1" android:title="My 1st Command" android:enabled="true" android:visible="true" />
    <item android:id="@+id/cmd2" android:title="My 2nd Command" android:enabled="true" android:visible="true" />
    <item android:id="@+id/cmd3" android:title="My 3rd Command" android:enabled="true" android:visible="true" />
    <item android:id="@+id/cmd4" android:title="My 4th Command" android:enabled="true" android:visible="true" />
</menu>

最后,添加onClicks:

@Override public boolean onCreateOptionsMenu(final Menu newMenu)
{//Clear the Current Menu
    newMenu.clear();
// Reinflate the Menu
    final MenuInflater _inflate = getMenuInflater();
    _inflate.inflate(R.menu.app_menu, newMenu);
// Set the ClickListener to This
    final int _numItems = newMenu.size();
    for (int _iItem = 0; _iItem < _numItems; _iItem++)
        newMenu.getItem(_iItem).setOnMenuItemClickListener(this);
// Return as Handled (true)
    return true;
}

希望这有帮助!

FuzzicalLogic

答案 1 :(得分:0)

无论您的菜单是使用XML还是Java构建,您都应该能够使用strings.xml。您可以使用getString(R.string.string_name)在Java中访问字符串。请参阅http://developer.android.com/guide/topics/resources/string-resource.html,然后按照本地化的说明进行操作:http://developer.android.com/guide/topics/resources/localization.html了解您的字符串。