Languages usage
Current and default languages are stored inside globally available .Session object. There is 2
possible language codes available at the moment, - 2-letter and 3-letter code. 2-letter code is
an iso code, but 3-letter is an internal erply api language code, please
check erply api for more information.
- {{ .Session.Language.Code }}- 2-letter iso code
- {{ .Session.Language.LegacyCode }}- 3-letter erply legacy code
- {{ .Session.DefaultLanguage.Code }}- 2-letter iso code of default language
- {{ .Session.DefaultLanguage.LegacyCode }}- 3-letter erply legacy code of default language
Samples
Read translatable fields
Dynamic sample:
<input type="hidden" name="PIMApi.Api.Get.products" value="v1/product" data-preset-val="v1/product">
<ul>
    {{ range $row := .Data.PIMApi.Api.Requests.products.Response.Array }}
    <li>{{ $row.Get "id" }} | {{ $row.Get (printf "name.%s" $.Session.Language.Code) }}</li>
    {{ end }}
</ul>Models sample:
{{ range $row := .Data.PIMApi.ProductList }}
  <!-- Print name value in the selected/default language -->
  <!-- Will print empty string if value under language code not found -->
  <p>Name in current lang: {{ index $row.Name $.Session.Language.Code }}</p>
  <p>Name in default lang: {{ index $row.Name $.Session.DefaultLanguage.Code }}</p>
{{ end }}Display in tables
Dynamic sample:
{{ range $row := .Data.PIMApi.Api.Requests.products.Response.Array }}
<tr>
  <td>{{ $row.Get "id" }}</td>
  <td>{{ $row.Get (printf "name.%s" $.Session.Language.Code) }}</td>
</tr>
{{ end }}Models sample:
<table>
  <thead>
  <tr>
    <th>Id</th>
    <th>Name</th>
  </tr>
  </thead>
  <tbody>
  
  {{ range $row := .Data.PIMApi.ProductList }}
  <tr>
    <td>{{ $row.ID }}</td>
    <td>{{ index $row.Name $.Session.Language.Code }}</td>
  </tr>
  {{ end }}
  
  </tbody>
</table>Dropdown with translatable fields
Dynamic sample:
<select>
  {{ range $row := .Data.PIMApi.Api.Requests.products.Response.Array }}
  <!-- Print name value in the selected/default language  -->
  <option value='{{ $row.Get "id" }}'>{{ $row.Get (printf "name.%s" $.Session.Language.Code) }}</option>
  {{ end }}
</select>Models sample:
<select>
  {{ range $row := .Data.PIMApi.ProductList }}
   <!-- Print name value in the selected/default language  -->
   <option value="{{$row.ID}}">{{ index $row.Name $.Session.Language.Code }}</option>
  {{ end }}
</select>Write (create/update) translatable fields in multiple languages
Dynamic sample:
<form method="post">
  <input type="hidden" name="PIMApi.Api.Post.saveProd" value="v1/product">
  {{ range .Data.ErplyApi.LanguageList }}
  <div class="form-field">
    <label for="formInputName{{ .IsoCode }}">Name ({{ .IsoCode }}):</label>
    <input type="text" id="formInputName{{ .IsoCode }}"
           name='PIMApi.Api.Json.saveProd.string.name.{{ .IsoCode }}'
           value='{{ $.Data.PIMApi.Api.Requests.saveProd.Json.Get (printf "name.%s" .IsoCode) }}'>
  </div>
  {{ end }}
  <button type="submit">Send</button>
</form>Models sample:
{{ range.Data.ErplyApi.LanguageList }}
<div class="form-field">
  <label for="formInputName{{ .IsoCode }}">Name ({{ .IsoCode }}):</label>
  <input type="text" id="formInputName{{ .IsoCode }}"
         name="AccountAdminApi.WarehouseInput.Name.{{ .IsoCode }}"
         value="{{ index $.Data.AccountAdminApi.WarehouseInput.Name .IsoCode }}">
</div>
{{ end }}