Skip to content
Snippets Groups Projects
Commit 9ea69cff authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

Prepare to use Google Api v2

parent 59619517
No related branches found
No related tags found
No related merge requests found
<?php
/**
* This software is licensed under GPL license agreement
* This is a language automatic translator parser for Dolibarr
* This script uses google language ajax api as the translator engine
* The main translator function can be found at:
/* Copyright (C) 2009-2012 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* http://www.plentyofcode.com/2008/10/google-translation-api-translate-on.html
* Hope you make a good use of it :)
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* http://code.google.com/intl/fr/apis/ajaxlanguage/documentation/#SupportedPairs
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* \file dev/translation/langAutoParser.class.php
* \ingroup dev
* \brief This file is an example for a command line script
*/
/**
* Class to parse language files and translate them
* This is a language automatic translator parser for Dolibarr
*/
class langAutoParser
class autoTranslator
{
private $translatedFiles = array();
private $destLang = '';
......@@ -24,11 +35,13 @@ class langAutoParser
private $time;
private $time_end;
private $outputpagecode = 'UTF-8';
private $apikey;
//private $outputpagecode = 'ISO-8859-1';
const DIR_SEPARATOR = '/';
function __construct($destLang,$refLang,$langDir,$limittofile){
function __construct($destLang,$refLang,$langDir,$limittofile,$apikey)
{
// Set enviorment variables
$this->destLang = $destLang;
......@@ -36,6 +49,7 @@ class langAutoParser
$this->langDir = $langDir.self::DIR_SEPARATOR;
$this->time = date('Y-m-d H:i:s');
$this->limittofile = $limittofile;
$this->apikey = $apikey;
// Translate
//ini_set('default_charset','UTF-8');
......@@ -46,7 +60,7 @@ class langAutoParser
/**
* Parse file
*
*
* @return void
*/
private function parseRefLangTranslationFiles()
......@@ -127,7 +141,7 @@ class langAutoParser
/**
* Update file with new translations
*
*
* @param string $destPath Target path
* @param string $file File
* @param string $mydestLang Target language code
......@@ -155,7 +169,7 @@ class langAutoParser
/**
* Create a new translation file
*
*
* @param string $path Path
* @param string $mydestlang Target language code
* @return void
......@@ -216,7 +230,7 @@ class langAutoParser
}
/**
*
*
* @param string $line Line found into file
* @return string Key
*/
......@@ -227,7 +241,7 @@ class langAutoParser
}
/**
*
*
* @param string $line Line found into file
* @return string Value
*/
......@@ -238,7 +252,7 @@ class langAutoParser
}
/**
*
*
* @param string $lang Language code
* @return array Array
*/
......@@ -273,18 +287,16 @@ class langAutoParser
//setting language pair
$lang_pair = $src_lang.'|'.$dest_lang;
$src_texts_query = "";
$src_text_to_translate=preg_replace('/%s/','SSSSS',join('',$src_texts));
$src_text_to_translate=preg_replace('/'.preg_quote('\n\n').'/',' NNNNN ',$src_text_to_translate);
$src_texts_query .= "&q=".urlencode($src_text_to_translate);
$url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0".$src_texts_query."&langpair=".urlencode($lang_pair);
// Define GET URL v1
$url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=".urlencode($src_text_to_translate)."&langpair=".urlencode($lang_pair);
// Define GET URL v2
// Example: "https://www.googleapis.com/language/translate/v2?key=".$this->apikey."&q=".urlencode($src_text_to_translate)."&source=".$src_lang."&target=".$dest_lang
// sendRequest
// note how referer is set manually
//print "Url to translate: ".$url."\n";
// Send request
print "Url to translate: ".$url."\n";
if (! function_exists("curl_init"))
{
......@@ -313,7 +325,7 @@ class langAutoParser
$rep=preg_replace('/SSSSS/i','%s',$rep);
$rep=preg_replace('/NNNNN/i','\n\n',$rep);
$rep=preg_replace('/&#39;/i','\'',$rep);
//print "OK ".join('',$src_texts).' => '.$rep."\n";
return $rep;
......
#!/usr/bin/php
<?php
/* Copyright (C) 2009 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2009-2012 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -18,10 +18,12 @@
/**
* \file dev/translation/autotranslator.php
* \ingroup mymodule othermodule1 othermodule2
* \brief This file is an example for a command line script
* \author Put author name here
* \remarks Put here some comments
* \ingroup dev
* \brief This script uses google language ajax api as the translator engine
* The main translator function can be found at:
* http://code.google.com/intl/fr/apis/language/translate/overview.html
* http://translate.google.com/translate_tools
* https://code.google.com/apis/console
*/
$sapi_type = php_sapi_name();
......@@ -85,9 +87,9 @@ if ($argv[2] != 'all')
}
}
require_once(DOL_DOCUMENT_ROOT."/../dev/translation/langAutoParser.class.php");
require_once(DOL_DOCUMENT_ROOT."/../dev/translation/autotranslator.class.php");
$langParser = new langAutoParser($argv[2],$argv[1],$dir,$file);
$langParser = new autoTranslator($argv[2],$argv[1],$dir,$file,$apikey);
print "***** Finished *****\n";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment