简易PHP翻译

+ -
0
简易PHP翻译

前言


翻译是一种重要策略,可以吸引您的网站访问者。并非所有访客都能阅读或说英语,因此必须向用户绝对提供其他语言选择。一种广泛使用的方法是Gettext,但是在本教程中,我们将探讨另一种选择。Gettext是PHP的扩展,使人们可以通过使用po / mo文件和软件轻松地翻译网站。另一种解决方案是使用关联数组,然后使用简单函数来转换字符串。


此方法的PHP结构


此方法非常易于实现和使用。此方法的结构如下: -所有要翻译的字符串都包装为自定义函数的参数 -该函数使用该字符串在数组中搜索翻译-如果找到,该函数将返回翻译后的字符串,否则返回将返回初始字符串


步骤1-解析语言文件并分配翻译的功能


首先,我们将创建函数来搜索语言文件并获取字符串的翻译。函数名称可以是您想要的任何名称,但请确保您选择的名称没有被另一个函数使用,否则将导致致命错误。在本教程中,我们将选择e。 功能如下。

function e($text){
  global $base_lang;
  if(isset($base_lang) AND $base_lang!="en" AND file_exists("PATH/TO/{$base_lang}.php") && strlen($base_lang) <=3) {
    include("PATH/TO/{$base_lang}.php");
      if (isset($lang[$text]) && !empty($lang[$text])) {
          return $lang[$text];
      }
  }
    return $text;
}


这是我们的主要功能。首先,它检查是否定义了全局变量$base_lang,然后检查该变量是否不是英语,最后检查转换文件是否存在。如果存在,它将搜索数组以找到输入的关联翻译字符串。如果没有,它将返回原始字符串。


第2步-创建翻译文件


下一步是创建翻译文件。文件名将是用于切换语言的语言代码。例如,如果文件名是fr.php, 则语言代码将是fr。 创建文件非常容易,您可以使用记事本创建文件。首先,我们需要创建一个名称很短的空php文件。然后,我们只创建一个与变量$ lang关联的空数组 。下面显示了示例翻译文件的示例。

<?php
   // Name: fr.php
    $lang = array (

       //"String" => "Translated String",
        "Hello" => "Bonjour",
    );

?>


重要的是不要忘记每行末尾的引号和逗号。


第3步-使用函数E(或您选择的函数)包装应用程序中的所有字符串



现在,您要做的就是使用函数e 或在步骤1中选择的函数包装所有要转换的字符串 。下面是一个示例。


<?php echo e("Hello") ?>


第4步-根据用户的偏好切换语言


现在,我们只需要添加代码即可根据用户的偏好切换语言,并设置一个cookie来记住它。这是它的代码。

$base_lang="en"; // Set the default language

  if(isset($_COOKIE["lang"])){
   $base_lang=$_COOKIE["lang"]; // Get language from cookie
  }

  if(isset($_GET["lang"])){
    setcookie("lang",strip_tags($_GET["lang"]),strtotime('+30 days'),'/', NULL, 0);
    $base_lang=strip_tags($_GET["lang"]); // Or set cookie and new language
  }

此代码仅检查是否设置了参数lang ,如果设置了参数 lang,它将设置一个cookie,如果用户重新访问该网站,该cookie将用于切换语言。如果文件存在,则默认语言可以更改为任何语言,只需更改参数$ base_lang即可。


步骤5-将所有重要功能添加到所有页面,并将翻译链接添加到菜单


最后一步是在所有页面上添加翻译链接和上面的代码。使用上述代码的最简单方法是将它们添加到一个单独的名为translation.php的 PHP文件中, 然后将其包含在您的所有页面中,如下所示。

<?php 
   include("PATH/TO/translation.php");
?>


然后,您只需要在菜单中添加一些链接,以便用户可以轻松切换语言。最简单的方法是仅使用参数lang ,如下所示:


<a href="?lang=YOURLANGUAGECODE">Sample Language</a>

<a href="?lang=fr">French</a>


如果上面的代码包含在其中,它将切换当前页面的语言。


结论


请注意,不建议将这种方法用于大型站点或非常大的字符串。如果要使用外来字符,还请记住将PHP转换文件的编码设置为UTF-8。这就对了。请享用!
信息
想要留言? 请 登录 您的账号。还没有? 你可以 免费创建账号

Comments 0