gpt4 book ai didi

php - 使用 PHP 进行语言翻译

转载 作者:行者123 更新时间:2023-12-02 05:21:52 27 4
gpt4 key购买 nike

您好,我正在用 php 开发示例网站,我需要将整个网站翻译成波斯语。在 php 中怎么可能?我已尝试使用以下代码。此代码可以很好地进行德语转换。

1. class.translation.php

<?php
class Translator {

private $language = 'en';
private $lang = array();

public function __construct($language){
$this->language = $language;
}

private function findString($str) {
if (array_key_exists($str, $this->lang[$this->language])) {
echo $this->lang[$this->language][$str];
return;
}
echo $str;
}

private function splitStrings($str) {
return explode('=',trim($str));
}

public function __($str) {
if (!array_key_exists($this->language, $this->lang)) {
if (file_exists($this->language.'.txt')) {
$strings = array_map(array($this,'splitStrings'),file($this->language.'.txt'));
foreach ($strings as $k => $v) {
$this->lang[$this->language][$v[0]] = $v[1];
}
return $this->findString($str);
}
else {
echo $str;
}
}
else {
return $this->findString($str);
}
}
}
?>

2.Register.php

<?php
require_once('class.translation.php');

if(isset($_GET['lang']))
$translate = new Translator($_GET['lang']);
else
$translate = new Translator('en');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title><?php $translate->__('CSS Registration Form'); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15"/>
<link rel="stylesheet" type="text/css" href="css/default.css"/>
</head>
<body>
<form action="" class="register">
<h1><?php $translate->__('Registration'); ?><a class="flag_deutsch" title="deutsch" href="register1.php?lang=de"></a><a class="flag_english" title="english" href="register1.php"></a></h1>
<fieldset class="row1">
<legend><?php $translate->__('Account Details'); ?></legend>
<p>
<label><?php $translate->__('Email'); ?> *</label>
<input type="text"/>
<label><?php $translate->__('Repeat email'); ?> *</label>
<input type="text"/>
</p>
</fieldset>

<div><button class="button"><?php $translate->__('Register'); ?> &raquo;</button></div>
</form>
</body>
</html>

是否可以使用此代码翻译成其他语言?我将 register1.php?lang=de 更改为 register1.php?lang=fa(persian)..但没有任何反应..任何人请帮助

最佳答案

按照我的说法,你可以试试这个方法。这个方法已经在我们的系统中实现,并且工作正常。

制作每种语言的 php 文件并定义所有变量并在页面中使用这些变量。

例如对于英语

english.php

$hello="Hello";

波斯.php

$hello=html_entity_decode(htmlentities("سلام"));

现在使用这个变量来像这样分页。

your_page.php

<label><?php echo $hello; ?></label>

您已根据从 URL 获取的语言变量加载特定语言文件。

最好将此语言变量定义到配置文件中。

config.php

if(isset($_GET['lang']) && $_GET['lang']=='persian')
{
require_once('persian.php');
}
else
{
require_once('english.php');
}

关于php - 使用 PHP 进行语言翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13172660/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com