summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorspiderr <spider@viovio.com>2011-05-03 00:00:20 -0400
committerspiderr <spider@viovio.com>2011-05-03 00:00:20 -0400
commit59c411475fd0689464c9dd043b0d34ce6001c1c1 (patch)
treec5d0bf0c4e29c22db5555a413be2bc35093c8741 /templates
parent0c629fd10a6ea3fc8be98a1f82de2bb16dad26cb (diff)
downloadlanguages-59c411475fd0689464c9dd043b0d34ce6001c1c1.tar.gz
languages-59c411475fd0689464c9dd043b0d34ce6001c1c1.tar.bz2
languages-59c411475fd0689464c9dd043b0d34ce6001c1c1.zip
add auto translate for master strings; genericize auto javascript; ajax returns null when translation == masterstring
Diffstat (limited to 'templates')
-rw-r--r--templates/admin_languages.tpl9
-rw-r--r--templates/language_master_strings.tpl27
-rw-r--r--templates/translate_google_ajax_inc.tpl44
-rw-r--r--templates/translate_strings.tpl53
4 files changed, 75 insertions, 58 deletions
diff --git a/templates/admin_languages.tpl b/templates/admin_languages.tpl
index 6766baf..9aa9eed 100644
--- a/templates/admin_languages.tpl
+++ b/templates/admin_languages.tpl
@@ -23,6 +23,15 @@
</div>
{/foreach}
+ <div class="row">
+ {formlabel label="Google API Key" for="google_api_key"}
+ {forminput}
+ {biticon iname="google-favicon" ipackage="languages" iexplain="Auto-Translate"}
+ <input type="text" name="google_api_key" value="{$gBitSystem->getConfig('google_api_key')}" style="width:30em"/>
+ {formhelp note="Enter your <a href='http://www.google.com/search?q=Google+translate+API'>Google Translate API KEY</a>"}
+ {/forminput}
+ </div>
+
<div class="row submit">
<input type="submit" name="prefs" value="{tr}Change Settings{/tr}" />
</div>
diff --git a/templates/language_master_strings.tpl b/templates/language_master_strings.tpl
index 9b71246..605b096 100644
--- a/templates/language_master_strings.tpl
+++ b/templates/language_master_strings.tpl
@@ -1,6 +1,8 @@
{strip}
<div class="floaticon">{bithelp}</div>
+{include file="bitpackage:lanaguages/translate_google_ajax_inc.tpl"}
+
<div class="edit languages">
<div class="header">
<h1>{tr}Master Language Strings{/tr}</h1>
@@ -9,7 +11,7 @@
<div class="body">
{minifind name="Search master strings" sort_mode=$sort_mode}
{if $sources}
- {form legend="Edit Translations"}
+ {form legend="Edit Translations" id="translateform"}
{formfeedback hash=$masterMsg}
{formfeedback warning="You will need to clear the System Cache to see the changes." link="languages/edit_languages.php/System Cache"}
{tr}Translations strings may appear empty if the language is not loaded. The language will be automatically loaded when you click the edit icon.{/tr}
@@ -31,13 +33,18 @@
{foreach from=$languages key=langCode item=lang}
{if $langCode ne 'en'}
<div class="row">
- {formlabel label=$lang.native_name no_translate=1}
+ <div class="formlabel">
+ {$lang.native_name}
+ {if $gBitSystem->getConfig('google_api_key')}
+ <div class="autotranslate" onclick="autoTranslate('{$sourceHash}','{$langCode}')">{biticon iname="google-favicon" ipackage="languages" iexplain="Auto-Translate"} Auto</div>
+ {/if}
+ </div>
{forminput}
{* if results are guessed, we don't need to escape *}
{if $masterStrings.$sourceHash.textarea}
- <textarea name="edit_trans[{$sourceHash}][{$langCode}]" id="h_{$sourceHash}" rows="5" cols="50">{if $tranStrings.$sourceHash.$langCode.guessed}{$tranStrings.$sourceHash.$langCode.trans}{else}{$tranStrings.$sourceHash.$langCode.trans|escape|stripslashes}{/if}</textarea>
+ <textarea name="edit_trans[{$sourceHash}][{$langCode}]" id="{$langCode}_{$sourceHash}" lang="{$langCode}" rows="3" cols="50">{if $tranStrings.$sourceHash.$langCode.guessed}{$tranStrings.$sourceHash.$langCode.trans}{else}{$tranStrings.$sourceHash.$langCode.trans|escape|stripslashes}{/if}</textarea>
{else}
- <input type="text" name="edit_trans[{$sourceHash}][{$langCode}]" id="h_{$sourceHash}" value="{if $tranStrings.$sourceHash.$langCode.guessed}{$tranStrings.$sourceHash.$langCode.trans}{else}{$tranStrings.$sourceHash.$langCode.trans|escape|stripslashes}{/if}" size="45" maxlength="2048" />
+ <input type="text" name="edit_trans[{$sourceHash}][{$langCode}]" id="{$langCode}_{$sourceHash}" lang="{$langCode}" value="{if $tranStrings.$sourceHash.$langCode.guessed}{$tranStrings.$sourceHash.$langCode.trans}{else}{$tranStrings.$sourceHash.$langCode.trans|escape|stripslashes}{/if}" size="45" maxlength="2048" />
{/if}
{/forminput}
</div>
@@ -47,12 +54,15 @@
<div class="row submit">
<input type="submit" name="cancel" value="{tr}Cancel{/tr}" />
- &nbsp;<input type="submit" name="guess_translations" value="{tr}Guess Translations{/tr}" />
- &nbsp;<input type="submit" name="save_translations" value="{tr}Save{/tr}" />
+ <input type="submit" name="save_translations" value="{tr}Save{/tr}" />
+ <input type="submit" name="delete_master" value="{tr}Delete Master String{/tr}" />
+ {if $gBitSystem->getConfig('google_api_key')}
+ <div class="button" onclick="return autoTranslateEmpty()">Auto Translate Empty Strings</div>
+ {/if}
</div>
<div class="row">
- {formhelp note="Guess Translations will try and get an estimated translation using google language tools. Please make sure you check the returned strings for messed up HTML."}
+ {formhelp note="Auto Translations will try and get an estimated translation using google language tools. Please make sure you check the returned strings for incorrect formatting."}
</div>
{/form}
@@ -80,7 +90,7 @@
</div>
{/form}
- {form legend="Translations" id=formid}
+ {form legend="Translations" id="translateform"}
{alphabar iall=1 filter_lang=$smarty.request.filter_lang filter=$smarty.request.filter}
{formfeedback hash=$feedback}
@@ -99,7 +109,6 @@
</ol>
<div class="submit">
- <input type="submit" name="guess_translations" value="{tr}Guess Translations{/tr}" />
<input type="submit" name="delete_master" value="{tr}Delete Seleted Master Strings{/tr}" />
</div>
diff --git a/templates/translate_google_ajax_inc.tpl b/templates/translate_google_ajax_inc.tpl
new file mode 100644
index 0000000..5496407
--- /dev/null
+++ b/templates/translate_google_ajax_inc.tpl
@@ -0,0 +1,44 @@
+<script type="text/javascript">/* <![CDATA[ */
+{literal}
+var autoHashArray = new Array();
+var ajax = new BitBase.SimpleAjax();
+
+function autoTranslate( pElementId, pLang ) {
+console.log( "auto trans " + pElementId + ", " + pLang );
+ ajax.connect( "{/literal}{$smarty.const.LANGUAGES_PKG_URL}ajax_translate.php{literal}"
+ , "lang="+pLang+"&source_hash=" + escape( pElementId )
+ , updateTranslation
+ , "GET"
+ );
+}
+
+function updateTranslation( pResponse ) {
+ if( pResponse.responseText ) {
+ rObj = eval('(' + pResponse.responseText + ')');
+ document.getElementById( rObj.lang_code + '_' + rObj.source_hash ).value = rObj.translation;
+ }
+ if( autoHashArray.length ) {
+ var next = autoHashArray.pop().split('_',2);
+ autoTranslate( next[1], next[0] );
+ }
+}
+
+function autoTranslateEmpty() {
+ var elem = document.getElementById('translateform').elements;
+ for(var i = 0; i < elem.length; i++) {
+ if( elem[i].type == 'text' || elem[i].type == 'textarea' ) {
+ if( !elem[i].value && elem[i].id ) {
+ autoHashArray.push( elem[i].id );
+ }
+ }
+ }
+ if( autoHashArray.length ) {
+ var next = autoHashArray.pop().split('_',2);
+ autoTranslate( next[1], next[0] );
+ }
+}
+
+{/literal}
+/* ]]> */</script>
+
+
diff --git a/templates/translate_strings.tpl b/templates/translate_strings.tpl
index ee3af17..88a273a 100644
--- a/templates/translate_strings.tpl
+++ b/templates/translate_strings.tpl
@@ -1,51 +1,6 @@
{strip}
<div class="floaticon">{bithelp}</div>
-
-<script type="text/javascript">/* <![CDATA[ */
-{literal}
-var autoHashArray = new Array();
-var ajax = new BitBase.SimpleAjax();
-
-function autoTranslate( pElementId ) {
-console.log( "auto trans " + pElementId );
- ajax.connect( "{/literal}{$smarty.const.LANGUAGES_PKG_URL}ajax_translate.php{literal}"
- , "lang={/literal}{$editLang}{literal}&source_hash=" + escape( pElementId )
- , updateTranslation
- , "GET"
- );
-}
-
-function updateTranslation( pResponse ) {
-console.log( pResponse );
- if( pResponse.responseText ) {
-console.log( pResponse.responseText );
- rObj = eval('(' + pResponse.responseText + ')');
-console.log( rObj );
- document.getElementById( rObj.source_hash ).value = rObj.translation;
- }
- if( autoHashArray.length ) {
- autoTranslate( autoHashArray.pop() );
- }
-}
-
-function autoTranslateEmpty() {
- var elem = document.getElementById('translateform').elements;
- for(var i = 0; i < elem.length; i++) {
- if( elem[i].type == 'text' || elem[i].type == 'textarea' ) {
- if( !elem[i].value && elem[i].id ) {
- autoHashArray.push( elem[i].id );
- }
- }
- }
-console.log( autoHashArray );
- if( autoHashArray.length ) {
- autoTranslate( autoHashArray.pop() );
- }
-}
-
-{/literal}
-/* ]]> */</script>
-
+{include file="bitpackage:lanaguages/translate_google_ajax_inc.tpl"}
<div class="edit languages">
<div class="header">
<h1>{tr}Edit Languages{/tr}</h1>
@@ -80,15 +35,15 @@ console.log( autoHashArray );
<div class="formlabel">
<label for="{$sourceHash}">{tr}Translate{/tr}</label>
{if $gBitSystem->getConfig('google_api_key')}
- <div class="autotranslate" onclick="autoTranslate('{$sourceHash}')">{biticon iname="google-favicon" ipackage="languages" iexplain="Auto-Translate"} Auto</div>
+ <div class="autotranslate" onclick="autoTranslate('{$sourceHash}','{$editLang}')">{biticon iname="google-favicon" ipackage="languages" iexplain="Auto-Translate"} Auto</div>
{/if}
</div>
{forminput}
<a href="{$smarty.const.LANGUAGES_PKG_URL}master_strings.php?source_hash={$sourceHash}">{$tran.source|escape|nl2br}</a><br/>
{if $tran.textarea}
- <textarea style="font-size:medium;width:100%" name="edit_trans[{$sourceHash}]" id="{$sourceHash}" rows="5" cols="50">{$tran.trans|escape|stripslashes}</textarea>
+ <textarea style="font-size:medium;width:100%" name="edit_trans[{$sourceHash}]" id="{$editLang}_{$sourceHash}" lang="{$editLang}" rows="5" cols="50">{$tran.trans|escape|stripslashes}</textarea>
{else}
- <input style="font-size:medium;width:100%" name="edit_trans[{$sourceHash}]" id="{$sourceHash}" value="{$tran.trans|escape|stripslashes}" size="45" maxlength="255" />
+ <input style="font-size:medium;width:100%" name="edit_trans[{$sourceHash}]" id="{$editLang}_{$sourceHash}" lang="{$editLang}" value="{$tran.trans|escape|stripslashes}" size="45" maxlength="255" />
{/if}
{/forminput}
</div>