# WebLate reverse lookup?

**URL:** <https://gramps.discourse.group/t/weblate-reverse-lookup/4734>\
**Category:** Translation\
**Tags:** localization\
**Created:** [January 23, 2024, 6:32pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734 "2024-01-23T18:32:21Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [January 23, 2024, 6:32pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/1 "2024-01-23T18:32:21Z")

</div>

Is there a way to leverage the glossary to a translated term lookup?

For users of translated Gramps GUIs, it would be helpful it they could lookup a feature’s English name equivalent.

And to lookup the GUI element name in their native language when we use the English name in Discourse.

I regularly use Google to “site:” search our domain in order to provide hot-linked help:  
_\<SearchTerm\>_ `site:gramps-project.org/wiki`

DuckDuckGo extends the site search parameter with `inurl:` and `intitle:` options. The also have language filtering. (But there’s something weird with their indexing of our site currently… the page desciptions are being restricted.)

I tried using the Weblate interface to do lookups. But that was ridiculously hard to navigate

---

<div class="post-metadata">

**Author:** ![Nick-Hall](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/nick-hall/32/95_2.png) [@Nick-Hall](https://gramps.discourse.group/u/Nick-Hall)\
**Post date:** [January 23, 2024, 7:13pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/2 "2024-01-23T19:13:07Z")

</div>

We have a [Glossary](https://hosted.weblate.org/projects/gramps-project/glossary) component in Weblate.

Click on “Search” and enter a string such as “active person”. You can also click on “Languages” first and select a translation, and then click on “Search.”

Alternatively, just do a text search in the appropriate `po` file.

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [January 23, 2024, 7:59pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/3 "2024-01-23T19:59:31Z")

</div>

That Weblate [Glossary](https://hosted.weblate.org/projects/gramps-project/glossary/#search) ( ← this link starts 1 level deeper, with the search form open) is what I found to be so unnavigable.

It seems OK when you try it with a few common terms (like “active person”). But when looking deeper, it seems perverse. That “active person” sesrch only returns 5 hits? And 1 is English. How can there only be 5?

And something like “latest person” or “Restore History” or “RestoreHist” (from [the thread that prompted this inquiry](https://gramps.discourse.group/t/after-new-installation-computer-gramps-doesnt-remember-last-view-when-restarting/4733/6)) cannot find any!

---

<div class="post-metadata">

**Author:** ![Nick-Hall](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/nick-hall/32/95_2.png) [@Nick-Hall](https://gramps.discourse.group/u/Nick-Hall)\
**Post date:** [January 23, 2024, 8:38pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/4 "2024-01-23T20:38:48Z")

</div>

The glossary only has a limited number of terms, and not all of them have been translated. We can always add more.

If you want to search all translations then use the “Program” component instead.

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [January 23, 2024, 9:21pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/5 "2024-01-23T21:21:06Z")

</div>

That sounds good.

I thought that we could use the Wiki’s Glossary as an index to the documentation and a cross-reference for other languages. (Several of us having been working on the Glossary for years.) It has become pretty good as an index.

But it doesn’t work well for the other languages.

First, it is only partially translated. And only by a few languages.

Second when translating, the translated terms tend to be re-sorted alphabetically and the hash link is changed.

So while I hoped that the Turk who is given a link on Discourse to a [Home Person glossary entry](https://www.gramps-project.org/wiki/index.php/Gramps_Glossary#home_person) be redirected to “ana kişi” by just just click the [Türkçe](https://www.gramps-project.org/wiki/index.php/Gramps_Glossary/tr) link on the Language bar. But that flushes the the hashtag link “#home\_person” when it re-directs to the Turkish language Glossary.

However, the turkish translator was savvy enough to leave the SPAN tags in English. So the unusually observant user might notice that they will be re-directed to “Ana Kişi” if they insert the Language code in the right place in the english `#home_person` hashtagged URL:

[`https://www.gramps-project.org/wiki/index.php/Gramps_Glossary#home_person`](https://www.gramps-project.org/wiki/index.php/Gramps_Glossary#home_person)  
_becomes_  
[`https://www.gramps-project.org/wiki/index.php/Gramps_Glossary``/tr``#home_person`](https://www.gramps-project.org/wiki/index.php/Gramps_Glossary/tr#home_person)

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [November 11, 2025, 9:51pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/8 "2025-11-11T21:51:48Z")

</div>

> [@Nick-Hall](#):
>
> We have a [Glossary](https://hosted.weblate.org/projects/gramps-project/glossary) component in Weblate.
> 
> Click on “Search” and enter a string such as “active person”. You can also click on “Languages” first and select a translation, and then click on “Search.”
> 
> Alternatively, just do a text search in the appropriate `po` file.

What is the correct process for cleaning up source strings that are incorrectly marked as “translatable”

For example, in the &nbsp;[Glossary](https://hosted.weblate.org/projects/gramps-project/glossary/) component:

- [`_Roman (Times, serif)`](https://hosted.weblate.org/translate/gramps-project/glossary/en/?checksum=7a47163fc94a973d)
- [`_Swiss (Arial, Helvetica, sans-serif)`](https://hosted.weblate.org/translate/gramps-project/glossary/en/?checksum=cef1b09c6da3c3b2)
- [`7. Sex: Male`](https://hosted.weblate.org/translate/gramps-project/glossary/en/?checksum=986cc45de0b6710f)
- [`8. Sex: Female`](https://hosted.weblate.org/translate/gramps-project/glossary/en/?checksum=6a525308430c065a)

The font names should not be translatable. And the items with a number are probably from forms but should not include the form line number.

I can delete the terms. But they will come back the next time the weblate components are regenerated.

So how should these ‘translatable string’ errors be reported so they will be fixed and the fixes can be tracked? And how do we find them in the source code?

---

<div class="post-metadata">

**Author:** ![Nick-Hall](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/nick-hall/32/95_2.png) [@Nick-Hall](https://gramps.discourse.group/u/Nick-Hall)\
**Post date:** [November 11, 2025, 10:10pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/9 "2025-11-11T22:10:46Z")

</div>

> [@emyoulation](#):
>
> I can delete the terms.

No. They have been created by a translator to help with the translation.

> [@emyoulation](#):
>
> So how should these ‘translatable string’ errors be reported so they will be fixed and the fixes can be tracked? And how do we find them in the source code?

Are you sure that they are errors? The font strings come from the glade file for the style editor. They look OK to me.

You can find a link to the [source code](https://github.com/gramps-project/gramps/blob/maintenance/gramps60/gramps/gui/glade/styleeditor.glade#L314) if you use the Weblate search to find the string. The _Program_ and _Addons_ components give a link back to the source code in the sidebar.

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [November 11, 2025, 11:46pm UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/10 "2025-11-11T23:46:10Z")

</div>

> [@Nick-Hall](#):
>
> Are you sure that they are errors? The font strings come from the glade file for the style editor. They look OK to me.

Well, according to the translation standards, font names are considered proper nouns _never_ translated. So my assumption is that the source code should be changed to eliminate the underscore marker. If it is in the Glade file, shouldn’t there be a ‘translatable’ option for each string?

Likewise, the `7. Sex: Male` and `8. Sex: Female` could probably be broken into a set of concatenations so that `Sex` , `Male` and `Female` are only translated once.

There hasn’t been any kind of push to reduce the string count. But if the tool that @kmikkels works the way that I hope, then we make be able to make a start on that. (Since more than 750,000 words in the program glossary is too much. Then the Addons glossary doubles that.)

---

<div class="post-metadata">

**Author:** ![Nick-Hall](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/nick-hall/32/95_2.png) [@Nick-Hall](https://gramps.discourse.group/u/Nick-Hall)\
**Post date:** [November 12, 2025, 12:18am UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/11 "2025-11-12T00:18:41Z")

</div>

> [@emyoulation](#):
>
> The font names should not be translatable.

Languages that use non-Latin characters may want to transliterate the font name.

> [@emyoulation](#):
>
> So my assumption is that the source code should be changed to eliminate the underscore marker.

The underscore marks the accelerator key.

> [@emyoulation](#):
>
> Likewise, the `7. Sex: Male` and `8. Sex: Female` could probably be broken into a set of concatenations so that `Sex` , `Male` and `Female` are only translated once.

String concatenation can cause problems for translators. In this case we would also have to make changes to the form definition XML files.

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [November 12, 2025, 1:39am UTC](https://gramps.discourse.group/t/weblate-reverse-lookup/4734/12 "2025-11-12T01:39:45Z")

</div>

> [@Nick-Hall](#):
>
> Languages that use non-Latin characters may want to transliterate the font name.

I had the same thought. But what I found was the “no translation of font names” holds true for non-Latin character sets. The only possible exception was when the name oncluded a meaningful word… like “bold” or “plain”
