# How can the source of Weblate terms be discovered?

**URL:** <https://gramps.discourse.group/t/how-can-the-source-of-weblate-terms-be-discovered/9077>\
**Category:** Translation\
**Tags:** localization\
**Created:** [January 26, 2026, 11:33pm UTC](https://gramps.discourse.group/t/how-can-the-source-of-weblate-terms-be-discovered/9077 "2026-01-26T23:33:11Z")\
**Posts on this page:** 5\
**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 26, 2026, 11:33pm UTC](https://gramps.discourse.group/t/how-can-the-source-of-weblate-terms-be-discovered/9077/1 "2026-01-26T23:33:11Z")

</div>

How do you trackback how a Term in a Weblate component was introduced to the database?

One term (“Stamen”) appears as term #27 in the Gramps `glossary` component.

> **[Gramps/Gramps — English](https://hosted.weblate.org/.within.website/?redir=https:%2F%2Fhosted.weblate.org%2Ftranslate%2Fgramps-project%2Fglossary%2Fen%2F?checksum=1e93775e2ccea1a8)**
>
> Gramps is being translated into 57 languages using Weblate. Join the translation or start translating your own project.

The only occurrence of `Stamen` that I recall in Gramps is as a proper noun: the name of the Stamen Map tile provider. And, as a name, it needs no translating. So it seems reasonable to backtrack it to where the term was mismarked in the source code as ‘translatable’. But what is the way to start that backtracking?

Likewise, there are a set of 12 Hebrew month names in that weblate component. (Unlike the ‘Stamen’ maps, month names _do_ need localization.) But there are no other month names in this component. So it seems like they should have found their way into another Weblate component other than the Glossary. So how do we backtrack how they were introduced into the system.

---

<div class="post-metadata">

**Author:** ![GaryGriffin](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/garygriffin/32/6525_2.png) [@GaryGriffin](https://gramps.discourse.group/u/GaryGriffin)\
**Post date:** [January 27, 2026, 12:34am UTC](https://gramps.discourse.group/t/how-can-the-source-of-weblate-terms-be-discovered/9077/2 "2026-01-27T00:34:09Z")

</div>

> [@emyoulation](#):
>
> But what is the way to start that backtracking?

Search in the \*.pot file. For instance, if I go to the addons-source repo,

> grep -i stamen addons.pot

I see that the Heatmap addon use Stamen. Then looking at the code in an editor:

```python
#: Heatmap/utils.py:55
msgid "Stamen Terrain"
msgstr ""
#: Heatmap/utils.py:58
msgid "Stamen Terrain (Background only)"
msgstr ""
#: Heatmap/utils.py:61
msgid "Stamen Toner"
msgstr ""
#: Heatmap/utils.py:64
msgid "Stamen Watercolor"
msgstr ""

```

Looking at the source tree gramps.pot, there are also occurrences in the narrativeweb.

```python
#: ../gramps/plugins/webreport/narrativeweb.py:2653
msgid "Stamen Map"
msgstr ""
#: ../gramps/plugins/webreport/narrativeweb.py:2739
msgid "Stamen Option"
msgstr ""
#: ../gramps/plugins/webreport/narrativeweb.py:2744
msgid ""
"Select which option that you would like to have for the Stamen map map-"
"pages..."
msgstr ""
#: ../gramps/plugins/webreport/narrativeweb.py:2749
msgid "Stamen maps API key"
msgstr ""
#: ../gramps/plugins/webreport/narrativeweb.py:2767
msgid ""
"Copy and paste this value in your browser.\n"
"The Stamen maps service must be selected."
msgstr ""

```

---

<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 27, 2026, 12:56am UTC](https://gramps.discourse.group/t/how-can-the-source-of-weblate-terms-be-discovered/9077/3 "2026-01-27T00:56:25Z")

</div>

Those Heatmap addon translatable strings contain the “Stamen” word inside a larger string rather than the word alone. And the Gramps core application has the same for the `gramps/plugins/webreport/narrativeweb.py`. They are not the single Word by itself.

Also, the those translations are (respectively) collated in the [Gramps `Addons` component](https://hosted.weblate.org/browse/gramps-project/addons/en/?q=Stamen&sort_by=-priority%2Cposition&checksum=) and the [Gramps `Program` component](https://hosted.weblate.org/browse/gramps-project/gramps/en/?q=stamen&sort_by=-priority%2Cposition&checksum=). They are not in the [Gramps `Glossary` component](https://hosted.weblate.org/browse/gramps-project/glossary/en/?q=Stamen&sort_by=source&checksum=).

---

<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 27, 2026, 1:04am UTC](https://gramps.discourse.group/t/how-can-the-source-of-weblate-terms-be-discovered/9077/4 "2026-01-27T01:04:47Z")

</div>

> [@emyoulation](#):
>
> How do you trackback how a Term in a Weblate component was introduced to the database?

Look in the “History” tab in Weblate. The source string “Stamen” was added by Mirko Leonhäuser on 22 Aug 2023 with the terminology flag.

---

<div class="post-metadata">

**Author:** ![codefarmer](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@codefarmer](https://gramps.discourse.group/u/codefarmer)\
**Post date:** [January 27, 2026, 9:25am UTC](https://gramps.discourse.group/t/how-can-the-source-of-weblate-terms-be-discovered/9077/5 "2026-01-27T09:25:07Z")

</div>

> [@GaryGriffin](#):
>
> grep -i stamen addons.pot

Love grep. While the following may not correlate directly to weblate, git also provides a very useful grep function which searches a local repo, and takes arguments such as a tag as shown here:

`> git grep "Stamen" v5.1.0`

No response with the above so Gramps v5.0.0 did not contain Stamen, but Gramps v5.1.1 did:

```python
> git grep "Stamen" v5.1.1
v5.1.1:po/fr.po:# StamenMap est une marque commerciale
v5.1.1:po/fr.po:#~ msgid "StamenMap"
v5.1.1:po/fr.po:#~ msgstr "StamenMap"
v5.1.1:po/fr.po:#~ msgid "Stamen Option"
v5.1.1:po/fr.po:#~ msgstr "Option Stamen"
v5.1.1:po/fr.po:#~ "Select which option that you would like to have for the Stamenmap Map "
v5.1.1:po/fr.po:#~ "cartographiques Stamenmap..."

```

Required manual bisection method between v6.0.6 and v4.0.0 to get to v5.1.1 but still quite fast. And given git has so much capability built-in, there might be a better way to get at it faster.
