在C#中动态地将网站翻译成阿拉伯语

时间:2012-11-21 15:26:57

标签: c# html css dom arabic

目前,我在一个拥有多种语言的大型网站上遇到了一个麻烦的问题。到达网站后,它会检测您所在的国家/地区并提示您确认。确认后,它会从数据库中交换页面语言并显示相关语言。这是使用jQuery完成的。现在问题是阿拉伯语读取rtl,所以我需要:

- 换掉“rtl”版本

的样式表

- 更改HTML标记并添加“dir ='rtl'”arrtribute

现在,我已经尝试了这两种方法,两者都失败了。当我查看页面源时,它仍然显示没有“dir”属性的旧Css文件或HTML标记。如果我错了,请纠正我,但我相信这是因为DOM没有注册新的更改,因为它们在实例化DOM之后通过jQuery异步发生。

毕竟那个等等等等 有没有更简单的方法动态交换文本方向?如果这是一个DOM问题,我怎样才能在异步回调后重新加载DOM?

我现在已经在这个问题上工作了好几个小时,并且在interwebz上运气很少。

欢迎任何和所有帮助,非常感谢。

亲切的问候,

威廉弗朗西斯

编辑:

经过大量调查后,我发现真正使用阿拉伯语方式的唯一方法就是回复。选择语言后,您会进行回发,然后只需从后面的代码更改样式表HREF属性。似乎没有任何形式的JavaScript或jQuery可以在没有回发的情况下更改它并仍然反映新的样式表。注意:您需要在每个回发后设置样式表HREF,即通过母版页。样式表更改不会在页面中保留。

这是一个帮助很大的网站,并使用JavaScript解释了很多关于样式表更改的内容。可悲的是,它对我没用。

http://www.alistapart.com/articles/alternate/

1 个答案:

答案 0 :(得分:0)

可能会发生一些事情。当我处理类似的事情时,我发现这个页面非常有用,所以我强烈推荐它:

http://www.w3.org/International/tutorials/bidi-xhtml/

此外,如果您还没有这样做,请使用Firebug之类的工具在AJAX运行后检查生成的DOM,以确保您看到DOM的更改状态而不是页面的初始源。 可以动态更改目录 - 您可以使用Firebug将新属性添加到此页面的HTML标记(设置dir =“rtl”)以查看其动态更改。可能是其他一些元素正在覆盖方向,可能是AJAX更改未正确加载或其他事情。如果您可以发布更多代码,那么给出更好的答案将会很有帮助,但我希望这会有所帮助。