<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:13:38 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-1478] What to do about `en.json` translations</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-1478</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;Zak pointed out to Peter on Slack that there have been tickets to developers to use &quot;Headline Capitalization&quot; rather than &quot;Sentence capitalization&quot; for strings in the UI, and he wondered if this is a task we could put on translators rather than developers.&lt;/p&gt;

&lt;p&gt;So the way the GitHub-Lokalise-GitHub round trip works right now is that the `en.json` files are explicitly excluded from being replaced in the Lokalise-to-GitHub part of the trip.  This started as a safety factor for the process in case the modified `en.json` file got messed up along the way.  (While sorting through how we could make Lokalise&apos;s API work for our particular needs, it was possible for one modules&apos; `en.json` file to be overwritten by another&apos;s.)  Peter kept that explicit exclusion in place, though, because using the `en.json` file from Lokalise will result in a file sorted by the translation key and with all clarifying newlines removed.  It seems like module developers have their own way of arranging the keys in the translation file.  This means, though, that the capitalization for `en` localization would need to remain with the developers.&lt;/p&gt;

&lt;p&gt;One way to fix this is to create an `en_US.json` localization that puts the burden of correct capitalization on the translators.  We might have to cross this bridge anyway because their will likely need to be an `en_GB.json` localization (or &apos;localisation&apos; we might say?).  Dealing with the capitalization would just push that to the forefront.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Proposal&quot;&gt;&lt;/a&gt;Proposal&lt;/h2&gt;
&lt;ol&gt;
	&lt;li&gt;`en.json` is the definitive source of translation keys.  A new key added by a developer in this file is imported into Lokalise.  (This is the case now for all ui-* repositories.)&lt;/li&gt;
	&lt;li&gt;Continue the practice of protecting the `en.json` file in the Lokalise-to-GitHub process.&lt;/li&gt;
	&lt;li&gt;Add a rule in Lokalise to automatically copy the key&apos;s value into `en_US` and `en_GB` (and en_CA`?).  I think I can set up the same rule mark such keys as to-be-reviewed in Lokalise.&lt;/li&gt;
	&lt;li&gt;Add `en_US` and `en_GB` to the process of building &quot;folio-snapshot&quot;&lt;/li&gt;
	&lt;li&gt;Make the `en_US` localization the default for &quot;folio-snapshot&quot; builds.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;The first and second are already being done now.  The third and fourth seem uncontroversial.  What about the fifth?&lt;/p&gt;</description>
                <environment></environment>
        <key id="80826">FOLIO-1478</key>
            <summary>What to do about `en.json` translations</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10002" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p3.svg">P3</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Done</resolution>
                                                        <assignee accountid="5ced27478b03050f27825a93">Peter Murray</assignee>
                                                                <reporter accountid="5ced27478b03050f27825a93">Peter Murray</reporter>
                                    <labels>
                            <label>i18n</label>
                            <label>sprint54</label>
                    </labels>
                <created>Mon, 10 Sep 2018 15:07:18 +0000</created>
                <updated>Thu, 28 Feb 2019 20:31:29 +0000</updated>
                            <resolved>Wed, 9 Jan 2019 13:29:00 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                <comments>
                                                            <comment id="195805" author="5ced27478b03050f27825a93" created="Mon, 10 Sep 2018 15:08:06 +0000"  >&lt;p&gt;cc: &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt;, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5af5ed55244bc90a106063c7&quot; class=&quot;user-hover&quot; rel=&quot;5af5ed55244bc90a106063c7&quot; data-account-id=&quot;5af5ed55244bc90a106063c7&quot; accountid=&quot;5af5ed55244bc90a106063c7&quot; rel=&quot;noreferrer&quot;&gt;Cate Boerema&lt;/a&gt;, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5e17508d5361330daaeb6d63&quot; class=&quot;user-hover&quot; rel=&quot;5e17508d5361330daaeb6d63&quot; data-account-id=&quot;5e17508d5361330daaeb6d63&quot; accountid=&quot;5e17508d5361330daaeb6d63&quot; rel=&quot;noreferrer&quot;&gt;Istv&#225;n Bender&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="195806" author="5af5ed55244bc90a106063c7" created="Tue, 11 Sep 2018 10:35:53 +0000"  >&lt;blockquote&gt;&lt;p&gt;Zak pointed out to Peter on Slack that there have been tickets to developers to use &quot;Headline Capitalization&quot; rather than &quot;Sentence capitalization&quot; for strings in the UI, and he wondered if this is a task we could put on translators rather than developers.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Interesting, because guidance from UX is that labels should be in sentence case.  I suppose there may be some exceptions to that which Zak is referring to.&lt;/p&gt;

&lt;p&gt;I worry a bit about leaving the capitalization (of English) to translators.  How would we ensure consistency?  For other languages, capitalization should be translator-provided, as they have different rules (all nouns are capitalized in German, for example).  &lt;/p&gt;

&lt;p&gt;I&apos;m going to loop in &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5cd595118fa24d0dd2de1253&quot; class=&quot;user-hover&quot; rel=&quot;5cd595118fa24d0dd2de1253&quot; data-account-id=&quot;5cd595118fa24d0dd2de1253&quot; accountid=&quot;5cd595118fa24d0dd2de1253&quot; rel=&quot;noreferrer&quot;&gt;John Coburn&lt;/a&gt; and &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A1478fca5-561e-4056-ba78-c61611cb23e9&quot; class=&quot;user-hover&quot; rel=&quot;557058:1478fca5-561e-4056-ba78-c61611cb23e9&quot; data-account-id=&quot;557058:1478fca5-561e-4056-ba78-c61611cb23e9&quot; accountid=&quot;557058:1478fca5-561e-4056-ba78-c61611cb23e9&quot; rel=&quot;noreferrer&quot;&gt;Filip Jakobsen&lt;/a&gt; in case they have thoughts.&lt;/p&gt;</comment>
                                                            <comment id="195808" author="557058:1478fca5-561e-4056-ba78-c61611cb23e9" created="Tue, 11 Sep 2018 11:02:28 +0000"  >&lt;p&gt;Thanks for the comment, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5af5ed55244bc90a106063c7&quot; class=&quot;user-hover&quot; rel=&quot;5af5ed55244bc90a106063c7&quot; data-account-id=&quot;5af5ed55244bc90a106063c7&quot; accountid=&quot;5af5ed55244bc90a106063c7&quot; rel=&quot;noreferrer&quot;&gt;Cate Boerema&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We use sentence capitalization throughout FOLIO, meaning the only words capitalized should be the ones that are normally capitalized in writing body text. In English, that means the first word of the sentence and e.g. names of brands or of people. In German that means capitalizing the first word of the sentence or string, as well as all the nouns. The rules for each language should be followed in the respective translation files.&lt;/p&gt;</comment>
                                                            <comment id="195811" author="5ced27478b03050f27825a93" created="Tue, 11 Sep 2018 20:43:00 +0000"  >&lt;p&gt;Hmmm &amp;#8211; to me that points more in the direction of having translators do it rather than developers; it would all be done in one place.&lt;/p&gt;

&lt;p&gt;If I could summarize the proposal in one sentence, it would be to make the `en.json` language files &quot;internal to developers&quot; and we would expect real sites to use `en_US.json` and `en_GB.json` and so forth.  Perhaps we could even disable the inclusion of `en.json` in builds so only translator-controlled options would appear to the users?&lt;/p&gt;</comment>
                                                            <comment id="195813" author="5af5ed55244bc90a106063c7" created="Wed, 12 Sep 2018 10:22:31 +0000"  >&lt;p&gt;Can you help me understand how it works today? Something like this? &lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;UI labels are first created by developers in the en.json&lt;/li&gt;
	&lt;li&gt;Capitalization in the en.json is what?&lt;/li&gt;
	&lt;li&gt;The US translation files (en_US.json) are created based on the developers&apos; en.json.  Given this, there are no untranslated strings in the US English version of the UI&lt;/li&gt;
	&lt;li&gt;If another locale has an untranslated string, the system displays what?&lt;/li&gt;
&lt;/ol&gt;

</comment>
                                                            <comment id="195815" author="5ced27478b03050f27825a93" created="Wed, 12 Sep 2018 12:32:24 +0000"  >&lt;p&gt;#1 is correct &amp;#8211; UI keys and labels are created by developers in `en.json`.  There is a GitHub webhook which automatically adds new keys into Lokalise on commits to the master branch.&lt;/p&gt;

&lt;p&gt;#2: capitalization in `en.json` is done by the developer, and based on comments here it seems like it is a combination of sentence case and title case.&lt;/p&gt;

&lt;p&gt;#3: `en_US.json` is not automatically created right now; I&apos;m proposing that we add that as a locale and set it as the default in CI builds.  The labels in `en_US.json` would be pre-populated using the values in `en.json` (from the developers).  Then Lokalise users would modify labels in `en_US.json` as necessary.  Note: if a Lokalise user makes a change to a label in `en.json`, that change is &lt;em&gt;not&lt;/em&gt; pushed back into GitHub &amp;#8211; the change to `en.json` is silently dropped by the Lokalise-to-GitHub script.  Given this proposed scenario, there would be no untranslated `en_US.json` strings in Lokalise.&lt;/p&gt;

&lt;p&gt;#4:  when Lokalise doesn&apos;t have a language-specific translation, Lokalise provides the `en.json` string for the locale file.  This is a configurable parameter in the API call that downloads the localization files from Lokalise.  The choices are &quot;base language&quot; (the setting being used now), &quot;empty&quot; (use an empty string in the locale file), and &quot;skip&quot; (don&apos;t include the key in the locale file).&lt;/p&gt;</comment>
                                                            <comment id="195818" author="615afd1cd9820f0070a09ef0" created="Tue, 4 Dec 2018 02:59:17 +0000"  >&lt;blockquote&gt;
&lt;p&gt;make the `en.json` language files &quot;internal to developers&quot; and we would expect real sites to use `en_US.json` and `en_GB.json` and so forth. Perhaps we could even disable the inclusion of `en.json` in builds so only translator-controlled options would appear to the users&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Agreed. &lt;/p&gt;</comment>
                                                            <comment id="195819" author="5ced27478b03050f27825a93" created="Wed, 9 Jan 2019 13:28:50 +0000"  >&lt;p&gt;All of this work is now done.  As it turns out, the way the settings are structured, which languages appear is an explicit list, not implicit based on what files are in the translations directory.  There is now distinct `en_US` and `en_GB` locale files &amp;#8211; both automatically populated from what is initially put in `en.json` &amp;#8211; and `en.json` itself isn&apos;t used by the front end application.&lt;/p&gt;

&lt;p&gt;Also, I corrected some spelling errors in the English locale files along the way.  &lt;img class=&quot;emoticon&quot; src=&quot;/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                                                            <comment id="195821" author="5ced27478b03050f27825a93" created="Thu, 28 Feb 2019 20:31:29 +0000"  >&lt;p&gt;Given the comments in 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UICHKIN-50&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UICHKIN-50&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Check In Behavior for Items Awaiting Pickup (for Request)&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10309?size=medium&quot; /&gt;
            UICHKIN-50
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 and elsewhere, I wonder if it is worth the trouble to have the hosted testing environments in `en_US.json` (Lokalise-managed string) versus `en.json` (developer managed strings).  It might make sense to ignore the spelling and sentence case errors in favor of being able to more readily test/demo issues and features.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="80942">FOLIO-1641</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80941">FOLIO-1642</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80943">FOLIO-1643</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="61904">STCOR-261</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80669">FOLIO-1296</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzyumv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 11 Sep 2018 10:35:53 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>