Hello Devs,

I can't log into trac. Therefore I post here.

Most of the plugin localizations are incomplete. I have noticed that
the plugin api
always defaults to en_US if a language set is missing. This is
basically ok because en_US is the "always complete" set.

Nethertheless it should not default to en_US if, f.e., de_DE is present
but de_CH is missing.
In this case it should load de_DE instead of en_US. Same for pt_BR, if
pt_PT is present.

Here is a small patch for class rcube_plugin, method add_texts to
archive this behavior:

     foreach (array('en_US', $lang) as $lng) {
       $fpath = $locdir . $lng . '.inc';
       if (is_file($fpath) && is_readable($fpath)) {
         include($fpath);
         $texts = (array)$labels + (array)$messages + (array)$texts;
       }
       // begin mod
       else {
         $atemp = explode('_', $lang);
         if ($handle = opendir($locdir)) {
           while (false !== ($file = readdir($handle))) {
             if ($file != "." && $file != "..") {
               if(strpos($file, '.inc') && substr($file, 0, 2) ==
$atemp[0]){
                 if (is_file($locdir . $file) && is_readable($locdir .
$file)) {
                   include($locdir . $file);
                   $texts = (array)$labels + (array)$messages +
(array)$texts;
                   // maybe it would be better not to break and merge
all the 'sub' langs
                   break;
                 }
               }
             }
           }
           closedir($handle);
         }
       }
       // end mod
     }

Regards,
R.


_______________________________________________
Roundcube Development discussion mailing list
[email protected]
http://lists.roundcube.net/mailman/listinfo/dev

Reply via email to