Forums: Index > Help desk > Multilingual support problems

Thurstan has detected a fault in part of our multilingual support system. I have been using French as default language for Wikia sites for the last few weeks. Pages I have created are now apparently displaying some headings or connecting text in French even to people using English. The key is probably related to {{String}}, perhaps simply that that has not been used everywhere it should have been.

Here's the report that sparked the inquiry:

When I look at the children of Mary Howell (1782-1854) (a page you created), I see "Birth: February 17, 1816 à New Jersey, United States", but when I create pages, I see "in" rather than "à". I think this is a bug in our language support. Thurstan 22:18, September 22, 2010 (UTC)

Discussion of solutions is welcome. So as to minimize duplication of work, please report here any investigations and changes.

Robin Patterson (Talk) 00:50, September 23, 2010 (UTC)

I think the problem is that {{String}} is being used where it shouldn't, namely when generating properties: the property is being set based on the user language preference, rather than the page language. The easiest solution is not to have a word that need translation in the properties: just generate "Birth: February 17, 1816, New Jersey, United States". Thurstan 05:36, September 23, 2010 (UTC)

Property:Birth date[]

*[[has type::Date ]]
*subproperty of (allows search on) [[subproperty of::Property:event date]]

Property:Birth year[]

{{Configure property event|year}}

Property:Birth locality[]

{{Configure property event location|event name=birth|geographic unit=locality}}

{{Configure property event}}[]

Paragraphs of explanation with mention of string or language, then:

'''SMW characteristics:
*Type:[[has type::{{#switch:{{{1|}}}|year=date|if-bce=boolean|number}}]]
*subproperty of (allows search on) [[subproperty of::Event {{{1|}}}]]

{{Configure property event location}}[]

<includeonly>{| class="wikitable collapsible collapsed"
!Info on this Property
|{{Valid name category}}
|{{Location property docs|{{{geographic unit}}}=y}}
|'''SMW characteristics:
*All pages in this category will use the form <span style="color:maroon">('''Disabled''')</span> [[Has default form::{{{geographic unit}}}]].
*[[has type::Type:Page ]]
*subproperty of (allows search on) [[subproperty of::Property:{{{geographic unit}}}]]
*subproperty of (allows search on) [[subproperty of::Property:{{{event name}}} location]]
{{#if:{{{property group|}}}|
*subproperty of (allows search on) [[subproperty of::Property:{{{property group}}} {{{geographic unit}}}]]}}

|}</includeonly><noinclude> (and so on, with no mention of language or string 

Property:Event date[]

*Type:[[has type::Date ]]


It's long! Plenty of mention of {{String}}, with these parameters:

  • fm-form-children intro
  • fm-person article insert
  • fm-edit children facts
  • fm-warning form buttons
  • fm-family information
  • fm-family group
  • fm-joined_with
  • fm-unknown
  • fm-married question
  • fm-children
  • fm-sources
  • fm-notes
  • fm-family information more

Then a lot of repetition, for each group.


...</noinclude><includeonly>{{string|fm-form-person intro}}

{{{standard input|save}}} {{{standard input|minor edit}}} {{{standard input|summary}}}
{{string|fm-warning form buttons}}

{{showfacts formbuttons|advanced+children+journeys+residences}}

<center>'''{{string|fm-notice use semicolons}}'''</center>
{{{for template|Showfacts person}}}
{{Form table-general info|mode=simple}}

{{form table-event|birth|mode=simple|state=|inside state=collapsed|image=[[File:3 week old swaddled infant.png|60px]]}}
{{form table-event|death|mode=simple|state=|image=[[File:Stop black man.svg|50px]]}}
{{form table-event|wedding|count=1|mode=simple|state=|image=[[File:Weddingring_2007-6-23-1.jpg|60px]]}}

{| class="formtable collapsible collapsed" style="border:1px solid green;width:100%;"
!colspan=2|<span style="font-size:120%;color:blue;">'''{{string|fm-additional_info}}'''</span>
{{form table-event|baptism|state=|mode=simple|image=[[File:Skondals kyrka 2005.jpg|60px]]}}
{{form table-event|wedding|count=2|mode=simple|image=[[File:Weddingring_2007-6-23-1.jpg|60px]]}}
{{form table-event|remains|state=|mode=simple|image=[[File:Flowers grave.jpg|60px]]}}

<!-- the following are hidden, but we need to process them so that the parameters are not thrown away after a form edit -->{{form table-event|wedding|mode=hide|count=3}}{{form table-event|wedding|mode=hide|count=4}}{{form table-event|wedding|mode=hide|count=5}}{{form table-event|wedding|mode=hide|count=6}}{{form table-event|wedding|mode=hide|count=7}}{{form table-event|wedding|mode=hide|count=8}}<span style="display:none">{{{field|infobox-links|hidden}}}{{{field|test1|hidden}}}{{{field|globals|hidden|default={{get globals}}|type=textarea }}}</span>
{{{end template}}}
{{#if:{{#show:{{PAGENAME}}|default=|?sex=}}||<!--only executes on new article-->
{{{for template|Showfacts biography}}}
{{{end template}}}
{{{for template|Showfacts children}}}
{{{end template}}}

{{{standard input|free text|size=100%|preload=Form:Person/preload}}}

{{{standard input|summary}}}

{{{standard input|minor edit}}} {{{standard input|watch}}}

{{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}}

Strings fm list[]

These are the only ones starting with a preposition (except for several that are clearly instructions rather than labels:

  • fm147 fm-tmpl-translation-04 into
  • fm149 fm-in (location) in
  • fm213 fm-with With

That fm149 may be our target. Somehow. — Robin Patterson (Talk) 10:13, September 23, 2010 (UTC)


The problem properties are Birth place and Death place.

These properties are set in {{Location set and format}}, which uses {{string|fm-in (location)}} (which evalutes to "in", "in" for me). Since it is a prefix (rather than a separator), we can't just replace it with a comma, since that doesn't work when we only have a place and no date. Perhaps the template could use a variant of {{string}} which uses the page language only, and ignores the user language.

Another possibility is to remove the preposition from these properties, and supply it when needed when displaying the page. This properly separates property values from display issues, and is my preferred solution.

Thurstan 23:40, September 23, 2010 (UTC)

Thank you for finding where "in" is relevantly used. I've noted the bug on its talk page. I can't see anything against your preferred solution, but (with my low level of understanding of code) that means little. A third opinion would be helpful. It seems the same bug appears on tree pages, e.g. the tree for Mary's child, where I see "Mary Howell (1782-1854) Birth: à Kingston, Somerset County, New Jersey, United States, 19 February 1782. Death: à Caldwell, Essex County, ...". But I presume it doesn't affect {{Showfacts biography}}, where I see "Mary Howell was born 19 February 1782 in Kingston, ...". — Robin Patterson (Talk) 03:27, September 24, 2010 (UTC)

Since the bug is due to violating the design principle of "separation of concerns", specifically "separation of presentation and content", I don't think there is another option to fix it. As you have noticed, {{showfacts tree02}} calls {{showfacts tree02/table}} which uses the properties birth blurb and death blurb, which will also have to change. As noted in its documentation, {{showfacts biography}} does not do translation. Thurstan 06:09, September 24, 2010 (UTC)