1

我有两个网站以英语和阿拉伯语版本显示。

环顾四周后,我发现 qTranslate 插件非常适合简单的解决方案。

我使用.htaccess如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^ar[\/]?$ index.php?lang=ar
RewriteRule ^en[\/]?$ index.php?lang=en 
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>

并在主题functions.php以下用于检测语言:

      function inspectVars($vars) {

      session_start();

      if ($_GET['lang'] == "ar") {
        $_SESSION['custom_lang'] = "ar";
        } elseif ($_GET['lang'] == "en") {
        $_SESSION['custom_lang'] = "en";
        } elseif (!isset($_GET['lang']) && !isset($_SESSION['custom_lang'])) {
        $_SESSION['custom_lang'] = "en";
      }
      $GLOBALS['q_config']['language']= $_SESSION['custom_lang'];
     return $vars;
    }

    add_filter("query_vars", "inspectVars");

此会话设置用于切换 RTL/LTR 样式表。有更好的方法吗?

现在,我面临的问题是:

  1. 如何使用将当前页面、博客切换为其他语言的链接?我使用 domain/ar 和 domain/en 进行切换,但首先要回家。
  2. 我想保留 urldomain.com/ar/someslugsoranythingdomain.com/en/someslugsoranything.
  3. 我有一些图像,模板上的幻灯片需要随着语言的变化而切换。什么是最好的方法?还有HTML格式的文本,也需要切换。

编辑:我后来注释掉了以下内容,因为启用 qTranslate 自己的语言切换器可以保持所选语言的持久性。实际上整个inspectVars函数都可以省略。

            $GLOBALS['q_config']['language']= $_SESSION['custom_lang'];
4

1 回答 1

0

我已经解决了大部分问题。

通过注释掉两行.htaccess文件:

#RewriteRule ^ar[\/]?$ index.php?lang=ar
#RewriteRule ^en[\/]?$ index.php?lang=en 

我刚刚发现的以下帖子解决了许多问题:

使用 qTranslate 显示基于语言的内容 我现在遇到的最大问题是需要用阿拉伯语切换的混合 HTML 文本。在模板中,我尝试了 qTranslate 短代码和<!--:lang--><!--:-->标签,但它们在那里不起作用。此外,我猜直接将阿拉伯语写入 HTML 并不是一个好主意。

于 2012-12-04T19:11:13.250 回答