[horde] Links to Ingo (Forward, Vacation) in top menu bar

Philipp Faeustlin Philipp.Faeustlin at uni-hohenheim.de
Thu May 21 16:28:14 UTC 2015

>>>>>>> Hello List,
>>>>>>> I need your help.
>>>>>>> I inserted the following part into "$this->applications = array"
> in
>>>> the
>>>>>>> registry.local.php file.
>>>>>>> ------------
>>>>>>>        'forwards' => array(
>>>>>>>            'url' => '/ingo/basic.php?page=forward',
>>>>>>>            'name' => _("Forward"),
>>>>>>>            'status' => 'active',
>>>>>>>            'menu_parent' => 'imp',
>>>>>>>            'fileroot' => '/tmp'
>>>>>>>        ),
>>>>>>>        'vacations' => array(
>>>>>>>            'url' => '/ingo/basic.php?page=vacation',
>>>>>>>            'name' => _("Vacation"),
>>>>>>>            'status' => 'active',
>>>>>>>            'menu_parent' => 'imp',
>>>>>>>            'fileroot' => '/tmp'
>>>>>>>        ),
>>>>>>> ------------
>>>>>>> I don't know if this is the correct way, to get the links to ingo
>>>>>>> forward and vacation into the top bar.
>>>>>>> At least partially it is working, what I have done. The links are
>>>>>>> visible, and they point to the right target.
>>>>>>> Sadly the translation of the "name" isn't constantly working. It
> is
>>>> only
>>>>>>> translated, if I'm located on an ingo page. If I'm unter kronolith
>>>> and
>>>>>>> want to go to Ingo/Forward, the link name of Forward isn't
>>>> translated.
>>>>>>> How can I solve that?
>>>>>> I'm not 100% sure how gettext works, but that's probably because
> these
>>>>>> translated strings only exist in Ingo PO/MO module.
>>>>> That sound's plausible.
>>>>>> If you change the location of translation strings, e.g. move them
> from
>>>>>> Ingo to Base module, you need to update translation files
> accordingly.
>>>>> For updating the translation files there is the "horde-translation"
>>>>> script, I guess.
>>>>> So I shortly went though the documentation and found
>>>>> "horde-translation update -l ll".
>>>>> The script was executed with no error an for some modules it says
>>>> "updated".
>>>>> Then I executed "horde-translation make -l ll", but the shown
> results
>>>>> are empty.
>>>> Did you specify your locale in place of "ll" flag or did you run the
>>>> commands exactly as you wrote?
>>> Yes, I ran the commands exactly as I wrote.
>>> Meanwhile I'm one step further, I have tried the commands for only
>>> one module and language.
>>> horde-translation update -m horde -l de
>>> horde-translation make -m horde -l de
>>> But no changes were found and translation isn't working.
>>> After checking the horde.po file, I realized that only the
>>> config/registry.php is mentioned.
>>> My changes in config/registry.local.php are ignored by the
>>> translation script.
>>> After inserting my changes into config/registry.php and repeating
>>> the commands.
>>> The changes were recognized and automatically translated for that
>>> module and language.
>>> So my next question are.
>>> Is there option for the horde-translation script to make it search
>>> the "config/registry.local.php" file?
>> No.
I thought so.
>>> What happens to the translation after an update?
>> What do you mean?
> I think he means what happens to the translation after Horde update -
> translations are updated obviously, so your changes will be lost.
Yes, correct.
> I don't know gettext enough but it should be possible to have a separate
> .mo file in the same category as horde.mo is and then load it in your
> .local.php files.
> For example:
>      horde.mo
>      local.mo
> Then in local.php file use something like this:
> 'name' => dgettext('local', "Your String");
> Of course you have to use your own gettext tools to create such .po/.mo
> file. There are dozen of them on the web.
> That's probably an overkill for two strings though.
This approach sounds good, but as you say, right now it's to time 
It would have been nice if the horde translation script would 
automatically search the *.local.php files and create such split for the 
language files. But that's probably a feature not often used.

I will use a short script after an update, which inserts my changes to 
the registry.php and runs the horde-translation commands.

I used the following commands to create the German translation.

horde-translation update -l de
horde-translation make -l de

The results are fine without further actions.

Now I thought I could do the same for other languages. For example fr
(horde-translation update -l fr)
The result is I, now have the German translations in the French language 
What's my mistake?

>>>>> Have I done something wrong, or do I really have to edit every *.po
> file
>>>>> for every language as it is described in the documentation under
> "2.1.5
>>>>> Extending existent translations" ?
>>>> Yes, in order for particular translations to work you should edit
>>>> corresponding po files. I'm not sure you need to do it for all
> modules
>>>> though. Just start from the base "horde" module and see if that
> helps.
>>>> If you need only 1 language just use static strings.
>>>>>> Alternatively you could just use static strings.
>>>>> Static strings aren't really an option, because the translation
>>>>> information should be available and I only have to find out how to
> get
>>>>> it working.

More information about the horde mailing list