我是编程的初学者,我已经能够将linkedin share按钮添加到测试网页。
我现在想要更改linkedin共享按钮的语言,以便在用户更改测试网页上的语言时更改语言。
Linkedin用户使用了五个字符的代码(ru_RU, en_US, ko_KR, etc)
。我的测试网页使用两个字符的语言代码(ru, en, ko)
,因此我必须编写一个js
函数来返回五个字符的语言代码。
我使用的是django 1.4,"{{ user.get_profile.language_preference }}"
返回两个字符语言代码。
以下是我尝试“转换”语言代码的内容:
<script type="text/javascript">
function language_code_extended(){
var language_code_value = "{{ user.get_profile.language_preference }}";
if ( language_code_value == ru ) {
return "ru_RU"
}
else if ( language_code_value == "fr" ) {
return "fr_FR"
}
else if ( language_code_value == "ko" ) {
return "ko_KR"
}
else {
return "en_US"
}
}
</script>
这是我的linkedin分享按钮代码:
<!-- LinkedIn Like Button code -->
<script src="//platform.linkedin.com/in.js" type="text/javascript">
//lang: ru_RU
lang: language_code_extended()
</script>
这不起作用。有人可以指出我做错了吗?
感谢。
答案 0 :(得分:2)
可能你需要引用你要比较的字符串,例如:
language_code_value == ru
应该是
language_code_value == "ru"
否则比较将寻找一个名为ru
的变量来比较。
进行此转换时还有一些其他问题需要解决:
对您要处理的每种语言进行if
条件测试很快就会变得笨拙且容易出错。
此映射采用语言代码ru
并映射到代表语言和国家/地区ru_RU
的代码。这涉及假设某人说某种语言是在某个国家,这通常是不正确的。许多语言在多个国家/地区使用,每种语言都有不同的惯例。
为了找到更好的方法,深入挖掘一下可能是值得的。这可能会减少工作量并提供更正确的解决方案。
对不起,我不知道Django,所以我不能指出你正确的方向,但你可能想探索它或第三方包是否可以直接返回正确的IETF语言标签
修改强>
你也会遇到问题:
var language_code_value = "{{ user.get_profile.language_preference }}";
language_code_value
将具有文字字符串值{{ user.get_profile.language_preference }}
,它永远不会比较您要与之比较的两位数语言代码。
答案 1 :(得分:0)
使用不同的方法解决了这个问题 - 而不是JavaScript。