import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Vibrator;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
private Button btn_chooseBoard;
private Button btn_store;
private Button btn_language;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
loadLocale();
setContentView(R.layout.lay_main);
Constants instance = Constants.getInstance();
instance.getAllPlayers();
instance.getAllBoards();
btn_chooseBoard = (Button) findViewById(R.id.btn_startGame);
btn_store = (Button) findViewById(R.id.btn_popup_store);
btn_language = (Button) findViewById(R.id.btn_language);
btn_chooseBoard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, ChooseBoard.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).vibrate(20);
}
});
btn_store.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Store.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).vibrate(20);
}
});
btn_language.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showChangeLanguageDialog();
}
});
}
/**
* Reset game on resume main activity
*/
@Override
public void onResume() {
super.onResume();
GameLogic.getGameLogic().resetGame();
}
private void showChangeLanguageDialog() {
// Array of language to display in alert dialog
final String[] listItems = {"English", "עברית"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Choose Language...");
builder.setSingleChoiceItems(listItems, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (i == 0) {
// English
setLocale("en");
recreate();
} else if (i == 1) {
// Hebrew
setLocale("iw");
recreate();
}
// Dismiss alert dialog when language stored
dialogInterface.dismiss();
}
});
AlertDialog alertDialog = builder.create();
// Show alert dialog
alertDialog.show();
}
private void setLocale(String lang) {
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration configuration = new Configuration();
configuration.locale = locale;
getBaseContext().getResources().updateConfiguration(configuration, getBaseContext().getResources().getDisplayMetrics());
// Save data to shared preference
SharedPreferences.Editor editor = getSharedPreferences("Settings", MODE_PRIVATE).edit();
editor.putString("language", lang);
editor.apply();
}
// Load language saved in shared preference
public void loadLocale() {
SharedPreferences pref = getSharedPreferences("Settings", Activity.MODE_PRIVATE);
String language = pref.getString("language", "");
setLocale(language);
}
}
Android有自己的API来处理不同的地区。用户在Android系统设置中设置他的区域设置。您不需要向用户询问他的区域设置。
只需将英语字符串放入res/values/strings.xml中,将希伯来语字符串放入res/values-iw/strings.xml中。还可以通过使用start/end而不是left/right来处理布局xml中的LTR/RTL。
编辑:我不知道是否可以像在setLocale()中那样更改应用程序的区域设置。
为您的 Flarum 添加新的界面语言很简单。按照下面的说明,下载并安装语言包即可。 在您安装并启用一个语言包后,您可以将其 设置为您论坛的默认语言。当您可以 随时禁用 用不到的语言。如果您有使用任何第三方扩展,请务必在开始前 阅读社区扩展说明。 欲开始,请访问 Flarum 社区上的 Extensions > Languages 标签,并找到您想要安装的语言包。 语言包的安装方式与 扩展 相同。
我们在第十章介绍过国际化和本地化,开发了一个go-i18n库,这小节我们将把该库集成到beego框架里面来,使得我们的框架支持国际化和本地化。 i18n集成 beego中设置全局变量如下: Translation i18n.IL Lang string //设置语言包,zh、en LangPath string //设置语言包所在位置 初始化多语言函数: fu
本文向大家介绍ThinkPHP多语言支持与多模板支持概述,包括了ThinkPHP多语言支持与多模板支持概述的使用技巧和注意事项,需要的朋友参考一下 本文以实例形式简述了ThinkPHP的多语言支持与多模板支持。是ThinkPHP中非常重要的技巧,分享给大家供大家参考。具体如下: 一、ThinkPHP多语言支持: config.php配置文件中添加: Home/Lang/文件夹下建立三个文件夹,分别
下表列出了社区提供的用于将Neo4j工作在嵌入模式的不同语言以及相应的框架。 表 8.1. 由社区贡献的Neo4j嵌入驱动 name language / framework URL Neo4j.rb JRuby https://github.com/andreasronge/neo4j Neo4django Python, Django https://github.com/scholrly/n
问题内容: 我建立了我的项目之一是一个组合和。我可以为这两种语言中的任何一种单独配置项目,但不能一起配置。有什么办法吗?我试过了 sonar.language = java,grvy 但没有工作 问题答案: 2014年4月14日更新: 从SonarQube 4.2开始,支持多语言项目。 如果未设置,则会自动发生。 在这里查看我的示例项目:https : //github.com/bellingar
我正在开发Oracle Forms 10g应用程序。该应用程序是在Oracle Forms 6i和Oracle 10g中开发的,因此我将该应用程序升级为Oracle Forms 10g,并使用Oracle Express 10g报告10g。 问题是应用程序是设计在沙特阿拉伯,NLS_LANG="ARABIC_SAUDI_ARABIA. AR8MSWIN1256",所以表单开发人员和运行时给所有的错