Traduction d'une langue à l'aide de PHP
Salut, je suis devloping exemple de site en php, j'ai besoin de traduire tout le site en persan. comment peut-elle possible en php?? J'ai essayé d'utiliser le code suivant.. Ce code fonctionne très bien pour deutsch de conversion.
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'); ?> »</button></div>
</form>
</body>
</html>
Est-il possible de transilate à d'autres langues à l'aide de ce code?? J'ai changé register1.le php?lang=de à register1.le php?lang=fa(persan).. Mais rien hapens..quelqu'un s'il vous plait aider
- Veuillez noter que la classe que vous utilisez pour la traduction.
- Traducteur de classe
- Vous avez besoin d'un fichier appelé
fa.txt
avec les chaînes de traduction à l'intérieur. - Je pense que l'idée donnée par Harry est bon pour vous.
- J'ai fait cette petite bibliothèque de traduction, peut-être vous ou quelqu'un d'autre pourrait l'utiliser. github.com/amitkhare/easy-translator
Vous devez vous connecter pour publier un commentaire.
QUE par moi, vous pouvez essayer cette méthode.Cette méthode est déjà mis en œuvre dans notre système et il fonctionne correctement.
Faire fichier php de chaque langue et de définir toutes les variables et d'utiliser ces variables dans les pages.
pour l'e.g
Pour l'anglais
english.php
persian.php
Maintenant utiliser cette variable pour la page comme ceci.
your_page.php
Vous avez la charge spécifique de la langue de fichier comme par obtenir la variable de langue à partir de l'URL.
Il est préférable que vous ayez à définir cette variable de langue dans le fichier config.
config.php
Constants
plutôtVariables
.Si j'étais vous, je ferais comme ceci:
/inc/lang/en.lang.php
/inc/lang/fa.lang.php
index.php
Référence: Constantes vs Variables
Ici, vous voyez pourquoi je lui ai offert l'aide de
Constants
pasVariables
:const.php
var.php
I guess you're wasting the server resources by defining variables.
... voir ma mise à jour sur ma réponse ... espérons qu'il vous aide.Que je puisse lire le code, le traducteur de la classe de charge de la traduction des données à partir de en.txt fichier, si vous voulez avoir 'fa' traduction, il suffit de créer fa.txt en tant que copie de en.txt avec toutes les traductions et les éditer et de traduire fa.txt persan...
Espère que cela aide
À partir d'un Perl trans script, j'ai extrait ce qui suit pour 100% gratuit php de traduction de google à cette fonction:
Voir le travail de démonstration sur http://ogena.net
@rbenmass
Merci 🙂
Je pense qu'il faut être , parce qu'il fonctionne bien pour moi :