将java语言输出转换为Joomla语言输出
在java中,如果我运行:将java语言输出转换为Joomla语言输出,java,php,joomla,Java,Php,Joomla,在java中,如果我运行: Locale.getDefault().toString() 我得到了zh_tw 我将此信息发送到joomla网站,并将语言设置为: $lang = &JFactory::getLanguage(); $lang->setLanguage( $_GET['lang'] ); $lang->load(); public static String convertLanguageToJoomlaFormat(String lang) {
Locale.getDefault().toString()
我得到了zh_tw
我将此信息发送到joomla网站,并将语言设置为:
$lang = &JFactory::getLanguage();
$lang->setLanguage( $_GET['lang'] );
$lang->load();
public static String convertLanguageToJoomlaFormat(String lang) {
String[] parts = lang.split("_");
if(parts.length ==2)
return parts[0]+"-"+parts[1].toUpperCase();
return lang;
}
但是,网站需要以下格式zh TW
看来,如果它不是在确切的格式,语言将不会改变。是否有java或php中的某个函数可以为我转换格式
我意识到我可以自己这样写这个方法:
$lang = &JFactory::getLanguage();
$lang->setLanguage( $_GET['lang'] );
$lang->load();
public static String convertLanguageToJoomlaFormat(String lang) {
String[] parts = lang.split("_");
if(parts.length ==2)
return parts[0]+"-"+parts[1].toUpperCase();
return lang;
}
但是我不确定是否存在特定语言的格式更改的情况。根据Java API文档的语言环境。toString()是: 的编程名称的Getter 整个地区,语言, 国家和变体由分隔 车底。语言总是较低 这种情况下,国家总是处于上风 案例如果缺少该语言,则 字符串将以底杆开始。如果 语言和国家领域 如果缺少,此函数将返回 空字符串,即使变量 字段已填写(您不能有 仅包含一个变体的区域设置 变体必须随附有效的 语言或国家代码)。示例: “恩”,“德德”,“国标”,“恩美赢”, “德鲁·波塞克斯”,“法鲁·麦克” Joomla 1.5声称将IETF RFC3066用于区域名称:,但实际上它总是使用标识符的语言和国家代码部分,如[en GB] 当Java语言环境没有国家部分时,就会出现问题。在这种情况下,您可以使用大写语言代码作为国家代码的“hack”:
String[] tokens = locale.toString().split("_");
if (tokens.length >= 2 && tokens[1].length() == 2) {
joomlaName = tokens[0]+"-"+tokens[1];
} else {
joomlaName = tokens[0]+"-"+tokens[0].toUpperCase();
}