gpt4 book ai didi

javascript - 客户端本地化

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:15 24 4
gpt4 key购买 nike

我想进行客户端本地化(即嵌入 javascript 和资源文件)。一切正常,直到我们在同一个项目(“XXX.Web”)中同时拥有 js 文件和资源文件。

作为需求的一部分,我不得不将所有资源文件移出到“XXX.LocalizedResources”项目,同时我仍然需要为 js 文件进行客户端本地化。

我在 Web 项目的 AssemblyInfo.vb 中尝试了以下内容:

之前:

Assembly: System.Web.UI.WebResource("XXX.Web.GlobalStrings.js", "text/javascript")

Assembly: System.Web.UI.ScriptResource("XXX.Web.GlobalStrings.js", "XXX.Web.Resources", "Resources")

之后:

Assembly: System.Web.UI.WebResource("XXX.Web.GlobalStrings.js", "text/javascript")

Assembly: System.Web.UI.ScriptResource("XXX.Web.GlobalStrings.js", "XXX.LocalizedResources.Resources", "Resources")

(请忽略上面几行的语法错误)我现在得到的错误如下:

Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "XXX.LocalizedResources.Resources" was correctly embedded or linked into assembly "XXX.Web" at compile time, or that all the satellite assemblies required are loadable and fully signed.

通过少量研究,我发现只有 web 或 web.extension 项目可以用于“Assembly: System.Web.UI.ScriptResource (...)”。

我尝试在“XXX.LocalizedResources”的 AssemblyInfo 中添加“Assembly: InternalsVisibleTo("XXX.Web")”,但这无助于使资源文件对“XXX.Web”打开。此外,资源文件已经公开,并且也设置了嵌入选项。

知道如何将外部资源文件嵌入 javascript 以进行客户端本地化吗?

最佳答案

将此包含在您的页面中:

<script>
//declare string variable defaults here
function UrlExists(url){
var http = new XMLHttpRequest();
try{http.open('HEAD', url, false);
http.send();
return http.status!=404;
}catch(e){return false;}
}

var lang=navigator.userLanguage || navigator.language.toLowerCase();
var langsrc = document.createElement("script");
langsrc.type = "text/javascript";

if(UrlExists(lang+".js")){
langsrc.src=lang+".js";
}else{
langsrc.src="en-us.js";
}
document.body.appendChild(langsrc);
//rest of code here:
</script>

然后为每种支持的语言设置一个文件,例如 en-us.js

//en-us.js localization for....
//set language specific variables here
//define language specific functions

此文件与您的页面位于同一目录中,并且可以由该目录中的所有页面共享(经过修改,它可以用于多个目录或站点或只有一个文件,但要保持简单以便您可以调味)

如果可能的话,我建议您为变量使用 JSON 对象,这样您就可以与服务器端共享单个本地化文件(例如 php) 如果需要,您可能需要为任何本地化的 javascript 函数包含第二个文件任何。

关于javascript - 客户端本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com