<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>The Pathedral and the Kazoo - i18n</title>
    <link>http://www.erack.org/blog/</link>
    <description>Eike Rathke blogging about LibreOffice and the world (what a claim)</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.6 - http://www.s9y.org/</generator>
    <pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>

    <image>
        <url>http://www.erack.org/blog/templates/bulletproof/img/s9y_banner_small.png</url>
        <title>RSS: The Pathedral and the Kazoo - i18n - Eike Rathke blogging about LibreOffice and the world (what a claim)</title>
        <link>http://www.erack.org/blog/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Does your LibreOffice locale need a date acceptance pattern for incomplete date input?</title>
    <link>http://www.erack.org/blog/archives/18-Does-your-LibreOffice-locale-need-a-date-acceptance-pattern-for-incomplete-date-input.html</link>
            <category>i18n</category>
            <category>LibreOffice</category>
    
    <comments>http://www.erack.org/blog/archives/18-Does-your-LibreOffice-locale-need-a-date-acceptance-pattern-for-incomplete-date-input.html#comments</comments>
    <wfw:comment>http://www.erack.org/blog/wfwcomment.php?cid=18</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.erack.org/blog/rss.php?version=2.0&amp;type=comments&amp;cid=18</wfw:commentRss>
    

    <author>nospam@example.com (erAck)</author>
    <content:encoded>
    &lt;p&gt; As explained in &lt;a href=&quot;archives/8-LibreOffice-date-acceptance-patterns.html&quot;&gt;an earlier article&lt;/a&gt; a new feature will be available with LibreOffice 3.6 that limits date recognition of input to predefined locale dependent patterns to prevent erroneous detection of dates. To be able to input incomplete dates a locale needs date acceptance patterns defined in its locale data, quite a lot submissions of such patterns have already been included, but many locales do not have any pattern assigned yet. For these locales date input will only be possible as a complete date, no incomplete dates will be accepted. Maybe your locale should be enabled for incomplete date input but isn&#039;t yet? Then please submit the pattern(s), either as a comment to this blog post, or on the LibreOffice &lt;span title=&quot;localization&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;l10n&lt;/span&gt; mailing list if you are involved with &lt;span title=&quot;LibreOffice&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;LibO&lt;/span&gt; localization anyway, or simply &lt;a href=&quot;mailto:erack@redhat.com?subject=LibO%20date%20acceptance%20pattern&quot;&quot;&gt;mail me&lt;/a&gt;.

&lt;p&gt;
Locales without explicit DateAcceptancePattern elements:
&lt;br /&gt;
(one implicit full date pattern is always generated)
&lt;p&gt;
ak_GH&amp;#160;&amp;#160;&amp;#160; 
ar_DZ&amp;#160;&amp;#160;&amp;#160; 
ar_EG&amp;#160;&amp;#160;&amp;#160; 
ar_OM&amp;#160;&amp;#160;&amp;#160; 
ast_ES&amp;#160;&amp;#160;&amp;#160; 
az_AZ&amp;#160;&amp;#160;&amp;#160; 
bn_IN&amp;#160;&amp;#160;&amp;#160; 
bs_BA&amp;#160;&amp;#160;&amp;#160; 
cv_RU&amp;#160;&amp;#160;&amp;#160; 
da_DK&amp;#160;&amp;#160;&amp;#160; 
de_AT&amp;#160;&amp;#160;&amp;#160; 
de_CH&amp;#160;&amp;#160;&amp;#160; 
de_LI&amp;#160;&amp;#160;&amp;#160; 
de_LU&amp;#160;&amp;#160;&amp;#160; 
dsb_DE&amp;#160;&amp;#160;&amp;#160; 
dz_BT&amp;#160;&amp;#160;&amp;#160; 
ee_GH&amp;#160;&amp;#160;&amp;#160; 
el_GR&amp;#160;&amp;#160;&amp;#160; 
en_AU&amp;#160;&amp;#160;&amp;#160; 
en_CA&amp;#160;&amp;#160;&amp;#160; 
en_GB&amp;#160;&amp;#160;&amp;#160; 
en_GH&amp;#160;&amp;#160;&amp;#160; 
en_JM&amp;#160;&amp;#160;&amp;#160; 
en_NA&amp;#160;&amp;#160;&amp;#160; 
en_ZA&amp;#160;&amp;#160;&amp;#160; 
eo&amp;#160;&amp;#160;&amp;#160; 
es_AR&amp;#160;&amp;#160;&amp;#160; 
es_BO&amp;#160;&amp;#160;&amp;#160; 
es_CL&amp;#160;&amp;#160;&amp;#160; 
es_CO&amp;#160;&amp;#160;&amp;#160; 
es_CR&amp;#160;&amp;#160;&amp;#160; 
es_DO&amp;#160;&amp;#160;&amp;#160; 
es_EC&amp;#160;&amp;#160;&amp;#160; 
es_GT&amp;#160;&amp;#160;&amp;#160; 
es_PE&amp;#160;&amp;#160;&amp;#160; 
eu&amp;#160;&amp;#160;&amp;#160; 
fa_IR&amp;#160;&amp;#160;&amp;#160; 
fo_FO&amp;#160;&amp;#160;&amp;#160; 
fr_CA&amp;#160;&amp;#160;&amp;#160; 
fur_IT&amp;#160;&amp;#160;&amp;#160; 
fy_NL&amp;#160;&amp;#160;&amp;#160; 
gl_ES&amp;#160;&amp;#160;&amp;#160; 
gsc_FR&amp;#160;&amp;#160;&amp;#160; 
gug_PY&amp;#160;&amp;#160;&amp;#160; 
ha_GH&amp;#160;&amp;#160;&amp;#160; 
haw_US&amp;#160;&amp;#160;&amp;#160; 
he_IL&amp;#160;&amp;#160;&amp;#160; 
hi_IN&amp;#160;&amp;#160;&amp;#160; 
hil_PH&amp;#160;&amp;#160;&amp;#160; 
hr_HR&amp;#160;&amp;#160;&amp;#160; 
hsb_DE&amp;#160;&amp;#160;&amp;#160; 
ht_HT&amp;#160;&amp;#160;&amp;#160; 
hu_HU&amp;#160;&amp;#160;&amp;#160; 
hy_AM&amp;#160;&amp;#160;&amp;#160; 
ia&amp;#160;&amp;#160;&amp;#160; 
id_ID&amp;#160;&amp;#160;&amp;#160; 
it_CH&amp;#160;&amp;#160;&amp;#160; 
jbo&amp;#160;&amp;#160;&amp;#160; 
ka_GE&amp;#160;&amp;#160;&amp;#160; 
kk_KZ&amp;#160;&amp;#160;&amp;#160; 
kl_GL&amp;#160;&amp;#160;&amp;#160; 
km_KH&amp;#160;&amp;#160;&amp;#160; 
ko_KR&amp;#160;&amp;#160;&amp;#160; 
ku_TR&amp;#160;&amp;#160;&amp;#160; 
ky_KG&amp;#160;&amp;#160;&amp;#160; 
la_VA&amp;#160;&amp;#160;&amp;#160; 
lb_LU&amp;#160;&amp;#160;&amp;#160; 
lg_UG&amp;#160;&amp;#160;&amp;#160; 
lif_NP&amp;#160;&amp;#160;&amp;#160; 
ln_CD&amp;#160;&amp;#160;&amp;#160; 
lo_LA&amp;#160;&amp;#160;&amp;#160; 
ltg_LV&amp;#160;&amp;#160;&amp;#160; 
lv_LV&amp;#160;&amp;#160;&amp;#160; 
mai_IN&amp;#160;&amp;#160;&amp;#160; 
mk_MK&amp;#160;&amp;#160;&amp;#160; 
ml_IN&amp;#160;&amp;#160;&amp;#160; 
mn_MN&amp;#160;&amp;#160;&amp;#160; 
mt_MT&amp;#160;&amp;#160;&amp;#160; 
my_MM&amp;#160;&amp;#160;&amp;#160; 
myv_RU&amp;#160;&amp;#160;&amp;#160; 
ne_NP&amp;#160;&amp;#160;&amp;#160; 
no_NO&amp;#160;&amp;#160;&amp;#160; 
oc_FR&amp;#160;&amp;#160;&amp;#160; 
om_ET&amp;#160;&amp;#160;&amp;#160; 
or_IN&amp;#160;&amp;#160;&amp;#160; 
pjt_AU&amp;#160;&amp;#160;&amp;#160; 
pl_PL&amp;#160;&amp;#160;&amp;#160; 
plt_MG&amp;#160;&amp;#160;&amp;#160; 
ro_RO&amp;#160;&amp;#160;&amp;#160; 
rue_SK&amp;#160;&amp;#160;&amp;#160; 
rw_RW&amp;#160;&amp;#160;&amp;#160; 
sc_IT&amp;#160;&amp;#160;&amp;#160; 
sg_CF&amp;#160;&amp;#160;&amp;#160; 
shs_CA&amp;#160;&amp;#160;&amp;#160; 
so_SO&amp;#160;&amp;#160;&amp;#160; 
sr_RS&amp;#160;&amp;#160;&amp;#160; 
sv_FI&amp;#160;&amp;#160;&amp;#160; 
sv_SE&amp;#160;&amp;#160;&amp;#160; 
sw_TZ&amp;#160;&amp;#160;&amp;#160; 
tg_TJ&amp;#160;&amp;#160;&amp;#160; 
th_TH&amp;#160;&amp;#160;&amp;#160; 
ti_ER&amp;#160;&amp;#160;&amp;#160; 
tk_TM&amp;#160;&amp;#160;&amp;#160; 
tpi_PG&amp;#160;&amp;#160;&amp;#160; 
ug_CN&amp;#160;&amp;#160;&amp;#160; 
uk_UA&amp;#160;&amp;#160;&amp;#160; 
ur_PK&amp;#160;&amp;#160;&amp;#160; 
uz_UZ&amp;#160;&amp;#160;&amp;#160; 
vi_VN&amp;#160;&amp;#160;&amp;#160; 
wa_BE&amp;#160;&amp;#160;&amp;#160; 
zh_HK&amp;#160;&amp;#160;&amp;#160; 
zh_MO&amp;#160;&amp;#160;&amp;#160; 
zh_SG&amp;#160;&amp;#160;&amp;#160; 


&lt;p&gt;
Locales with explicit DateAcceptancePattern elements:
&lt;ul&gt;
  &lt;li&gt; an_ES:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; be_BY:
  &lt;ul&gt;
    &lt;li&gt; D/M/
    &lt;li&gt; D.M.
  &lt;/ul&gt;
  &lt;li&gt; bg_BG:
  &lt;ul&gt;
    &lt;li&gt; D.M.Y г.
    &lt;li&gt; D.M.Y г.
    &lt;li&gt; D.M.Y Г.
    &lt;li&gt; D.M.Y Г.
  &lt;/ul&gt;
  &lt;li&gt; br_FR:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; ca_ES:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; cs_CZ:
  &lt;ul&gt;
    &lt;li&gt; D.M.
    &lt;li&gt; D. M.
    &lt;li&gt; D. M. Y
    &lt;li&gt; D. M.
    &lt;li&gt; D. M. Y
  &lt;/ul&gt;
  &lt;li&gt; de_DE:
  &lt;ul&gt;
    &lt;li&gt; D.M.
  &lt;/ul&gt;
  &lt;li&gt; en_US:
  &lt;ul&gt;
    &lt;li&gt; M/D
  &lt;/ul&gt;
  &lt;li&gt; es_ES:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; et_EE:
  &lt;ul&gt;
    &lt;li&gt; D.M
    &lt;li&gt; D. M
    &lt;li&gt; D.M.
    &lt;li&gt; D. M.
  &lt;/ul&gt;
  &lt;li&gt; fi_FI:
  &lt;ul&gt;
    &lt;li&gt; D.M.
  &lt;/ul&gt;
  &lt;li&gt; fr_BE:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; fr_CH:
  &lt;ul&gt;
    &lt;li&gt; D/M
    &lt;li&gt; D.M.
  &lt;/ul&gt;
  &lt;li&gt; fr_FR:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; fr_LU:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; gd_GB:
  &lt;ul&gt;
    &lt;li&gt; D/M
    &lt;li&gt; D-M
  &lt;/ul&gt;
  &lt;li&gt; is_IS:
  &lt;ul&gt;
    &lt;li&gt; D/M/
    &lt;li&gt; D.M.
  &lt;/ul&gt;
  &lt;li&gt; it_IT:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; ja_JP:
  &lt;ul&gt;
    &lt;li&gt; M-D
    &lt;li&gt; M/D
    &lt;li&gt; M／D
    &lt;li&gt; Y.M.D
    &lt;li&gt; Y／M／D
    &lt;li&gt; Y年M月D日
    &lt;li&gt; M月D日
  &lt;/ul&gt;
  &lt;li&gt; kab_DZ:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; lt_LT:
  &lt;ul&gt;
    &lt;li&gt; M-D
  &lt;/ul&gt;
  &lt;li&gt; nl_BE:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; nl_NL:
  &lt;ul&gt;
    &lt;li&gt; D-M
  &lt;/ul&gt;
  &lt;li&gt; pt_AO:
  &lt;ul&gt;
    &lt;li&gt; D-M
  &lt;/ul&gt;
  &lt;li&gt; pt_BR:
  &lt;ul&gt;
    &lt;li&gt; D/M
  &lt;/ul&gt;
  &lt;li&gt; pt_PT:
  &lt;ul&gt;
    &lt;li&gt; D-M
  &lt;/ul&gt;
  &lt;li&gt; ru_RU:
  &lt;ul&gt;
    &lt;li&gt; D.M.
    &lt;li&gt; D/M/
  &lt;/ul&gt;
  &lt;li&gt; sk_SK:
  &lt;ul&gt;
    &lt;li&gt; D.M.
    &lt;li&gt; D. M.
    &lt;li&gt; D. M. Y
    &lt;li&gt; D. M.
    &lt;li&gt; D. M. Y
  &lt;/ul&gt;
  &lt;li&gt; sl_SI:
  &lt;ul&gt;
    &lt;li&gt; D. M. Y
    &lt;li&gt; D.M.
    &lt;li&gt; D. M.
  &lt;/ul&gt;
  &lt;li&gt; tr_TR:
  &lt;ul&gt;
    &lt;li&gt; D.M
    &lt;li&gt; D/M
    &lt;li&gt; D-M
  &lt;/ul&gt;
  &lt;li&gt; zh_CN:
  &lt;ul&gt;
    &lt;li&gt; M-D
    &lt;li&gt; M/D
    &lt;li&gt; M／D
    &lt;li&gt; Y.M.D
    &lt;li&gt; Y/M/D
    &lt;li&gt; Y年M月D日
    &lt;li&gt; M月D日
  &lt;/ul&gt;
  &lt;li&gt; zh_TW:
  &lt;ul&gt;
    &lt;li&gt; Y.M.D
    &lt;li&gt; M-D
    &lt;li&gt; M/D
    &lt;li&gt; Y年M月D日
    &lt;li&gt; M月D日
  &lt;/ul&gt;
&lt;/ul&gt;

&lt;p&gt; If some of the entries seem to be duplicates within a locale and include spaces, that&#039;s because they are defined both with normal space and with breaking space to accommodate both input variants.

&lt;p&gt;  
    </content:encoded>

    <pubDate>Mon, 30 Apr 2012 21:09:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.erack.org/blog/archives/18-guid.html</guid>
    <category>Calc</category>
<category>cell input</category>
<category>dates</category>
<category>i18n</category>
<category>LibreOffice</category>
<category>locale data</category>
<category>number scanner</category>
<category>spreadsheet</category>

</item>
<item>
    <title>LibreOffice date acceptance patterns</title>
    <link>http://www.erack.org/blog/archives/8-LibreOffice-date-acceptance-patterns.html</link>
            <category>Calc</category>
            <category>i18n</category>
            <category>LibreOffice</category>
    
    <comments>http://www.erack.org/blog/archives/8-LibreOffice-date-acceptance-patterns.html#comments</comments>
    <wfw:comment>http://www.erack.org/blog/wfwcomment.php?cid=8</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.erack.org/blog/rss.php?version=2.0&amp;type=comments&amp;cid=8</wfw:commentRss>
    

    <author>nospam@example.com (erAck)</author>
    <content:encoded>
    &lt;p&gt; Abstract: &lt;span title=&quot;The LibreOffice Spreadsheet Application&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Calc&lt;/span&gt;&#039;s (and in Writer table) cell input now needs to match locale
dependent date acceptance patterns before it is recognized as a valid date.

&lt;p&gt; Previously the number formatter&#039;s input scanner was very lax in what it
accepted as a &quot;valid&quot; date. All combinations of 2-3 numbers separated by &#039;.&#039;
&#039;/&#039; &#039;-&#039; or the locale&#039;s date separator even with blanks in between that somehow
could be interpreted as a date was accepted as such, which was especially
confusing with incomplete dates containing only 2 numbers that in many cases
were meant as textual input instead. For example

&lt;ul&gt;
  &lt;li&gt; In en-US locale, M/D is a valid date input to be interpreted as day of
  month of current year. However, M/D/ and M.D. were accepted as well.
  &lt;li&gt; In de-DE locale, D.M. is a valid date input to be interpreted as day of
  month of current year. However, D.M and D/M and D/M/ were accepted as well.
&lt;/ul&gt;

&lt;p&gt; In case of an input like 1.2 in a de-DE locale or others using &#039;.&#039;
separator, meant as some sort of textual numbering, this was extremely
annoying, it was interpreted as 1st of February of current year and the user
had to prepend a single quote / apostrophe to suppress date recognition.
Similar for 1.2.3 in locales that do not use the &#039;.&#039; date separator.

&lt;p&gt; Now, during build time for each locale one full date acceptance pattern is
generated from the existing locale data&#039;s number format &lt;em&gt;FormatElement&lt;/em&gt;
with &lt;em&gt;formatindex=&quot;21&quot;&lt;/em&gt; that is also used to edit dates, taking the DMY
order and the defined &lt;em&gt;DateSeparator&lt;/em&gt;. For example, in the en-US locale
this generates &lt;b&gt;M/D/Y&lt;/b&gt; from the MM/DD/YYYY &lt;em&gt;FormatCode&lt;/em&gt;, and in the
de-DE locale &lt;b&gt;D.M.Y&lt;/b&gt; from the DD.MM.YYYY code. For this to work correctly
the separator used in the FormatCode must match the DateSeparator element
defined in &lt;em&gt;Separators&lt;/em&gt;. As for all rules there&#039;s one exception though
;) if the format code uses a different separator and that is one of the known
&#039;-&#039; &#039;.&#039; &#039;/&#039; separators, a second pattern is generated using the format&#039;s
separator. This as a generalized case for locales that for example may use an
ISO 8601 edit format, as hu-HU does, regardless what the date separator is
defined to.

&lt;p&gt; Additionally to the date acceptance pattern every locale of course still
accepts input in an ISO 8601 &lt;b&gt;Y-M-D&lt;/b&gt; pattern, and since LibreOffice 3.5
that also leads to the YYYY-MM-DD format being applied.


&lt;h5&gt; Localizers, HEADS UP please &lt;/h5&gt;

&lt;p&gt; If in your locale incomplete dates should be accepted or additional
patterns that vary from the generated full date pattern are needed, those are
to be defined in the locale data &lt;em&gt;LC_FORMAT&lt;/em&gt; element for which a new
&lt;em&gt;DateAcceptancePattern&lt;/em&gt; element exists, of which zero or more can occur
before the &lt;em&gt;FormatElement&lt;/em&gt; elements. Currently only the following
patterns are defined as they are the only ones I knew were plausible:

&lt;ul&gt;
  &lt;li&gt; bg-BG, a trailing breaking or non-breaking space followed by lower case
  or upper case Cyrillic letter GHE and a dot, as defined in the edit format
  &lt;ul&gt;
    &lt;li&gt; D.M.Y г.
    &lt;li&gt; D.M.Y г.
    &lt;li&gt; D.M.Y Г.
    &lt;li&gt; D.M.Y Г.
  &lt;/ul&gt;
  &lt;li&gt; de-DE, incomplete date
  &lt;ul&gt;
    &lt;li&gt; D.M.
  &lt;/ul&gt;
  &lt;li&gt; en-US, incomplete date
  &lt;ul&gt;
    &lt;li&gt; M/D
  &lt;/ul&gt;
  &lt;li&gt; sl-SI, date separator dot plus space
  &lt;ul&gt;
    &lt;li&gt; D. M. Y
  &lt;/ul&gt;
&lt;/ul&gt;

&lt;p&gt; For example see &lt;a href=&quot;http://www.erack.org/blog/exit.php?url_id=18&amp;amp;entry_id=8&quot;  onmouseover=&quot;window.status=&#039;http://cgit.freedesktop.org/libreoffice/core/plain/i18npool/source/localedata/data/en_US.xml&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;the English-US locale data file&quot;&gt;i18npool/source/localedata/data/en_US.xml&lt;/a&gt;

&lt;p&gt; Happy date accepting :-)

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; an updated list of locales and patterns is available in &lt;a href=&quot;archives/18-Does-your-LibreOffice-locale-need-a-date-acceptance-pattern-for-incomplete-date-input.html&quot;&gt;a newer blog post&lt;/a&gt;.

&lt;p&gt;
  
    </content:encoded>

    <pubDate>Wed, 11 Jan 2012 20:46:20 +0100</pubDate>
    <guid isPermaLink="false">http://www.erack.org/blog/archives/8-guid.html</guid>
    <category>Calc</category>
<category>cell input</category>
<category>dates</category>
<category>i18n</category>
<category>l10n</category>
<category>LibreOffice</category>
<category>locale data</category>
<category>number formatter</category>
<category>number scanner</category>
<category>spreadsheet</category>
<category>Writer</category>

</item>
<item>
    <title>LibreOffice possessive genitive case and partitive case month names</title>
    <link>http://www.erack.org/blog/archives/2-LibreOffice-possessive-genitive-case-and-partitive-case-month-names.html</link>
            <category>i18n</category>
            <category>LibreOffice</category>
    
    <comments>http://www.erack.org/blog/archives/2-LibreOffice-possessive-genitive-case-and-partitive-case-month-names.html#comments</comments>
    <wfw:comment>http://www.erack.org/blog/wfwcomment.php?cid=2</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.erack.org/blog/rss.php?version=2.0&amp;type=comments&amp;cid=2</wfw:commentRss>
    

    <author>nospam@example.com (erAck)</author>
    <content:encoded>
    &lt;p&gt; Poss...what? you may ask.. yes, the month that owns the day-of-month.

&lt;p&gt; In some languages (and thus locales) a month name has different cases, depending on the context the name is used in. That&#039;s for example the case in Slavic languages, Greek, Russian, Finnish, Gaelic, ... and probably a few more I didn&#039;t hear of. Totally unknown to native English speakers ;-)  (which I&#039;m not)

&lt;p&gt;
&lt;ul&gt;
  &lt;li&gt; a standalone month name is the nominative case, the noun, as in &lt;em&gt;November&lt;/em&gt;
  &lt;li&gt; a possessive genitive case month name can be described as &quot;the month&#039;s day&quot;, as in &lt;em&gt;November&#039;s 17th&lt;/em&gt;
  &lt;li&gt; a partitive case month name can be described as &quot;day of month&quot;, as in &lt;em&gt;17 of November&lt;/em&gt;
&lt;/ul&gt;

&lt;p&gt; This feature in number formatting was requested for quite some time. Recently I found time to implement it. To achieve this, I added optional elements to LibreOffice&#039;s internal locale data &amp;lt;LC_CALENDAR&amp;gt;&amp;lt;Calendar&amp;gt; element and implemented the general rules in the number formatter.


&lt;p&gt;
&lt;h5&gt; Locale data (submitted by localizers) &lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt; &amp;lt;MonthsOfYear&amp;gt; element, nominative (nouns) month names
  &lt;ul&gt;
    &lt;li&gt; always specified
    &lt;li&gt; includes &amp;lt;Month&amp;gt;, &amp;lt;MonthID&amp;gt;, &amp;lt;DefaultAbbrvName&amp;gt; and &amp;lt;DefautFullName&amp;gt; elements
  &lt;/ul&gt;
  &lt;li&gt; &amp;lt;GenitiveMonths&amp;gt; element, genitive case month names
  &lt;ul&gt;
    &lt;li&gt; optional
    &lt;li&gt; follows the &amp;lt;MonthsOfYear&amp;gt; element
    &lt;li&gt; consists of same elements as &amp;lt;MonthsOfYear&amp;gt; element
    &lt;li&gt; if &amp;lt;GenitiveMonths&amp;gt; are not specified then &amp;lt;MonthsOfYear&amp;gt; names are used in the context of the number formatter&#039;s genitive case
  &lt;/ul&gt;
  &lt;li&gt; &amp;lt;PartitiveMonths&amp;gt; element, partitive case month names
  &lt;ul&gt;
    &lt;li&gt; optional
    &lt;li&gt; follows the &amp;lt;GenitiveMonths&amp;gt; element, or follows the &amp;lt;MonthsOfYear&amp;gt; element if the &amp;lt;GenitiveMonths&amp;gt; element is not specified
    &lt;li&gt; consists of same elements as &amp;lt;MonthsOfYear&amp;gt; element
    &lt;li&gt; if &amp;lt;PartitiveMonths&amp;gt; are not specified then &amp;lt;GenitiveMonths&amp;gt; names are used, if that is not specified then &amp;lt;MonthsOfYear&amp;gt; names are used
  &lt;/ul&gt;
&lt;/ul&gt;


&lt;p&gt;
&lt;h5&gt; Rules for use of nominative / genitive / partitive case month names in number formatter when encountering MMM or MMMM &lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt; MMM or MMMM immediately preceded or followed by a literal character other than space &amp;rArr; nominative month name (noun), for Excel and backwards compatibility such as Finnish MMMM&quot;ta&quot;
  &lt;li&gt; no day of month (D or DD) present in format code &amp;rArr; nominative name
  &lt;li&gt; day of month (D or DD) after MMM or MMMM &amp;rArr; genitive name
  &lt;ul&gt;
    &lt;li&gt; no genitive names defined &amp;rArr; nominative names
  &lt;/ul&gt;
  &lt;li&gt; day of month (D or DD) before MMM or MMMM &amp;rArr; partitive name
  &lt;ul&gt;
    &lt;li&gt; no partitive names defined &amp;rArr; genitive names
    &lt;ul&gt;
      &lt;li&gt; no genitive names defined &amp;rArr; nominative names
    &lt;/ul&gt;
  &lt;/ul&gt;
&lt;/ul&gt;


&lt;h5&gt; NOTE: &lt;/h5&gt;

&lt;p&gt; If only &amp;lt;MonthsOfYear&amp;gt; and &amp;lt;PartitiveMonths&amp;gt; are specified but not &amp;lt;GenitiveMonths&amp;gt;, then for MMM(M) D(D) formats the &amp;lt;MonthsOfYear&amp;gt; nominative name is displayed. Only for D(D) MMM(M) formats the &amp;lt;PartitiveMonths&amp;gt; name is displayed.

&lt;p&gt; If only for MMM(M) D(D) formats the &amp;lt;GenitiveMonths&amp;gt; are to be displayed but nominative names for D(D) MMM(M), then specify &amp;lt;PartitiveMonths&amp;gt; identical to &amp;lt;MonthsOfYear&amp;gt;, do not omit it as otherwise it would inherit from &amp;lt;GenitiveMonths&amp;gt; again.


&lt;h5&gt; Screenshot &lt;/h5&gt;
&lt;p&gt; To illustrate, here&#039;s a screenshot using the Finnish fi-FI locale, Finnish is an extraordinary case that uses all three, nominative, genitive and partitive case month names.

&lt;div class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 558px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:1 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;558&quot; height=&quot;484&quot;  src=&quot;http://www.erack.org/blog/uploads/screenshots/date_nominative_genitive_partitive_fi_FI.png&quot; title=&quot;Screenshot of nominative, genitive and partitive month names in Finnish.&quot; alt=&quot;Screenshot of nominative, genitive and partitive month names in Finnish.&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Screenshot of nominative, genitive and partitive month names in Finnish.&lt;/div&gt;&lt;/div&gt;


&lt;h5&gt; Locales featuring month name cases &lt;/h5&gt;

Currently for the following locales genitive and/or partitive case month names were contributed:

&lt;ul&gt;
  &lt;li&gt; [an-ES]  Aragonese, Spain
  &lt;li&gt; [ast-ES] Asturian, Spain
  &lt;li&gt; [be-&lt;span title=&quot;Attribution&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;BY&lt;/span&gt;]  Belarusian, Belarus
  &lt;li&gt; [fi-FI]  Finnish, Finland
  &lt;li&gt; [gd-GB]  Gaelic (Scottish), United Kingdom
  &lt;li&gt; [la-VA]  Latin, State of the Vatican City
  &lt;li&gt; [lt-LT]  Lithuanian, Lithuania
  &lt;li&gt; [ru-RU]  Russian, Russia
&lt;/ul&gt;

&lt;p&gt; As you can see, that&#039;s only a few locales and not all that should be covered.
So if you&#039;re working on localization of LibreOffice and your language uses
month name cases, please contribute the locale data additions as lined out
above. Best send a patch of your locale&#039;s .xml data file as attachment to the
developer mailing list and I&#039;ll pick it up. If uncertain how to do that just
ask and we&#039;ll help. For an example how the data looks like see 
&lt;a href=&quot;http://www.erack.org/blog/exit.php?url_id=3&amp;amp;entry_id=2&quot;  onmouseover=&quot;window.status=&#039;http://cgit.freedesktop.org/libreoffice/core/plain/i18npool/source/localedata/data/lt_LT.xml&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;the Lithuanian locale data file&quot;&gt;i18npool/source/localedata/data/lt_LT.xml&lt;/a&gt; 
and search for GenitiveMonths. If you&#039;re interested in technical details of locale data files see 
&lt;a href=&quot;http://www.erack.org/blog/exit.php?url_id=4&amp;amp;entry_id=2&quot;  onmouseover=&quot;window.status=&#039;http://cgit.freedesktop.org/libreoffice/core/plain/i18npool/source/localedata/data/locale.dtd&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;the locale data DTD file&quot;&gt;i18npool/source/localedata/data/locale.dtd&lt;/a&gt;

&lt;p&gt; Happy month casing :-)

&lt;p&gt;
  
    </content:encoded>

    <pubDate>Tue, 20 Dec 2011 18:12:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.erack.org/blog/archives/2-guid.html</guid>
    <category>i18n</category>
<category>l10n</category>
<category>LibreOffice</category>
<category>locale data</category>
<category>number formatter</category>

</item>

</channel>
</rss>
