I did the following, what do you think of my implementation?
(checking if my string and array usage could be improved / powered up!!!????)

string[] _locales = ["en-AU", "fr-FR"];
string getCurrentLocal() { return "fr-BE"; }
string[] getCandidates()
{
   auto local = getCurrentLocal();

   string match = null;
   for (int i = _locales.length; i-->0;)
   {
       if(_locales[i] == local)
       {
           match = _locales[i];
           break;
       }
   }

   string partial = null;
   if(local.length >= 2 && match == null)
   {
       for (int i = _locales.length; i-->0;)
       {
           auto tmpl = _locales[i];
if (tmpl.length > 2 && tmpl[0] == local[0] && tmpl[1] == local[1])
           {
               partial = tmpl;
               break;
           }
       }
   }

   string[] result;
   if(match)
   {
       result.length = result.length + 1;
       result[result.length-1] = match;
   }
   if(partial && partial != match)
   {
       result.length = result.length + 1;
       result[result.length-1] = partial;
   }
   if(match != _locales[0] && partial != _locales[0])
   {
       result.length = result.length + 1;
       result[result.length-1] = _locales[0];
   }
   return result;
}

Reply via email to