Skip to content

Commit

Permalink
Merge branch '885-multiple-language-support' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
PG-Momik committed Jul 17, 2023
2 parents 4034fac + d66c403 commit 553d172
Show file tree
Hide file tree
Showing 11 changed files with 436 additions and 417 deletions.
50 changes: 0 additions & 50 deletions app/Helpers/general.php
Original file line number Diff line number Diff line change
Expand Up @@ -791,56 +791,6 @@ function generateApiInfo($method, $requestURI, $requestOption, $response = null)
}
}

if (!function_exists('translateRequestMessage')) {
/**
* Builds translated lines using prefix and suffix of request.php.
*
* @param string $prefix_key
* @param string $suffix_key
*
* @return string
*/
function translateRequestMessage(string $prefix_key, string $suffix_key = ''): string
{
if (empty($suffix_key)) {
return trans('requests.' . $prefix_key);
}

return trans('requests.' . $prefix_key, ['suffix' => trans('requests.suffix.' . $suffix_key)]);
}
}

if (!function_exists('translateJsonValues')) {
/**
* Translates json values for the keys: label, placeholder, hover_text & help_text
* json[obj][label] = 'buttons.delete_confirmation'
* becomes json[obj][label] = "Are you sure you want to delete item ?".
*
* @param $elements
*
* @return mixed
*/
function translateJsonValues($elements): mixed
{
$swapable_keys = ['label', 'placeholder', 'hover_text', 'help_text'];
$result = [];
if (is_array($elements)) {
foreach ($elements as $key => $value) {
if (is_string($value) && in_array($key, $swapable_keys)) {
$translated = trans($value);
$result[$key] = $translated;
} else {
$result[$key] = translateJsonValues($value);
}
}
} else {
$result = $elements;
}

return $result;
}
}

if (!function_exists('mergeRules')) {
/**
* Generates api log info for API logging.
Expand Down
79 changes: 72 additions & 7 deletions app/Helpers/language.php
Original file line number Diff line number Diff line change
@@ -1,13 +1,78 @@
<?php

function getLabelForAddAdditional($element): string
{
$element = str_replace('-', ' ', trans("elements_common.$element"));
if (!function_exists('translateRequestMessage')) {
/**
* Builds translated lines using prefix and suffix of request.php.
*
* @param string $prefixKey
* @param string $suffixKey
*
* @return string
*/
function translateRequestMessage(string $prefixKey, string $suffixKey = ''): string
{
if (empty($suffixKey)) {
return trans('requests.' . $prefixKey);
}

return trans('buttons.add_additional', ['element'=>$element]);
return trans('requests.' . $prefixKey, ['suffix' => trans('requests.suffix.' . $suffixKey)]);
}
}

function translatedElement($element, $source = 'element_labels'): string
{
return trans_choice("$source.$element", $element);
if (!function_exists('translateJsonValues')) {
/**
* Translates json values for the keys: label, placeholder, hover_text & help_text
* json[obj][label] = 'buttons.delete_confirmation'
* becomes json[obj][label] = "Are you sure you want to delete item ?".
*
* @param $elements
*
* @return mixed
*/
function translateJsonValues($elements): mixed
{
$swappableKeys = ['label', 'placeholder', 'hover_text', 'help_text'];
$result = [];
if (is_array($elements)) {
foreach ($elements as $key => $value) {
if (is_string($value) && in_array($key, $swappableKeys)) {
$translated = trans($value);
$result[$key] = $translated;
} else {
$result[$key] = translateJsonValues($value);
}
}
} else {
$result = $elements;
}

return $result;
}
}

if (!function_exists('getLabelForAddAdditional')) {
/**
* @param string $element
*
* @return string
*/
function getLabelForAddAdditional(string $element): string
{
$element = str_replace('-', ' ', trans("elements_common.$element"));

return trans('buttons.add_additional', ['element' => $element]);
}
}

if (!function_exists('translatedElement')) {
/**
* @param string $element
* @param string $source
*
* @return string
*/
function translatedElement(string $element, string $source = 'element_labels'): string
{
return trans_choice("$source.$element", $element);
}
}
4 changes: 2 additions & 2 deletions app/IATI/Data/elementJsonSchema.json
Original file line number Diff line number Diff line change
Expand Up @@ -1008,7 +1008,7 @@
"required": true,
"criteria": "mandatory",
"hover_text": "elements.activities.default_flow_type.default_flow_type.hover_text",
"help_text": "elements.activities.default_flow_type.default_flow_type.hover_text"
"help_text": "elements.activities.default_flow_type.default_flow_type.help_text"
}
},
"sub_elements": []
Expand All @@ -1028,7 +1028,7 @@
"criteria": "mandatory",
"choices": "Activity\/FinanceType.json",
"hover_text": "elements.activities.default_finance_type.default_finance_type.hover_text",
"help_text": "elements.activities.default_finance_type.default_finance_type.hover_text"
"help_text": "elements.activities.default_finance_type.default_finance_type.help_text"
}
},
"sub_elements": []
Expand Down
4 changes: 2 additions & 2 deletions lang/en/user.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php
return array (
'user_roles' =>
'user_roles' =>
array (
'superadmin' => 'SuperAdmin',
'iati_admin' => 'IATI Admin',
Expand Down Expand Up @@ -41,5 +41,5 @@
'successfully_logged_out' => 'Successfully logged out.',
'username_is_invalid' => 'The username is invalid. Username must be purely lowercase alphabets followed by alphanumeric(ascii) characters and these symbols:-_',
'publisher_id_is_invalid' => 'The publisher id is invalid. The publisher id must be at least two characters long and lower case. It can include letters, numbers and also - (dash) and _ (underscore).',
'delete_confirmation' => 'Are you sure you want to delete :element ?',
'delete_confirmation' => 'Are you sure you want to delete :element ',
);
2 changes: 1 addition & 1 deletion lang/es/buttons.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
'hide' => 'Ocultar',
'send_password_reset' => 'Restablecer contraseña',
'republish' => 'Volver a publicar',
'unpublish' => 'Cancelar publicación',
'unpublish' => 'Anular publicación',
'upload_file' => 'Cargar archivo',
'import' => 'Importar',
'get_started' => 'Comenzar',
Expand Down
2 changes: 1 addition & 1 deletion lang/es/user.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@
'successfully_logged_out' => 'Se ha cerrado la sesión correctamente.',
'username_is_invalid' => 'El nombre de usuario es inválido. El nombre de usuario debe contener únicamente letras minúsculas seguidas de caracteres alfanuméricos (ASCII) y los símbolos “-” y “_”',
'publisher_id_is_invalid' => 'El identificador de entidad que publica es inválido. El identificador de entidad debe tener al menos dos caracteres y escribirse en minúsculas. Puede incluir letras, números, guiones (-) y guiones bajos (_).',
'delete_confirmation' => '¿Está seguro de que desea eliminar :element',
'delete_confirmation' => '¿Está seguro de que desea eliminar :element ',
);
2 changes: 1 addition & 1 deletion lang/fr/user.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@
'successfully_logged_out' => 'Déconnexion réussie.',
'username_is_invalid' => 'Le nom d’utilisateur est invalide. Le nom d’utilisateur doit être composé uniquement de lettres minuscules, de caractères alphanumériques (ascii) et des symboles - et _',
'publisher_id_is_invalid' => 'L’identifiant du signataire est invalide. L’identifiant du signataire doit contenir au moins deux caractères et des lettres minuscules. Il peut contenir des lettres, des chiffres et les symboles - (tiret) et _ (tiret bas).',
'delete_confirmation' => 'Voulez-vous vraiment supprimer :element',
'delete_confirmation' => 'Voulez-vous vraiment supprimer :element ',
);
Loading

0 comments on commit 553d172

Please sign in to comment.