﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
1488401	Plugin Localization improvement	rosali		"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
     }
}}}"	Feature Patches	closed	5	0.8-rc	Plugin API	0.8-beta	normal	fixed		
