我想在asp.net 4.0网站上使用多语言语言切换器。下面的代码有效;
<body>
<div id="polyglotLanguageSwitcher">
<form id="form1" runat="server" >
<form action="#" >
<select id="polyglot-language-options" >
<option id="en" value="en" selected="selected">English</option>
<option id="fr" value="fr">Français</option>
<option id="de" value="de">Deutsch</option>
<option id="it" value="it">Italiano</option>
<option id="es" value="es">Español</option>
</select>
</form>
</form>
</div>
我想使用如下所示(在<form id="form1" runat="server"> </form>
标记中),但它不起作用。
<body>
<form id="form1" runat="server" >
<div id="polyglotLanguageSwitcher">
<form action="#" >
<select id="polyglot-language-options" >
<option id="en" value="en" selected="selected">English</option>
<option id="fr" value="fr">Français</option>
<option id="de" value="de">Deutsch</option>
<option id="it" value="it">Italiano</option>
<option id="es" value="es">Español</option>
</select>
</form>
</div>
</form>
polyglog.js在这里: https://github.com/ixtendo/Polyglot-Language-Switcher/blob/master/js/jquery.polyglot.language.switcher.js
有什么想法吗?
答案 0 :(得分:0)
尝试按照它正在我的工作。我在div polyglotLanguageSwitcher中添加了表单标签,它起作用了:
<body>
<div id="container" style="width: 400px; margin: 140px auto 40px;">
<!-- begin language switcher -->
<div id="polyglotLanguageSwitcher">
<form id="form1" runat="server">
<select id="polyglot-language-options">
<option id="en" value="en">English</option>
<option id="fr" value="fr">Français</option>
<option id="de" value="de">Deutsch</option>
<option id="it" value="it">Italiano</option>
<option id="es" value="es">Español</option>
</select>
</form>
</div>
<!-- end language switcher -->
</div>
</body>
如果你想在div之外的表格然后在js中更改以下行,但我不会推荐它:
var options = $("#" + rootElementId + " > form > select > option");
与
var options = $("#" + rootElementId + " > select > option");
和
$("#" + rootElementId + " form:first-child").remove();
与
$("#" + rootElementId + " :first-child").remove();
答案 1 :(得分:0)
ASP.Net MVC还有其他选择,因此大部分工作都是在服务器端完成的。您需要一个自定义路由,一个控制器钩子(例如在OnActionExecuting
中)和一些改变服务器端文化的技巧。此外,您的所有字符串都必须位于特定于语言环境的资源文件中。
以下是一些可以提供帮助的链接:
我使用这些作为我的参考,为我的MVC应用程序构建通用本地化库。
第1部分自定义路由
我的自定义路线如下所示。它需要2
个字母或2-2
字母语言代码(ISO格式),例如en
或en-EN
等:
//Special localisation route mapping - expects specific language/culture code as first param
routes.MapRoute(
name: "Localisation",
url: "{lang}/{controller}/{action}/{id}",
defaults: new { lang = "en", controller = "Home", action = "List", id = UrlParameter.Optional },
constraints: new { lang = @"[a-z]{2}|[a-z]{2}-[a-zA-Z]{2}" }
);
然后,您更改语言的链接将看起来像这些锚:
<a href="en">Englishe</a>
<a href="fr">Français</a>
<a href="de">Deutsch</a>
<a href="it">Italiano</a>
<a href="es">Español</a>