<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" 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/"><channel><title>Internationalization</title><link>https://community.appian.com/discussions/f/plug-ins/28690/internationalization</link><description>Hi, 
 I want to develop an application that can work in 2 languages - English and French, I went through the documentation and other resources but it is not very clear how to go about it. Can someone kindly provide a step by step document or a resource</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/118932?ContentTypeID=1</link><pubDate>Mon, 11 Sep 2023 04:59:27 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:e2ec68c0-8905-46df-a5e3-6957dda11f4b</guid><dc:creator>swethai0002</dc:creator><description>&lt;p&gt;Thank you &lt;a href="/members/muhammedk"&gt;muhammedk&lt;/a&gt;, I had worked on similar lines&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/118707?ContentTypeID=1</link><pubDate>Wed, 06 Sep 2023 13:22:56 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:5c2dc12b-3fce-474c-b55c-766cb839b7a2</guid><dc:creator>muhammedk</dc:creator><description>&lt;p&gt;&lt;span&gt;If it helps in your specific situation, you can simply try designing the interfaces in the following way without installing anything extra, even though it may not be the fastest approach.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="html"&gt;a!localVariables(
  local!language: &amp;quot;German&amp;quot;,
  {
    a!columnsLayout(
      columns: {
        a!columnLayout(
          contents: {},
          width: &amp;quot;WIDE&amp;quot;
        ),
        a!columnLayout(
          contents: {},
          width: &amp;quot;NARROW&amp;quot;
        ),
        a!columnLayout(
          contents: {
            a!richTextDisplayField(
              label: &amp;quot;Rich Text&amp;quot;,
              labelPosition: &amp;quot;COLLAPSED&amp;quot;,
              value: {
                a!richTextItem(
                  text: 
                  a!richTextItem(
                    text: 
                    if(or(isnull(ri!language), ri!language=local!language),
                    &amp;quot;Sprache&amp;quot;,
                    &amp;quot;Language&amp;quot;
                    ),
                    color: &amp;quot;SECONDARY&amp;quot;
                  ),
                  size: &amp;quot;SMALL&amp;quot;
                )
              },
              align: &amp;quot;RIGHT&amp;quot;
            )
          },
          width: &amp;quot;NARROW&amp;quot;
        ),
        a!columnLayout(
          contents: {
            a!dropdownField(
              label: 
              if(or(isnull(ri!language), ri!language=local!language),
              &amp;quot;Sprache&amp;quot;,
              &amp;quot;Language&amp;quot;
              ),
              labelPosition: &amp;quot;COLLAPSED&amp;quot;,
              placeholder: 
              if(or(isnull(ri!language), ri!language=local!language),
              &amp;quot;--- W&amp;#228;hlen Sie eine Sprache ---&amp;quot;,
              &amp;quot;--- Select a Language ---&amp;quot;
              ),
              choiceLabels: 
              if(or(isnull(ri!language), ri!language=local!language),
              {
                &amp;quot;Deutsch&amp;quot;, 
                &amp;quot;Englisch&amp;quot;
              },
              {
                &amp;quot;German&amp;quot;, 
                &amp;quot;English&amp;quot;
              }
              ),
              choiceValues: 
              {
                &amp;quot;German&amp;quot;, 
                &amp;quot;English&amp;quot;
              },
              value: 
              if(or(isnull(ri!language), ri!language=local!language), 
              local!language, 
              ri!language
              ),
              saveInto: ri!language,
              validations: {}
            )
          },
          width: &amp;quot;NARROW&amp;quot;
        )
      },
      alignvertical: &amp;quot;MIDDLE&amp;quot;
    ),
    a!columnsLayout(
      columns: {
        /* Form content */
        a!columnLayout(
          contents: {
            a!columnsLayout(
              columns: {
                a!columnLayout(
                  contents: {
                    a!sectionLayout(
                      label: 
                      if(or(isnull(ri!language), ri!language=local!language),
                      &amp;quot;Mitarbeiteradresse aktualisieren&amp;quot;,
                      &amp;quot;Update Employee Address&amp;quot;
                      ),
                      labelSize: &amp;quot;LARGE&amp;quot;,
                      labelColor: &amp;quot;STANDARD&amp;quot;,
                      contents: {
                        a!dropdownField(
                          label: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          &amp;quot;Land&amp;quot;,
                          &amp;quot;Country&amp;quot;
                          ),
                          placeholder: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          &amp;quot;--- W&amp;#228;hlen Sie ein Land ---&amp;quot;,
                          &amp;quot;--- Select a Country ---&amp;quot;
                          ),
                          choiceLabels: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          {
                            &amp;quot;Vereinigte Staaten von Amerika&amp;quot;, 
                            &amp;quot;Deutschland&amp;quot;
                          },
                          {
                            &amp;quot;United States of America&amp;quot;, 
                            &amp;quot;Germany&amp;quot;
                          }
                          ),
                          choiceValues: 
                          {
                            &amp;quot;United States of America&amp;quot;, 
                            &amp;quot;Germany&amp;quot;
                          },
                          value: ri!country,
                          saveInto: ri!country,
                          searchDisplay: &amp;quot;AUTO&amp;quot;,
                          required: true,
                          requiredMessage: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          &amp;quot;Das Feld ist obligatorisch&amp;quot;,
                          &amp;quot;This field is mandatory&amp;quot;
                          ),
                          validations: {},
                          validationGroup: &amp;quot;isRequired&amp;quot;
                        ),
                        a!textField(
                          label: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          &amp;quot;Adresse&amp;quot;,
                          &amp;quot;Address&amp;quot;
                          ),
                          placeholder: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          &amp;quot;--- Schreiben Sie eine Adresse ---&amp;quot;,
                          &amp;quot;--- Enter an Address ---&amp;quot;
                          ),
                          value: ri!address,
                          saveInto: ri!address,
                          refreshAfter: &amp;quot;KEYPRESS&amp;quot;,
                          required: true,
                          requiredMessage: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          &amp;quot;Das Feld ist obligatorisch&amp;quot;,
                          &amp;quot;This field is mandatory&amp;quot;
                          ),
                          validations: {},
                          validationGroup: &amp;quot;isRequired&amp;quot;
                        )
                      }
                    ),

                    a!buttonLayout(
                      primaryButtons: {
                        a!buttonWidgetSubmit(
                          label: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          &amp;quot;Senden&amp;quot;,
                          &amp;quot;Submit&amp;quot;
                          ),
                          saveInto: {},
                          showwhen: true,
                          style: &amp;quot;PRIMARY&amp;quot;,
                          validationGroup: &amp;quot;isRequired&amp;quot;
                        )
                      },
                      secondaryButtons: 
                        a!buttonWidgetSubmit(
                          label: 
                          if(or(isnull(ri!language), ri!language=local!language),
                          &amp;quot;Stornieren&amp;quot;,
                          &amp;quot;Cancel&amp;quot;
                          ),
                          value: true,
                          saveInto: ri!cancel,
                          showwhen: true,
                          style: &amp;quot;NORMAL&amp;quot;,
                          skipValidation: false
                        )
                    )

                  }
                )
              }
            )
          }
        )

      }
    )
  }
)&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/112958?ContentTypeID=1</link><pubDate>Thu, 18 May 2023 12:17:00 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ade60d40-120a-4f82-b648-25828a5a4309</guid><dc:creator>swethai0002</dc:creator><description>&lt;p&gt;Will definitely check that possibility. Thank You &lt;a href="/members/mathieud0001"&gt;Mathieu Drouin&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/112951?ContentTypeID=1</link><pubDate>Thu, 18 May 2023 10:44:42 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:9fe94e6b-34d5-4252-8d4d-746ab601e72e</guid><dc:creator>Mathieu Drouin</dc:creator><description>&lt;p&gt;For user text, I would only store the original text in the DB and translate it dynamically at runtime (in the interface) using a translation API. &lt;/p&gt;
&lt;p&gt;Chrome offers to translate pages as well which is an even simpler option.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/112950?ContentTypeID=1</link><pubDate>Thu, 18 May 2023 10:41:44 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:31838c16-2591-47af-b62d-cfc7b0cd5d90</guid><dc:creator>JonLibbey</dc:creator><description>&lt;p&gt;Thank you for the link, you made my day.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/112925?ContentTypeID=1</link><pubDate>Thu, 18 May 2023 06:05:27 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8e2b3936-48ef-468c-ad95-2d23078afa7a</guid><dc:creator>swethai0002</dc:creator><description>&lt;p&gt;Hi &lt;a href="/members/mathieud0001"&gt;Mathieu Drouin&lt;/a&gt;,&lt;/p&gt;
&lt;p&gt;Thank you for guiding and I also found out that that is the only way. In case I want to store the dynamic text( egs: user&amp;#39;s comments) in 2 languages in my DB, how can I do it?. Google translation services is one way I think. Is there any other free way with inbuilt objects or plugins that I can use?. Please let me know if you have an idea on this? Thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/112826?ContentTypeID=1</link><pubDate>Tue, 16 May 2023 11:37:26 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:3a8b3002-b851-4d1b-a28b-12ab4b69747d</guid><dc:creator>Mathieu Drouin</dc:creator><description>&lt;p&gt;The Load Resource Bundle plugin works with resource files in a key=value format. You must maintain a file for each language you want to support. No way around this.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The&amp;nbsp;Internationalization Application is an application that requires the Load Resource Bundle plugin to work. It basically allows you to create keys and manage labels from an application rather than having to deal with&amp;nbsp;the resource files themselves.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;There is also this application to automatically translate&amp;nbsp;applications that you can try:&amp;nbsp;&lt;a href="/b/appmarket/posts/application-translator"&gt;https://community.appian.com/b/appmarket/posts/application-translator&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/112823?ContentTypeID=1</link><pubDate>Tue, 16 May 2023 11:22:52 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8444d17c-0708-439b-a7a6-d67aa5be6476</guid><dc:creator>swethai0002</dc:creator><description>&lt;p&gt;Hi &lt;a href="/members/mathieud0001"&gt;Mathieu Drouin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thank you for your reply. I have downloaded the Load resource bundle plugin and the bundle management plugin. I shall install the plugins and how to work after that?. The internationalization application that you have mentioned needs a translation for every label which can be time and resource consuming since we are foreseeing a big HRMS application with all modules. So the internationalization application plugin will still need the resource bundle is it?. Can you please make the steps more clear. Hope you understand.&lt;/p&gt;
&lt;p&gt;Thank you&lt;/p&gt;
&lt;p&gt;Swetha&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internationalization</title><link>https://community.appian.com/thread/112821?ContentTypeID=1</link><pubDate>Tue, 16 May 2023 10:57:36 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:3e788e11-72ff-4157-8803-97f7fdcef467</guid><dc:creator>Mathieu Drouin</dc:creator><description>&lt;p&gt;At the very minimum, you need the Load Resource Bundle plugin:&amp;nbsp;&lt;a href="https://community.appian.com/b/appmarket/posts/load-resource-bundle"&gt;community.appian.com/.../load-resource-bundle&lt;/a&gt;&amp;nbsp;which will help you manage labels via resource files.&lt;/p&gt;
&lt;p&gt;Additionally to facilitate the management of labels you can also install the Internationalization Application to manage labels in the DB rather than using files:&amp;nbsp;&lt;a href="https://community.appian.com/b/appmarket/posts/internationalization-application"&gt;community.appian.com/.../internationalization-application&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can also check out this playbook article for more details:&amp;nbsp;&lt;a href="https://community.appian.com/w/the-appian-playbook/100/application-internationalization"&gt;community.appian.com/.../application-internationalization&lt;/a&gt;&amp;nbsp;for additional details.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>