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

标签 c# html css dom arabic

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

-- 换掉“rtl”版本的样式表

-- 更改 HTML 标签并包含一个 "dir='rtl'"属性

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

在经历了那么多废话之后;
有没有更简单的方法来动态换出文本方向?如果这是 DOM 问题,如何在异步回调后重新加载 DOM?

我已经处理这个问题好几个小时了,但在 interwebz 上运气不佳。

欢迎并非常感谢任何帮助。

亲切的问候,

威廉·弗朗西斯

编辑:

经过大量调查后,我发现真正以阿拉伯语方式工作的唯一方法是使用回发。一旦选择了语言,您就可以进行回发,这只是一个从代码隐藏更改样式表 HREF 属性的简单过程。似乎没有任何形式的 JavaScript 或 jQuery 可以在没有回发的情况下更改它并且仍然反射(reflect)新的样式表。注意:您需要在每次回发时设置样式表 HREF,即通过母版页。样式表更改不会跨页面持续存在。

这是一个帮助很大的网站,它解释了很多关于使用 JavaScript 更改样式表的内容。遗憾的是,它对我不起作用。

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

最佳答案

可能有几件事情正在发生。当我处理类似的事情时,我发现这个页面非常有帮助,所以我强烈推荐它:

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

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

关于c# - 在 C# 中将网站动态翻译成阿拉伯语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13496469/

相关文章:

html - div标签的高度

c# - this.RaisePropertyChanged ("")是什么意思?

c# - 当我们创建其继承类的新对象时,是否创建了基类的对象?

html - 具有保存纵横比的图像本身的最大宽度或高度的图像,受窗口大小限制

css - 为什么我的 SVG 文本在 Microsoft Edge 中没有垂直居中?

javascript - 使用日期选择器关注下一个表单元素

C#:如何检查我是否可以读取和/或删除目录

c# - Linq orderby计算

javascript - 根据隐藏字段中的值隐藏文本字段,该隐藏字段由 javascript 自动填充

javascript - 透明导航栏不能点击任何东西