Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将java语言输出转换为Joomla语言输出_Java_Php_Joomla - Fatal编程技术网

将java语言输出转换为Joomla语言输出

将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) {

在java中,如果我运行:

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();
}