<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:26:20 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-3196] DECISION: Localisation parameter for back-end</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-3196</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;To translate messages it returns a back-end API needs to know the locale of the client.&lt;/p&gt;

&lt;p&gt;Example message: &quot;No item with barcode &lt;/p&gt;
{itemBarcode}
&lt;p&gt; exists&quot;, for details see &lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/I18N/How+To+translate+FOLIO&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-org.atlassian.net/wiki/display/I18N/How+To+translate+FOLIO&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example locale: de&lt;/p&gt;

&lt;p&gt;Two ways to pass the current locale to a back-end API have been proposed:&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;acceptlanguageHTTPheaderline&quot;&gt;&lt;/a&gt;accept-language HTTP header line&lt;/h2&gt;

&lt;p&gt;This is a standard HTTP header: &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The FOLIO front-end doesn&apos;t use it in favor of a configuration setting for the reasons explained in &lt;a href=&quot;https://www.w3.org/International/questions/qa-when-lang-neg.en&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.w3.org/International/questions/qa-when-lang-neg.en&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The back-end modules can be extended to use the accept-language HTTP header line to determine the language they need to translate into.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;langqueryparameter&quot;&gt;&lt;/a&gt;lang query parameter&lt;/h2&gt;

&lt;p&gt;FOLIO defines the &lt;tt&gt;lang&lt;/tt&gt; query parameter in the language RAML trait:&#160;&lt;a href=&quot;https://github.com/folio-org/raml/blob/raml1.0/traits/language.raml&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/raml/blob/raml1.0/traits/language.raml&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;lang:
  description: |
    Requested language. Optional. [lang=en]
  type: string
  required: &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;
  &lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt;: en
  pattern: &lt;span class=&quot;code-quote&quot;&gt;&quot;[a-zA-Z]{2}&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It is declared in all RAML resource types: &lt;a href=&quot;https://github.com/folio-org/raml/tree/raml1.0/rtypes&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/raml/tree/raml1.0/rtypes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Therefore most back-end APIs already have the (unused) &lt;tt&gt;lang&lt;/tt&gt; parameter in their implementation, for example &lt;a href=&quot;https://github.com/folio-org/mod-circulation-storage/blob/master/src/main/java/org/folio/rest/impl/ScheduledNoticesAPI.java&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/mod-circulation-storage/blob/master/src/main/java/org/folio/rest/impl/ScheduledNoticesAPI.java&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The trait &lt;tt&gt;pattern&lt;/tt&gt; must be extended to allow for &lt;a href=&quot;https://datatracker.ietf.org/doc/html/rfc5646&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;RFC5646=BCP47&lt;/a&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/IETF_language_tag&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;language tags&lt;/a&gt; that are longer than two letters, FOLIO already have front-end translations with longer tags, for example es_419, es_ES, zh_CN, zh_TW. The &lt;tt&gt;pattern&lt;/tt&gt; change is a non-breaking change.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Decisionlogentry&quot;&gt;&lt;/a&gt;Decision log entry&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/DD/Localization+parameter+for+back-end&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-org.atlassian.net/wiki/display/DD/Localization+parameter+for+back-end&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="82099">FOLIO-3196</key>
            <summary>DECISION: Localisation parameter for back-end</summary>
                <type id="10008" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10300?size=medium">Tech Debt</type>
                            <parent id="13679">UXPROD-779</parent>
                                    <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</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="-1">Unassigned</assignee>
                                                                <reporter accountid="5ee89462f7aa140abd82d11d">Julian Ladisch</reporter>
                                    <labels>
                            <label>i18n</label>
                            <label>translation</label>
                    </labels>
                <created>Wed, 9 Jun 2021 10:03:41 +0000</created>
                <updated>Tue, 23 Nov 2021 12:00:21 +0000</updated>
                            <resolved>Tue, 7 Sep 2021 20:08:18 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                                                            <comment id="197675" author="615afd1cd9820f0070a09ef0" created="Wed, 25 Aug 2021 02:30:34 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt;, this ticket is cross-linked with a &lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/DD/Localization+parameter+for+back-end&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;decision log entry&lt;/a&gt; and has been lingering on my to-do list for some time. Sorry! &lt;/p&gt;

&lt;p&gt;As noted in the TC&apos;s minutes from 2021-06-09, we discussed using the HTTP request&apos;s Accept-Language header as the preferred implementation but did not commit to it. My recollection was that there was broad agreement among front-end devs, Tech Council members, and back-end devs that Accept-Language was a good choice. I have updated the Decision Log entry accordingly but left the status &quot;In Progress&quot; until I could confirm this with you. If you agree with the decision, please change the status to &quot;Done&quot;. &lt;/p&gt;

&lt;p&gt;If you disagree with the decision please let me know ASAP. &lt;/p&gt;

&lt;p&gt;If you agree but think we need to provide additional information, let&apos;s plan a meeting but also consider changing the status to &quot;Done&quot; to indicate that the major decision has been made. &lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                            <outwardlinks description="defines">
                                        <issuelink>
            <issuekey id="10080">UXPROD-371</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="82252">FOLIO-3351</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_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10168"><![CDATA[None]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10014" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue key="$xmlutils.escape($text)">Internationalization and Localization</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02y1r:</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>Wed, 25 Aug 2021 02:30:34 +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>