From: Marc L. <ma...@ma...> - 2009-04-15 20:43:51
|
Sylvie: you are amazing !! M ;-) On Wed, Apr 15, 2009 at 4:40 PM, Sylvie Greverend <sgr...@gm...> wrote: > Yes I know - it is on my todo list ... > > On Wed, 2009-04-15 at 15:17 -0400, Marc Laporte wrote: >> Hi Sylvie! >> >> Thank you! This is going to be very helpful. >> >> Just so you know, a user can lock him/herself out (BSOD) when making >> a mistake in the file. Ex.: >> >> <?php >> $lang_custom = array( >> //"Hello"=>"My Hello", >> //"This is the place to customize your traduction"=>":-)", >> "Blogs"=>"Hour >> ); >> $lang = array_merge($lang, $lang_custom); >> >> >> Related: >> http://dev.tikiwiki.org/wish1771 >> >> >> Best regards, >> >> M ;-) >> >> >> >> On Wed, Apr 15, 2009 at 1:46 PM, <sy...@us...> wrote: >> > Revision: 18008 >> > http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=18008&view=rev >> > Author: sylvieg >> > Date: 2009-04-15 17:46:02 +0000 (Wed, 15 Apr 2009) >> > >> > Log Message: >> > ----------- >> > [MOD]lang: to be able to modifiy custom.php file directly from the api >> > >> > Modified Paths: >> > -------------- >> > branches/3.0/templates/tiki-admin-include-i18n.tpl >> > branches/3.0/tiki-admin_include_i18n.php >> > >> > Modified: branches/3.0/templates/tiki-admin-include-i18n.tpl >> > =================================================================== >> > --- branches/3.0/templates/tiki-admin-include-i18n.tpl 2009-04-15 17:35:45 UTC (rev 18007) >> > +++ branches/3.0/templates/tiki-admin-include-i18n.tpl 2009-04-15 17:46:02 UTC (rev 18008) >> > @@ -27,7 +27,20 @@ >> > <table class="admin"><tr><td> >> > <div style="padding:1em;" align="center"><input type="submit" value="{tr}Change preferences{/tr}" /></div> >> > <input type="hidden" name="i18nsetup" /> >> > -<fieldset><legend>{tr}Internationalization{/tr} {if $prefs.feature_help eq 'y'} {help url="i18n"}{/if}</legend> >> > +{if $prefs.feature_tabs eq 'y' and $prefs.feature_multilingual eq 'y' and $prefs.lang_use_db ne 'y'} >> > + {assign var=tabs value='y'} >> > +{else} >> > + {assign var=tabs value='n'} >> > +{/if} >> > + >> > +{if $tabs eq 'y'} >> > + {tabs}{strip}{tr}Internationalization{/tr}|{tr}Babelfish links{/tr}|{tr}Customized String Translation{/tr}{/strip}{/tabs} >> > +{/if} >> > + >> > +<fieldset{if $tabs eq 'y'} id="content1" class="tabcontent" style="clear:both;display:block;"{/if}> >> > +{if $tabs ne 'y'} >> > + <legend>{tr}Internationalization{/tr}</legend> >> > +{/if} >> > <div class="adminoptionbox"> >> > <div class="adminoptionlabel"><label for="general-lang">{tr}Default language{/tr}:</label> >> > <select name="language" id="general-lang"> >> > @@ -148,7 +161,11 @@ >> > >> > </fieldset> >> > >> > -<fieldset><legend>{tr}Babelfish links{/tr}</legend> >> > +{*------------------------------- Babelfish ----------------------------- *} >> > +<fieldset{if $tabs eq 'y'} id="content2" class="tabcontent" style="clear:both;display:none;"{/if}> >> > +{if $tabs ne 'y'} >> > + <legend>{tr}Babelfish links{/tr}</legend> >> > +{/if} >> > <div class="adminoptionbox"> >> > <div class="adminoption"><input type="checkbox" name="feature_babelfish" id="feature_babelfish" >> > {if $prefs.feature_babelfish eq 'y'}checked="checked"{/if}/></div> >> > @@ -161,6 +178,47 @@ >> > </div> >> > </fieldset> >> > >> > +{*----------------------------------- Custom translation --------------------*} >> > +<fieldset{if $tabs eq 'y'} id="content3" class="tabcontent" style="clear:both;display:none;"{/if}> >> > +{if $tabs ne 'y'} >> > + <legend>{tr}Customized String Translation{/tr}</legend> >> > +{/if} >> > +<div class="adminoptionbox"> >> > + {if empty($custom_lang)} >> > + <select name="custom_lang" id="custom_lang_select"> >> > + {section name=ix loop=$languages} >> > + <option value="{$languages[ix].value|escape}" >> > + {if (empty($custom_lang) && $languages[ix].value eq $prefs.site_language) || (!empty($custom_lang) && $languages[ix].value eq $custom_lang)} selected="selected"{/if}> >> > + {$languages[ix].name|escape} >> > + </option> >> > + {/section} >> > + </select> >> > + <input type="submit" name="custom" value="{tr}Edit{/tr}" /> >> > + {else} >> > + {if !empty($custom_error)} >> > + {remarksbox type="error"} >> > + {if $custom_error eq 'param'} >> > + {tr}Incorrect param{/tr} >> > + {elseif $custom_error eq 'parse'} >> > + {tr}Syntax error{/tr} >> > + {else} >> > + {tr}Cannot open this file:{/tr} {$custom_file} >> > + {/if} >> > + {/remarksbox} >> > + {/if} >> > + <h2> >> > + {section name=ix loop=$languages} >> > + {if $languages[ix].value eq $custom_lang}{$languages[ix].name|escape}{/if} >> > + {/section} >> > + </h2> >> > + <input type="hidden" name="custom_lang" value="{$custom_lang|escape}" /> >> > + <textarea rows="40" cols="80" name="custom_translation">{$custom_translation|escape}</textarea> >> > + <br /> >> > + <input type="submit" name="custom_save" value="{tr}Save{/tr}" /> >> > + {/if} >> > +</div> >> > +</fieldset> >> > + >> > <div style="padding:1em;" align="center"><input type="submit" value="{tr}Change preferences{/tr}" /></div> >> > </td></tr></table> >> > </div> >> > >> > Modified: branches/3.0/tiki-admin_include_i18n.php >> > =================================================================== >> > --- branches/3.0/tiki-admin_include_i18n.php 2009-04-15 17:35:45 UTC (rev 18007) >> > +++ branches/3.0/tiki-admin_include_i18n.php 2009-04-15 17:46:02 UTC (rev 18008) >> > @@ -43,4 +43,46 @@ >> > simple_set_value( 'language' ); >> > simple_set_value( 'available_languages', '', true ); >> > } >> > -?> >> > +if (!empty($_REQUEST['custom']) && !empty($_REQUEST['custom_lang'])) { >> > + ask_ticket('admin-inc-i18n'); >> > + $custom_file = 'lang/'.$_REQUEST['custom_lang'].'/'; >> > + if (!empty($tikidomain)) $custom_file .= "$tikidomain/"; >> > + $custom_file .= "custom.php"; >> > + $custom_translation = file_get_contents($custom_file); >> > + if (empty($custom_translation)) { >> > + $custom_translation = file_get_contents('lang/fr/custom.php_example'); >> > + } >> > + $smarty->assign_by_ref('custom_translation', $custom_translation); >> > + $smarty->assign_by_ref('custom_lang', $_REQUEST['custom_lang']); >> > +} >> > +if (!empty($_REQUEST['custom_save']) && !empty($_REQUEST['custom_lang'])) { >> > + ask_ticket('admin-inc-i18n'); >> > + $ok = false; >> > + foreach ($languages as $l) { >> > + if ($l['value'] == $_REQUEST['custom_lang']) { >> > + $ok = true; >> > + break; >> > + } >> > + } >> > + if (!$ok) { >> > + $smarty->assign('custom_error', 'param'); >> > +/* } elseif (!eval(str_replace(array('<?php','?>'), '', $_REQUEST['custom_translation']))) { >> > + $smarty->assign('custom_error', 'parse'); >> > +*/ >> > + } else { >> > + $custom_file = 'lang/'.$_REQUEST['custom_lang'].'/'; >> > + if (!empty($tikidomain)) $custom_file .= "$tikidomain/"; >> > + $custom_file .= "custom.php"; >> > + $smarty->assign('custom_file', $custom_file); >> > + if (!($fp = fopen($custom_file, 'w+'))) { >> > + $smarty->assign('custom_error', 'file'); >> > + } else { >> > + if (!fwrite($fp, $_REQUEST['custom_translation'])) { >> > + $smarty->assign('custom_error', 'file'); >> > + } >> > + fclose($fp); >> > + global $cachelib; include_once('lib/cache/cachelib.php'); >> > + $cachelib->erase_dir_content("templates_c/$tikidomain"); >> > + } >> > + } >> > +} >> > >> > >> > This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. >> > >> > ------------------------------------------------------------------------------ >> > This SF.net email is sponsored by: >> > High Quality Requirements in a Collaborative Environment. >> > Download a free trial of Rational Requirements Composer Now! >> > http://p.sf.net/sfu/www-ibm-com >> > _______________________________________________ >> > Tikiwiki-cvs mailing list >> > Tik...@li... >> > https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs >> > >> >> >> > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Tikiwiki-cvs mailing list > Tik...@li... > https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs > -- Marc Laporte http://MarcLaporte.com http://TikiWiki.org/MarcLaporte http://AvanTech.net http://OurWiki.net |