多语言应用程序中的语言字体错误

时间:2013-09-04 12:38:22

标签: android fonts multilingual

我正在努力创建一个多语言的应用程序,英语和希腊语。 我想要的只是第一个屏幕上的2个按钮,您将选择语言,然后所有其他应用程序将使用该语言。我用2个按钮和一个段落做了一个简单的测试项目,当你按下英文按钮时,文本将是英文,当你按下希腊按钮时,文本将是希腊语。 我的代码

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_page2);

    Button english = (Button) findViewById(R.id.english);
    english.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Locale locale = new Locale("en_UK"); 
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;

            getApplicationContext().getResources().updateConfiguration(config, null);
    Intent intent = new Intent(v.getContext(), MainActivity.class);
            startActivityForResult(intent, 0);
        }

    });
    Button greek = (Button) findViewById(R.id.greek);
    greek.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Locale locale = new Locale("el_GR"); 
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;

            getApplicationContext().getResources().updateConfiguration(config, null);
            Intent intent = new Intent(v.getContext(), MainActivity.class);
            startActivityForResult(intent, 0);
        }

    });



}

带有英文段落的strings.xml位于原始res / values文件夹中 而带有希腊语的strings.xml在res / values-el

这是来自测试应用的3个屏幕截图 这是一些截图:

http://s18.postimg.org/dw0dvdsr9/Screenshot_2013_09_04_15_27_58.png

http://s18.postimg.org/6u2g96p5h/Screenshot_2013_09_04_15_28_08.png

http://s18.postimg.org/7kv6eyrit/Screenshot_2013_09_04_15_28_14.png

非字母的东西是希腊段落

1 个答案:

答案 0 :(得分:0)

问题是你的手机不支持希腊语的unicode字符, 有两种解决方案,

1)这意味着您的设备使用的字体不支持希腊字符(因此unknown unicode)。您需要找到更好的字体并在您的应用程序中使用它(请参阅http://developer.android.com/reference/android/graphics/Typeface.html docs)

2)获取英语到希腊语的在线unicode转换器或谷歌翻译器,并将这些单词复制到strings.xml