Skip to content

Commit

Permalink
IP-329: In the language dropdown we should only show the languages th…
Browse files Browse the repository at this point in the history
…at we have translated the platform in
  • Loading branch information
PavlosIsaris committed Dec 17, 2024
1 parent 9059096 commit ebd8a27
Show file tree
Hide file tree
Showing 46 changed files with 1,406 additions and 4 deletions.
6 changes: 6 additions & 0 deletions app/BusinessLogicLayer/LanguageManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,10 @@ public function getAutomaticTranslationForTexts(array $texts, string $target_lan

return $result;
}

public function getLanguagesWithTranslatedResources() {
return Cache::rememberForever('languages_resources_translated', function () {
return $this->languageRepository->allWhere(['resources_translated' => true], ['*'], 'language_code');
});
}
}
2 changes: 1 addition & 1 deletion app/ViewComposers/LanguageSelectorComposer.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public function __construct(LanguageManager $languageManager) {
}

public function compose(View $view) {
$languages = $this->languageManager->getLanguagesAvailableForPlatformTranslation();
$languages = $this->languageManager->getLanguagesWithTranslatedResources();
$view->with(['languages' => $languages]);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration {
/**
* Run the migrations.
*/
public function up(): void {
Schema::table('languages_lkp', function (Blueprint $table) {
$table->boolean('resources_translated')
->after('available_for_platform_translation')->default(false);
});
}

/**
* Reverse the migrations.
*/
public function down(): void {
Schema::table('languages_lkp', function (Blueprint $table) {
//
});
}
};
33 changes: 30 additions & 3 deletions database/seeders/LanguagesLkpTableSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,171 +25,198 @@ public function run() {
'name' => 'Bulgarian',
'default_color' => '#81c784',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'hr',
'name' => 'Croatian',
'default_color' => '#90caf9',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'cs',
'name' => 'Czech',
'default_color' => '#d32f2f',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'da',
'name' => 'Danish',
'default_color' => '#d50000',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'nl',
'name' => 'Dutch',
'default_color' => '#5c6bc0',
'available_for_platform_translation' => true,
'resources_translated' => true,
], [
'code' => 'en',
'name' => 'English',
'default_color' => '#ffcdd2',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'et',
'name' => 'Estonian',
'default_color' => '#2962ff',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'fi',
'name' => 'Finnish',
'default_color' => '#29b6f6',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'ga',
'name' => 'Irish',
'default_color' => '#66bb6a',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'fr',
'name' => 'French',
'default_color' => '#1565c0',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'de',
'name' => 'German',
'default_color' => '#f4511e',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'el',
'name' => 'Greek',
'default_color' => '#1e88e5',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'hu',
'name' => 'Hungarian',
'default_color' => '#1b5e20',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'it',
'name' => 'Italian',
'default_color' => '#3949ab',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'lv',
'name' => 'Latvian',
'default_color' => '#8e24aa',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'lt',
'name' => 'Lithuanian',
'default_color' => '#43a047',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'pl',
'name' => 'Polish',
'default_color' => '#e57373',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'pt',
'name' => 'Portuguese',
'default_color' => '#ef5350',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'ro',
'name' => 'Romanian',
'default_color' => '#ffb300',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'sk',
'name' => 'Slovak',
'default_color' => '#0d47a1',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'sl',
'name' => 'Slovenian',
'default_color' => '#d81b60',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'es',
'name' => 'Spanish',
'default_color' => '#fb8c00',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'sv',
'name' => 'Swedish',
'default_color' => '#fdd835',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'mt',
'name' => 'Maltese',
'default_color' => '#b71c1c',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'sq',
'name' => 'Albanian',
'default_color' => '#e53935',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
[
'code' => 'sr',
'name' => 'Montenegrin',
'name' => 'Serbian',
'default_color' => '#06004D',
'available_for_platform_translation' => true,
'resources_translated' => true,
],
[
'code' => 'tr',
'name' => 'Turkish',
'default_color' => '#e53935',
'available_for_platform_translation' => true,
'resources_translated' => false,
],
];
$index = 1;
foreach ($languages as $languageObj) {
$this->languagesRepository->updateOrCreate(['id' => $index++],
$this->languagesRepository->updateOrCreate(['language_code' => $languageObj['code']],
[
'language_code' => $languageObj['code'],
'language_name' => $languageObj['name'],
'default_color' => $languageObj['default_color'],
'available_for_platform_translation' => $languageObj['available_for_platform_translation'],
'resources_translated' => $languageObj['resources_translated'],
]
);
}
Expand Down
19 changes: 19 additions & 0 deletions resources/lang/hr/auth.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/

'failed' => 'Ovi podaci ne odgovaraju našim zapisima.',
'throttle' => 'Previše pokušaja prijave. Pokušajte ponovno za :seconds sekundi.',

];
55 changes: 55 additions & 0 deletions resources/lang/hr/badges_messages.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Poruke za značke
|--------------------------------------------------------------------------
*/

'contributor_badge_points_explanation' => 'Zaradite :points bodova svaki put kada odgovorite na upitnik, pošaljete rješenje problema ili glasate za rješenje!',
'communicator_badge_points_explanation' => 'Zaradite :points bodova svaki put kada netko klikne na vaše podijeljene upitnike i glasa za vaša rješenja!',
'influencer_badge_points_explanation' => 'Zaradite :points bodova svaki put kada netko odgovori na vaše objave na društvenim mrežama i doprinese!',
'you_have_answered' => 'Odgovorili ste na :count',
'questionnaire' => 'upitnik',
'questionnaires' => 'upitnici',
'you_are_a_contributor' => 'Vi ste razina :level Suradnik! Nastavite tako!', // Vi ste razina 1 Suradnik! Nastavite tako!
'contributor_title' => 'Suradnik',
'become_a_contributor' => 'Recite nam što mislite<br>i postanite razina :level Suradnik!', // Recite nam što mislite i postanite razina 1 Suradnik!
'gain_contributor_badge' => 'Recite nam što mislite<br/> i zaradite značku "Suradnik"!',
'gain_badge_by_inviting' => 'Zaradite ovu značku pozivanjem više ljudi da sudjeluju. Podijelite na društvenim mrežama!',
'communicator_title' => 'Komunikator',
'clicks_on_shared_questionnaires' => 'Ostali korisnici su kliknuli na vaše podijeljene upitnike',
'time' => 'put',
'times' => 'puta',
'become_a_communicator' => 'Pozovite više prijatelja da doprinesu<br>i postanite razina :level Komunikator!', // Pozovite više prijatelja da odgovore i postanite razina 2 Komunikator!
'gain_communicator_badge' => 'Pozovite svoje prijatelje da doprinesu i zaradite značku "Komunikator"!',
'you_are_a_communicator' => 'Vi ste razina :level Komunikator! Nastavite tako!', // Vi ste razina 2 Komunikator! Nastavite tako!
'you_have_the' => 'Imate ',
'badge' => ' značku!',
'gain_influencer_badge' => 'Da biste zaradili ovu značku, ljudi moraju odgovoriti na vaše objave na društvenim mrežama i doprinositi!',
'influencer_title' => 'Influencer',
'person' => 'osoba',
'people' => 'osobe',
'person_or_people_responded' => '{1} 1 osoba je odgovorila na vaš poziv do sada. |[2,*] :count osoba je odgovorilo na vaš poziv',
'you_are_an_influencer' => 'Vi ste razina :level Influencer! Nastavite tako!', // Vi ste razina 3 Influencer! Nastavite tako!
'zero_people_responded_to_call' => 'Nijedna osoba nije odgovorila na vaš poziv do sada.<br>Napišite uvjerljivu poruku i pozovite više prijatelja!',
'good_job' => '{1} Dobar posao! 1 osoba je odgovorila na vaš poziv do sada.<br>Napišite uvjerljivu poruku i pozovite više prijatelja! |[2.*] Dobar posao! :count osoba je odgovorilo na vaš poziv do sada.<br>Napišite uvjerljivu poruku i pozovite više prijatelja!',
'true_influencer' => '{1} Wow, vi ste pravi influencer!<br> 1 osoba je odgovorila na vaš poziv do sada. Napišite uvjerljivu poruku i pozovite više prijatelja! |[2.*] Wow, vi ste pravi influencer!<br> :count osoba je odgovorilo na vaš poziv do sada. Napišite uvjerljivu poruku i pozovite više prijatelja!',
'become_an_influencer' => '<br>Blizu ste da postanete razina :level Influencer!',
'badges_completed' => 'Sve značke su završene',
'received_all_badges' => 'Čestitamo! Primili ste sve dostupne značke!',
'huge_impact' => 'Napravili ste veliki utjecaj u ovom upitniku!',
'all_star_crowdsourcer' => 'Čestitamo! Primili ste sve dostupne značke za ovaj upitnik! Vi ste zvijezda u crowdsourcingu!',
'get_more_badges' => 'Dobivate više znački odgovaranjem i pozivanjem drugih da to učine!',
'no_badges_yet' => 'Još nemate nijednu značku! Kliknite na svaku značku da biste vidjeli njezin opis i razumjeli kako je zaraditi.',
'you_have_badges' => '{1} Imate <span class="numOfBadges">1</span> značku do sada. Kliknite na svaku značku da biste vidjeli njezin opis i razumjeli kako je zaraditi. |[2,*] Imate <span class="numOfBadges">:count</span> znački do sada. Kliknite na svaku značku da biste vidjeli njezin opis i razumjeli kako je zaraditi.',
'contribute' => 'Doprinesite',
'contribute_for' => 'Doprinesite za',
'you_do_not_own' => 'Nemate ovu značku',
'badges_title' => 'Prikaz znački',
'contributor_bade_progress' => 'Doprinosili ste :count puta do sada',
'communicator_bade_progress' => 'Podijelili ste :count puta do sada',
'influencer_bade_progress' => ':count korisnika se angažiralo s vašim podijeljenim sadržajem',
];
23 changes: 23 additions & 0 deletions resources/lang/hr/common.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Zajednički elementi
|--------------------------------------------------------------------------
*/

'welcome' => 'Dobrodošli',
'link_copied_please_share' => 'Link je kopiran u međuspremnik. Podijelite ga na svojim društvenim mrežama!',
'copy_to_clipboard_error' => 'Kopiranje u međuspremnik nije uspjelo. Pokušajte ponovno.',
'edit' => 'Uredi',
'delete' => 'Izbriši',
'change_status' => 'Promijeni status',
'image_accepted_formats' => 'Prihvaćeni formati: jpeg, png, jpg, webp',
'image_max_size' => 'Maksimalna veličina: 2MB',
'terms_privacy' => 'Uvjeti i Pravila privatnosti',
'code_of_conduct' => 'Kodeks ponašanja',
'form_fields_required' => 'Polja označena sa * su obavezna',
'personal_information_disclaimer' => 'Vaši osobni podaci (email adresa) nikada neće biti javno prikazani.',
];
27 changes: 27 additions & 0 deletions resources/lang/hr/email_messages.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Email messages elements
|--------------------------------------------------------------------------
*/


'crowdsource_our_future' => 'Kreirajmo našu budućnost zajedno',
'hello' => 'Pozdrav!',
'email_reset_password' => 'Primili ste ovaj email jer smo zaprimili zahtjev za resetiranje lozinke za vaš račun.',
'reset_password' => 'Resetiraj lozinku',
'reset_link_expire' => 'Ova poveznica za resetiranje lozinke ističe za 60 minuta.',
'no_further_action' => 'Ako niste zatražili resetiranje lozinke, nije potrebna daljnja radnja.',
'regards' => 'S poštovanjem',
'trouble_with_button' => 'Ako imate problema s klikom na ',
'copy_paste_url' => ' gumb, kopirajte i zalijepite URL ispod u vaš web preglednik:',
'thanks_message_for_answering' => 'Hvala vam što ste odvojili vrijeme za odgovor na naš upitnik s naslovom: ',
'thanks_message_for_contribution' => 'Zahvaljujući vašem doprinosu, korak smo bliže našem cilju!',
'unlocked_new_badge' => 'Također ste otključali novu značku:',
'inquiries_about_our_work' => 'Ako imate bilo kakvih pitanja o našem radu, ne ustručavajte se kontaktirati nas.',

];
Loading

0 comments on commit ebd8a27

Please sign in to comment.