diff options
| author | spiderr <spider@viovio.com> | 2011-05-03 00:00:20 -0400 |
|---|---|---|
| committer | spiderr <spider@viovio.com> | 2011-05-03 00:00:20 -0400 |
| commit | 59c411475fd0689464c9dd043b0d34ce6001c1c1 (patch) | |
| tree | c5d0bf0c4e29c22db5555a413be2bc35093c8741 /templates | |
| parent | 0c629fd10a6ea3fc8be98a1f82de2bb16dad26cb (diff) | |
| download | languages-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.tpl | 9 | ||||
| -rw-r--r-- | templates/language_master_strings.tpl | 27 | ||||
| -rw-r--r-- | templates/translate_google_ajax_inc.tpl | 44 | ||||
| -rw-r--r-- | templates/translate_strings.tpl | 53 |
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}" /> - <input type="submit" name="guess_translations" value="{tr}Guess Translations{/tr}" /> - <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> |
