ലേഖനങ്ങൾ

Laravel പ്രാദേശികവൽക്കരണം ഘട്ടം ഘട്ടമായുള്ള ഗൈഡ്, ഉദാഹരണങ്ങളുള്ള ട്യൂട്ടോറിയൽ

ഒരു Laravel പ്രോജക്റ്റ് എങ്ങനെ പ്രാദേശികവൽക്കരിക്കാം, Laravel-ൽ ഒരു പ്രോജക്റ്റ് എങ്ങനെ വികസിപ്പിക്കാം, അത് ഒന്നിലധികം ഭാഷകളിൽ ഉപയോഗയോഗ്യമാക്കാം. വിവർത്തന ഫയലുകൾ ഉപയോഗിച്ച് എങ്ങനെ പ്രവർത്തിക്കാമെന്നും ഒരു ഭാഷാ സ്വിച്ചർ സൃഷ്ടിക്കാമെന്നും മറ്റും ഉദാഹരണങ്ങൾക്കൊപ്പം ഈ ലേഖനത്തിൽ ഞങ്ങൾ കാണുന്നു.

വിവിധ ഭാഷകളോടും സംസ്കാരങ്ങളോടും പൊരുത്തപ്പെടാൻ പ്രാദേശികമായി രൂപകൽപ്പന ചെയ്ത ഒരു ആപ്ലിക്കേഷനാണ് Laravel. വിവർത്തനത്തിലൂടെ ഒരു നിർദ്ദിഷ്‌ട ഭാഷയിലേക്ക് അന്താരാഷ്ട്രവൽക്കരിക്കപ്പെട്ട ആപ്ലിക്കേഷനുകൾ പ്രാദേശികവൽക്കരണം ക്രമീകരിക്കുന്നു.

പൂർവാവശ്യകതക്ൾ

  • ഈ ലേഖനത്തിൽ നമ്മൾ പരാമർശിക്കും Laravel പതിപ്പ് 8.x;
  • ഈ ട്യൂട്ടോറിയൽ വിജയകരമായി പിന്തുടരുന്നതിന്, നിങ്ങൾക്ക് PHP പ്രോഗ്രാമിംഗ് ഭാഷയെക്കുറിച്ചും Laravel ചട്ടക്കൂടിനെക്കുറിച്ചും ആവശ്യമായ അറിവ് ഉണ്ടായിരിക്കണം.
  • നിങ്ങളുടെ ഡൊമെയ്‌ൻ ആണ് localhost. ഇല്ലെങ്കിൽ, മാറ്റിസ്ഥാപിക്കുക localhost നിങ്ങളുടെ സ്വന്തം ഡൊമെയ്ൻ നാമമോ IP വിലാസമോ ഉപയോഗിച്ച് (നിങ്ങളുടെ ഇൻസ്റ്റാളേഷനെ ആശ്രയിച്ച്).

വിവർത്തന ഫയലുകളിൽ പ്രവർത്തിക്കുന്നു

ലാറവലിൽ, മറ്റ് പല ചട്ടക്കൂടുകളിലെയും പോലെ, നമുക്ക് വ്യത്യസ്ത ഭാഷകൾക്കുള്ള വിവർത്തനങ്ങൾ പ്രത്യേക ഫയലുകളിൽ സംഭരിക്കാൻ കഴിയും. Laravel വിവർത്തന ഫയലുകൾ സംഘടിപ്പിക്കുന്നതിന് രണ്ട് വഴികളുണ്ട്:

  • ഇനിപ്പറയുന്ന സ്ഥലത്ത് ഫയലുകൾ സംഭരിക്കുന്ന ഒരു പഴയ സമീപനം: resources/lang/{en,fr,ru}/{myfile.php};
  • ഇനിപ്പറയുന്ന സ്ഥലത്ത് ഫയലുകൾ സംഭരിക്കുന്ന ഒരു പുതിയ സമീപനം: resources/lang/{fr.json, ru.json};

പ്രദേശം അനുസരിച്ച് വ്യത്യസ്തമായ ഭാഷകൾക്ക്, നിങ്ങൾ അവയ്ക്ക് പേരിടണം directory/file ISO 15897 അനുസരിച്ചുള്ള ഭാഷ. ഉദാഹരണത്തിന്, യുകെ ഇംഗ്ലീഷിനായി നിങ്ങൾ ഉപയോഗിക്കും en_GB ഇതിനുപകരമായി en-gb. ഈ ലേഖനത്തിൽ, ഞങ്ങൾ രണ്ടാമത്തെ സമീപനത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കും, എന്നാൽ ആദ്യത്തേതിന് സമാനമാണ് (വിവർത്തന കീകൾ എങ്ങനെ പേരുനൽകുകയും വീണ്ടെടുക്കുകയും ചെയ്യുന്നു എന്നതൊഴിച്ചാൽ). 

ലളിതമായ വിവർത്തനങ്ങൾ

ഇപ്പോൾ, നമുക്ക് പോകാം resources/views/welcome.blade.phpഫയലിന്റെ ഉള്ളടക്കം മാറ്റി പകരം വയ്ക്കുക bodyഞങ്ങളുടേതുമായി ടാഗ് ചെയ്യുക, ഇതുപോലെ:

<body class="antialiased">
    <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center py-4 sm:pt-0">
        <div class="max-w-6xl mx-auto sm:px-6 lg:px-8">
            <div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
                Welcome to our website
            </div>
        </div>
    </div>
</body>

ഞങ്ങളുടെ പ്രാദേശികവൽക്കരണ സ്വാഗത സന്ദേശം തയ്യാറാക്കിക്കൊണ്ട് ഞങ്ങൾ ആരംഭിക്കും, അത് Laravel-ൽ വളരെ എളുപ്പമാണ്. "ഞങ്ങളുടെ വെബ്‌സൈറ്റിലേക്ക് സ്വാഗതം" എന്ന വാചകം ഇനിപ്പറയുന്ന കോഡ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക മാത്രമാണ് നിങ്ങൾ ചെയ്യേണ്ടത്: {{ __('Welcome to our website') }}. സ്ഥിരസ്ഥിതിയായി "ഞങ്ങളുടെ വെബ്‌സൈറ്റിലേക്ക് സ്വാഗതം" പ്രദർശിപ്പിക്കാൻ ഇത് ലാറവെലിന് നിർദ്ദേശം നൽകുംdefiഇംഗ്ലീഷല്ലാതെ മറ്റൊരു ഭാഷ സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, ഈ സ്‌ട്രിംഗിന്റെ വിവർത്തനങ്ങൾക്കായി തിരയുക (ഞങ്ങൾക്ക് അത് പിന്നീട് ലഭിക്കും). ഇംഗ്ലീഷ് ഡിഫോൾട്ട് ഭാഷയായി സജ്ജീകരിക്കുംdefiഞങ്ങളുടെ ആപ്പിന്റെ നിഷ്, അതിനാൽ സ്ഥിരസ്ഥിതി ക്രമീകരണം വഴിdefiഅവസാനം "ഞങ്ങളുടെ വെബ്സൈറ്റിലേക്ക് സ്വാഗതം" എന്ന വാചകം ഞങ്ങൾ പ്രദർശിപ്പിക്കും. ഭാഷ വ്യത്യസ്തമാണെങ്കിൽ, പൊരുത്തപ്പെടുന്ന വിവർത്തനം കണ്ടെത്താൻ ഞങ്ങൾ ശ്രമിക്കും, അത് ഒരു നിമിഷത്തിനുള്ളിൽ സൃഷ്ടിക്കപ്പെടും.

ലാരാവൽ പ്രാദേശികവൽക്കരണം

എന്നാൽ നിലവിലുള്ള ഭാഷ ഏതെന്നോ ആപ്ലിക്കേഷനിൽ ഏതൊക്കെ ഭാഷകളാണുള്ളതെന്നോ ലാറവെലിന് എങ്ങനെ അറിയാം? ആപ്പിലെ ലോക്കൽ കോൺഫിഗറേഷൻ നോക്കിയാണ് ഇത് ചെയ്യുന്നത് config/app.php. ഈ ഫയൽ തുറന്ന് ഈ രണ്ട് അസോസിയേറ്റീവ് അറേ കീകൾക്കായി നോക്കുക:

/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'en',
/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/
'fallback_locale' => 'en',

കീകൾക്ക് മുകളിൽ കാണിച്ചിരിക്കുന്ന വിവരണങ്ങൾ സ്വയം വിശദീകരണമായിരിക്കണം, എന്നാൽ ചുരുക്കത്തിൽ, കീ locale പ്രാദേശിക പ്രീ അടങ്ങിയിരിക്കുന്നുdefiനിങ്ങളുടെ ആപ്ലിക്കേഷന്റെ നിഷ് (കുറഞ്ഞത്, മറ്റൊരു ഭാഷയും കോഡിൽ സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ). ഒപ്പം ദി fallback_locale ഞങ്ങളുടെ ആപ്ലിക്കേഷനിൽ നിലവിലില്ലാത്ത ഒരു ലൊക്കേൽ സജ്ജീകരിച്ചാൽ അത് സജീവമാകും.

ഈ ഫയൽ തുറന്നിരിക്കുമ്പോൾ, ഞങ്ങളുടെ സൗകര്യാർത്ഥം ഞങ്ങളുടെ ആപ്ലിക്കേഷൻ പിന്തുണയ്ക്കുന്ന എല്ലാ ലൊക്കേലുകളും ലിസ്റ്റ് ചെയ്യുന്ന ഒരു പുതിയ കീ ചേർക്കാം. ഒരു ലോക്കൽ സ്വിച്ചർ ചേർക്കുമ്പോൾ ഞങ്ങൾ ഇത് പിന്നീട് ഉപയോഗിക്കും. എന്നിരുന്നാലും, ഇത് ഒരു ഓപ്‌ഷണൽ ടാസ്‌ക് ആണ്, കാരണം ലാറവെലിന് ഞങ്ങളത് ചെയ്യാൻ ആവശ്യമില്ല.

/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
  'English' => 'en',
  'Italian' => 'it',
  'French' => 'fr',
],

ഇപ്പോൾ ഞങ്ങളുടെ ആപ്ലിക്കേഷൻ മൂന്ന് ഭാഷകളെ പിന്തുണയ്ക്കുന്നു: ഇംഗ്ലീഷ്, ഇറ്റാലിയൻ, ഫ്രഞ്ച്.

വിവർത്തന ഫയലുകൾ

ഇപ്പോൾ ഞങ്ങൾ പ്രവർത്തിക്കാൻ പോകുന്ന എല്ലാ ലൊക്കേലുകളും സ്ഥാപിച്ചുകഴിഞ്ഞാൽ, ഞങ്ങൾക്ക് മുന്നോട്ട് പോകാം, സ്വാഗതം ചെയ്യാനുള്ള മുൻകൂർ സന്ദേശം വിവർത്തനം ചെയ്യുന്നതിനായി മുന്നോട്ട് പോകാം.defiരാത്രി.

ഫോൾഡറിലേക്ക് പുതിയ പ്രാദേശികവൽക്കരണ ഫയലുകൾ ചേർത്തുകൊണ്ട് നമുക്ക് ആരംഭിക്കാം resources/lang. ആദ്യം, ഒരു ഫയൽ സൃഷ്ടിക്കുക resources/lang/it.json ഇനിപ്പറയുന്ന രീതിയിൽ അനുബന്ധ വിവർത്തനങ്ങൾ ചേർക്കുക:

{
  "Welcome to our website": "Benvenuto nel nostro sito web"
}

അടുത്തതായി, ഒരു ഫയൽ സൃഷ്ടിക്കുക resources/lang/fr.json:

{

"ഞങ്ങളുടെ വെബ്സൈറ്റിലേക്ക് സ്വാഗതം": "ഞങ്ങളുടെ സൈറ്റിലേക്ക് സ്വാഗതം"

}

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഞങ്ങൾ എല്ലായ്പ്പോഴും പ്രീ മെസേജിലേക്ക് റഫർ ചെയ്യുന്നുdefiഞങ്ങൾ ഫയലിൽ ചേർത്ത നിറ്റോ welcome.blade.php (ഏത് ആയിരുന്നു {{ __('Welcome to our website') }}). നമുക്ക് ഒരു ഫയൽ സൃഷ്ടിക്കേണ്ടതില്ല എന്നതിന്റെ കാരണം en.json മുൻകൂർ സെറ്റിംഗ് വഴി നമ്മൾ ഏത് സന്ദേശങ്ങളാണ് കൈമാറുന്നതെന്ന് ലാറവെലിന് നേരത്തെ തന്നെ അറിയാമെന്നതിനാലാണിത്defiചടങ്ങിൽ സമാപിച്ചു __() അവ നമ്മുടെ പ്രാദേശിക പ്രീതിക്കുള്ളതാണ്defiനിറ്റോ en.

ലാറവലിലെ പ്രാദേശിക മാറ്റം

ഈ സമയത്ത്, ലൊക്കേലുകൾ എങ്ങനെ മാറ്റണമെന്ന് Laravel-ന് അറിയില്ല, അതിനാൽ തൽക്കാലം നമുക്ക് വിവർത്തനങ്ങൾ നേരിട്ട് പാതയ്ക്കുള്ളിൽ ചെയ്യാം. സ്വാഗത പാത മുൻകൂട്ടി പരിഷ്ക്കരിക്കുകdefiതാഴെ കാണിച്ചിരിക്കുന്നത് പോലെ nished:

Route::get('/{locale?}', function ($locale = null) {
    if (isset($locale) && in_array($locale, config('app.available_locales'))) {
        app()->setLocale($locale);
    }
    
    return view('welcome');
});

ലഭ്യമായ ഏത് ഭാഷയും ആദ്യ പാത്ത് സെഗ്‌മെന്റായി വ്യക്തമാക്കിക്കൊണ്ട് ഞങ്ങൾക്ക് ഇപ്പോൾ ഞങ്ങളുടെ വെബ്‌സൈറ്റ് സന്ദർശിക്കാം: ഉദാഹരണത്തിന്, localhost/rulocalhost/fr. പ്രാദേശികവൽക്കരിച്ച ഉള്ളടക്കം നിങ്ങൾ കാണണം. നിങ്ങൾ ഒരു പിന്തുണയ്‌ക്കാത്ത ലൊക്കേൽ വ്യക്തമാക്കുകയോ അല്ലെങ്കിൽ ഒരു ലൊക്കേൽ വ്യക്തമാക്കാതിരിക്കുകയോ ചെയ്‌താൽ, Laravel ഉപയോഗിക്കും enസ്ഥിരസ്ഥിതിയായിdefiനിത.

മിഡിൽവെയർ

ഓരോ സൈറ്റ് ലിങ്കിനും ലൊക്കേൽ മാറ്റുന്നത് നിങ്ങൾ ആഗ്രഹിക്കുന്നതായിരിക്കണമെന്നില്ല, മാത്രമല്ല അത് സൗന്ദര്യാത്മകമായി കാണപ്പെടണമെന്നില്ല. അതുകൊണ്ടാണ് ഞങ്ങൾ ഒരു പ്രത്യേക ഭാഷാ സ്വിച്ചർ വഴി ഭാഷാ ക്രമീകരണം ചെയ്യുകയും വിവർത്തനം ചെയ്ത ഉള്ളടക്കം പ്രദർശിപ്പിക്കുന്നതിന് ഉപയോക്തൃ സെഷൻ ഉപയോഗിക്കുകയും ചെയ്യും. അതിനാൽ, ഉള്ളിൽ ഒരു പുതിയ മിഡിൽവെയർ സൃഷ്ടിക്കുക app/Http/Middleware/Localization.phpഫയൽ അല്ലെങ്കിൽ പ്രവർത്തിപ്പിക്കുന്നതിലൂടെ artisan make:middleware Localization.

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Session;

class Localization
{
    /**
    * Handle an incoming request.
    *
    * @param  \Illuminate\Http\Request  $request
    * @param  \Closure  $next
    * @return mixed
    */
    public function handle(Request $request, Closure $next)
    {
        if (Session::has('locale')) {
            App::setLocale(Session::get('locale'));
        }
        return $next($request);
    }
}

സെഷനിൽ ഈ തിരഞ്ഞെടുപ്പ് ഉണ്ടെങ്കിൽ, ഉപയോക്താവ് തിരഞ്ഞെടുത്ത ലൊക്കേൽ ഉപയോഗിക്കാൻ ഈ മിഡിൽവെയർ Laravel-നോട് നിർദ്ദേശിക്കും.

ഓരോ അഭ്യർത്ഥനയിലും ഞങ്ങൾക്ക് ഇത് ചെയ്യേണ്ടതിനാൽ, ഞങ്ങൾ ഇത് പ്രീ മിഡിൽവെയർ സ്റ്റാക്കിലേക്കും ചേർക്കേണ്ടതുണ്ട്defiപൂർത്തിയാക്കി app/http/Kernel.phpഓരോ il നും webമിഡിൽവെയർ ഗ്രൂപ്പ്:

* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
  'web' => [
      \App\Http\Middleware\EncryptCookies::class,
      \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
      \Illuminate\Session\Middleware\StartSession::class,
      // \Illuminate\Session\Middleware\AuthenticateSession::class,
      \Illuminate\View\Middleware\ShareErrorsFromSession::class,
      \App\Http\Middleware\VerifyCsrfToken::class,
      \Illuminate\Routing\Middleware\SubstituteBindings::class,
      \App\Http\Middleware\Localization::class, /* <--- add this */
  ],

കോഴ്സ് മാറ്റുക

അടുത്തതായി, ലോക്കൽ മാറ്റാൻ ഞങ്ങൾ ഒരു പാത്ത് ചേർക്കേണ്ടതുണ്ട്. ഞങ്ങൾ ഒരു ക്ലോഷർ പാത്ത് ഉപയോഗിക്കുന്നു, എന്നാൽ നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ നിങ്ങളുടെ കൺട്രോളറിനുള്ളിൽ അതേ കോഡ് ഉപയോഗിക്കാം:

Route::get('language/{locale}', function ($locale) {
    app()->setLocale($locale);
    session()->put('locale', $locale);

    return redirect()->back();
});

കൂടാതെ, ഞങ്ങളുടെ പ്രീ-വെൽക്കം പാതയിൽ മുമ്പ് ചേർത്ത ലോക്കേൽ ടോഗിൾ നീക്കം ചെയ്യാൻ മറക്കരുത്defiരാത്രി:

Route::get('/', function () {
    return view('welcome');
});

ഇത് ചെയ്തുകഴിഞ്ഞാൽ, ഉപയോക്താവിന് നിലവിൽ സജ്ജീകരിച്ചിരിക്കുന്ന ഭാഷ മാറ്റാനുള്ള ഏക മാർഗം എന്റർ ചെയ്യുക എന്നതാണ് localhost/language/{locale}. ദി localeതിരഞ്ഞെടുക്കൽ സെഷനിൽ സംഭരിക്കുകയും ഉപയോക്താക്കളെ അവർ എവിടെ നിന്ന് വന്നതിലേക്ക് റീഡയറക്‌ട് ചെയ്യുകയും ചെയ്യും (പരിശോധിക്കുക Localizationമിഡിൽവെയർ). ഇത് പരീക്ഷിക്കാൻ, പോകുക localhost/language/ru(നിങ്ങളുടെ സെഷൻ കുക്കി നിങ്ങളുടെ ബ്രൗസറിൽ ഉള്ളിടത്തോളം കാലം) വിവർത്തനം ചെയ്ത ഉള്ളടക്കം നിങ്ങൾ കാണും. നിങ്ങൾക്ക് വെബ്‌സൈറ്റിന് ചുറ്റും സ്വതന്ത്രമായി സഞ്ചരിക്കാം അല്ലെങ്കിൽ പേജ് പുതുക്കാൻ ശ്രമിക്കുക, തിരഞ്ഞെടുത്ത ഭാഷ സംരക്ഷിക്കപ്പെട്ടിട്ടുണ്ടെന്ന് കാണുക.

കമ്മ്യൂട്ടേറ്റർ

URL-ൽ പ്രാദേശിക കോഡുകൾ സ്വമേധയാ നൽകുന്നതിന് പകരം ഭാഷ മാറ്റാൻ ഉപയോക്താവിന് ക്ലിക്കുചെയ്യാൻ കഴിയുന്ന എന്തെങ്കിലും സൃഷ്‌ടിക്കേണ്ടതുണ്ട്. ഇത് ചെയ്യുന്നതിന്, ഞങ്ങൾ വളരെ ലളിതമായ ഭാഷാ ചെക്കർ ചേർക്കും. അതിനാൽ, പുതിയത് സൃഷ്ടിക്കുക resources/views/partials/language_switcher.blade.phpഇനിപ്പറയുന്ന കോഡുള്ള ഫയൽ:

<div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
    @foreach($available_locales as $locale_name => $available_locale)
        @if($available_locale === $current_locale)
            <span class="ml-2 mr-2 text-gray-700">{{ $locale_name }}</span>
        @else
            <a class="ml-1 underline ml-2 mr-2" href="language/{{ $available_locale }}">
                <span>{{ $locale_name }}</span>
            </a>
        @endif
    @endforeach
</div>

"സ്വാഗതം" കാഴ്‌ചയിൽ പുതുതായി സൃഷ്‌ടിച്ച സ്വിച്ചർ ഉൾപ്പെടുത്തുക:

<body class="antialiased">
    <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center py-4 sm:pt-0">
        <div class="max-w-6xl mx-auto sm:px-6 lg:px-8">
            @include('partials/language_switcher')
            <div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
                {{ __('Welcome to our website') }}
            </div>
        </div>
    </div>
</body>

തുറക്കുക app/Providers/AppServiceProvider.phpഞങ്ങളുടെ ഭാഷാ സ്വിച്ചർ എപ്പോൾ രചിക്കപ്പെടുമെന്ന് പങ്കിടാൻ ഫയൽ ചെയ്‌ത് കോഡ് ചേർക്കുക. പ്രത്യേകമായി, ഒരു ഫയലായി ആക്‌സസ് ചെയ്യാൻ കഴിയുന്ന നിലവിലെ ലൊക്കേൽ ഞങ്ങൾ പങ്കിടും {{ $current_locale }}.

ഇന്നൊവേഷൻ വാർത്താക്കുറിപ്പ്
നവീകരണത്തെക്കുറിച്ചുള്ള ഏറ്റവും പ്രധാനപ്പെട്ട വാർത്തകൾ നഷ്ടപ്പെടുത്തരുത്. ഇമെയിൽ വഴി അവ സ്വീകരിക്കുന്നതിന് സൈൻ അപ്പ് ചെയ്യുക.

PHP Laravel-ലെ വിപുലമായ വിവർത്തന ഓപ്ഷനുകൾ

ഞങ്ങൾ പ്രധാനമായും പ്രവർത്തിക്കും resources/views/welcome.blade.php, അതിനാൽ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ എല്ലാം ഞങ്ങളുടെ സ്വാഗത കാഴ്‌ചയിൽ സംഭവിക്കണം.

വിവർത്തന സ്ട്രിംഗുകളിലെ പാരാമീറ്ററുകൾ

ഉദാഹരണത്തിന്, ഒരു പൊതു സന്ദേശം പ്രദർശിപ്പിക്കുന്നതിനുപകരം നമ്മുടെ സാങ്കൽപ്പിക ഉപയോക്താവിന് (അമാൻഡ) ഹലോ പറയാം:

{{ __('Welcome to our website, :Name', ['name' => 'caroline']) }}

ചെറിയക്ഷരത്തിൽ ആദ്യ അക്ഷരത്തോടുകൂടിയ പേര് ഞങ്ങൾ ഉപയോഗിച്ചുവെന്നത് ശ്രദ്ധിക്കുക, എന്നാൽ വലിയക്ഷരത്തിൽ ആദ്യ അക്ഷരമുള്ള പ്ലെയ്‌സ്‌ഹോൾഡർ. ഈ രീതിയിൽ, യഥാർത്ഥ വാക്ക് സ്വയമേവ വലിയക്ഷരമാക്കാൻ Laravel നിങ്ങളെ സഹായിക്കും. പ്ലെയ്‌സ്‌ഹോൾഡർ ഒരു വലിയക്ഷരത്തിൽ ആരംഭിക്കുകയാണെങ്കിൽ ഇത് സംഭവിക്കും, ഉദാഹരണത്തിന്, :Name"കരോലിൻ" അല്ലെങ്കിൽ പൂർണ്ണമായി വലിയക്ഷരമാക്കിയ വാക്ക് നിർമ്മിക്കുന്നു,  :NAME, "CAROLINE" ഉത്പാദിപ്പിക്കുന്നു.

ഞങ്ങളുടെ വിവർത്തന ഫയലുകളും ഞങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുന്നു resources/lang/fr.jsonresources/lang/it.json , വിവർത്തന കീകൾ വിവർത്തനങ്ങളുമായി പൊരുത്തപ്പെടാത്തതിനാൽ ഇപ്പോൾ എവിടെയും ഇംഗ്ലീഷ് പതിപ്പ് മാത്രമേ ഞങ്ങൾ കാണൂ.

ഫ്രഞ്ച്:

{

   "Welcome to our website, :Name": "Bienvenue sur notre site, :Name"

}

ഇറ്റാലിയൻ:

{

   "Welcome to our website, :Name": "Benvenuto sul nostro sito web, :Name"

}

ബഹുസ്വരീകരണം

പ്രവർത്തനത്തിൽ ബഹുസ്വരീകരണം കാണുന്നതിന്, നമുക്ക് വാചകത്തിന്റെ ഒരു പുതിയ ഖണ്ഡിക ചേർക്കാം. 

ബഹുസ്വരീകരണം നടത്താൻ, നിങ്ങൾ ഫംഗ്ഷൻ ഉപയോഗിക്കണം trans_choice ഇതിനുപകരമായി __(), ഉദാഹരണത്തിന്:

{{ __('Welcome to our website, :Name', ['name' => 'caroline']) }}
<br>
{{ trans_choice('There is one apple|There are many apples', 2) }}

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ബഹുവചന രൂപങ്ങൾ a കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു |.

ഇപ്പോൾ, നമുക്ക് ഒന്നിലധികം ബഹുവചന രൂപങ്ങൾ വേണമെങ്കിൽ എന്തുചെയ്യും? 

ഇതും സാധ്യമാണ്:

{{ trans_choice('{0} There :form no apples|{1} There :form just :count apple|[2,19] There :form :count apples', 24) }}

ഈ സാഹചര്യത്തിൽ, ഞങ്ങൾ നമ്പറുകൾ അനുവദിക്കുന്നു 01, ഒപ്പം 219, ഒടുവിൽ 20 മുതൽ. തീർച്ചയായും, നിങ്ങൾക്ക് ആവശ്യമുള്ളത്ര നിയമങ്ങൾ ചേർക്കാൻ കഴിയും.

നമ്മുടെ ബഹുവചന രൂപത്തിലുള്ള പ്ലെയ്‌സ്‌ഹോൾഡറുകൾ വേണമെങ്കിൽ എന്തുചെയ്യും? 

{{ trans_choice('{0} There :form no apples|{1} There :form just :count apple|[2,19] There :form :count apples', 24, ['form' => 'is']) }}

ഒരു പ്ലെയ്‌സ്‌ഹോൾഡർ ഉപയോഗിച്ച് ആവശ്യമെങ്കിൽ `trans_choice`-ൽ പാസായ എണ്ണം ഉപയോഗിക്കാനും നമുക്ക് കഴിയും :count പ്രത്യേകം:

{{ trans_choice('{0} There :form no apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}

അവസാനമായി, അടിസ്ഥാന വിവർത്തനത്തിൽ നിങ്ങൾ വരുത്തിയ മാറ്റങ്ങൾ ഉപയോഗിച്ച് നിങ്ങളുടെ വിവർത്തന ഫയലുകൾ അപ്ഡേറ്റ് ചെയ്യാൻ മറക്കരുത്.

ഇറ്റാലിയൻ:

{
  "Welcome to our website, :Name": "Benvenuto nel nostro sito, :Name",
  "{0} There :form no apples|{1} There :form just :count apple|[2,19] There :form :count apples": "{0} Nessuna mela|{1} C'è:count mela|[2,19] Ci sono :count mele"
}

ഫ്രഞ്ച്:

{    
  "Welcome to our website, :Name": "Bienvenue sur notre site, :Name",
  "{0} There :form no apples|{1} There :form just :count apple|[2,19] There :form :count apples": "{0} Il n'y a pas de pommes|{1} Il n'y :form :count pomme|[2,19] Il y :form :count pommes"
}

Laravel-ൽ പ്രാദേശികവൽക്കരിച്ച തീയതികളിൽ പ്രവർത്തിക്കുന്നു

തീയതികൾ കണ്ടെത്താൻ, ഞങ്ങൾ ശക്തി ഉപയോഗിക്കും കരി , ഇത് സ്ഥിരസ്ഥിതിയായി Laravel-നൊപ്പം വരുന്നുdefiനിത. പരിശോധിക്കുക കാർബൺ ഡോക്യുമെന്റേഷൻ ; നിങ്ങൾക്ക് രസകരമായ ഒരുപാട് കാര്യങ്ങൾ ചെയ്യാൻ കഴിയും. ഉദാഹരണത്തിന്, തീയതിയും സമയ നിയമങ്ങളും ഉപയോഗിച്ച് നമുക്ക് നമ്മുടെ ലൊക്കേൽ സജ്ജീകരിക്കാം.

ഞങ്ങളുടെ ലളിതമായ ഉദാഹരണത്തിനായി, തിരഞ്ഞെടുത്ത ഭാഷയ്‌ക്കായി പ്രാദേശികവൽക്കരിച്ച നിലവിലെ തീയതി ഞങ്ങൾ കാണിക്കും. ഞങ്ങളുടെ routes/web.php, ഞങ്ങൾ സ്വാഗത പേജ് പാത്ത് അപ്‌ഡേറ്റ് ചെയ്യുകയും പ്രാദേശികവൽക്കരിച്ച തീയതി സന്ദേശം ഞങ്ങളുടേതിലേക്ക് കൈമാറുകയും ചെയ്യുന്നു view സ്വാഗതം:

<?php
Route::get('/', function () {
    $today = \Carbon\Carbon::now()
        ->settings(
            [
                'locale' => app()->getLocale(),
            ]
        );

    // LL is macro placeholder for MMMM D, YYYY (you could write same as dddd, MMMM D, YYYY)
    $dateMessage = $today->isoFormat('dddd, LL');

    return view('welcome', [
        'date_message' => $dateMessage
    ]);
});

നമുക്ക് അപ്ഡേറ്റ് ചെയ്യാം resources/views/welcome.blade.php തീയതി ഡിസ്പ്ലേ ചേർക്കുന്നു, അതുപോലെ:

{{ __('Welcome to our website, :Name', ['name' => 'amanda']) }}
<br>
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
<br>
{{ $date_message }}

യുടെ ഹോം പേജിൽ ഭാഷ മാറ്റാൻ ശ്രമിക്കുന്നു localhost, തീയതികൾ ഇപ്പോൾ പ്രാദേശികവൽക്കരിച്ചതായി നമുക്ക് കാണാം, ഉദാഹരണത്തിന്:

NumberFormatter ഉപയോഗിച്ച് നമ്പറുകളും കറൻസികളും ഫോർമാറ്റ് ചെയ്യുന്നു

വ്യത്യസ്ത രാജ്യങ്ങളിൽ, സംഖ്യകളെ പ്രതിനിധീകരിക്കാൻ ആളുകൾ വ്യത്യസ്ത ഫോർമാറ്റുകൾ ഉപയോഗിക്കുന്നു, ഉദാഹരണത്തിന്:

  • യുണൈറ്റഡ് സ്റ്റേറ്റ്സ് → 123.123,12
  • ഫ്രാൻസ് → 123 123,12

അതിനാൽ, നിങ്ങളുടെ Laravel ആപ്പിൽ ഈ വ്യത്യാസങ്ങൾ പ്രതിഫലിപ്പിക്കാൻ, നിങ്ങൾക്ക് ഉപയോഗിക്കാം നമ്പർ ഫോർമാറ്റർ ഇനിപ്പറയുന്ന രീതിയിൽ:

<?php
$num = NumberFormatter::create('en_US', NumberFormatter::DECIMAL);

$num2 = NumberFormatter::create('fr', NumberFormatter::DECIMAL);

നിങ്ങൾക്ക് ഒരു പ്രത്യേക ഭാഷയിൽ നമ്പർ എഴുതാനും "നൂറ്റി ഇരുപത്തിമൂവായിരത്തി നൂറ്റി ഇരുപത്തി മൂന്ന് പോയിന്റ് ഒന്ന് രണ്ട്" പോലെയുള്ള എന്തെങ്കിലും പ്രദർശിപ്പിക്കാനും കഴിയും:

<?php
$num = NumberFormatter::create('en_US', NumberFormatter::SPELLOUT);
$num2 = NumberFormatter::create('fr', NumberFormatter::SPELLOUT);

കൂടാതെ, കറൻസികൾ എളുപ്പത്തിൽ കണ്ടെത്താൻ NumberFormatter നിങ്ങളെ അനുവദിക്കുന്നു, ഉദാഹരണത്തിന്:

<?php
$currency1 = NumberFormatter::create('fr', NumberFormatter::CURRENCY);
$currency2 = NumberFormatter::create('en_US', NumberFormatter::CURRENCY);

അതുകൊണ്ട് fr നിങ്ങൾ യൂറോ കാണും en_US കറൻസി യുഎസ് ഡോളറിലായിരിക്കും.

Ercole Palmeri

ഇന്നൊവേഷൻ വാർത്താക്കുറിപ്പ്
നവീകരണത്തെക്കുറിച്ചുള്ള ഏറ്റവും പ്രധാനപ്പെട്ട വാർത്തകൾ നഷ്ടപ്പെടുത്തരുത്. ഇമെയിൽ വഴി അവ സ്വീകരിക്കുന്നതിന് സൈൻ അപ്പ് ചെയ്യുക.

സമീപകാല ലേഖനങ്ങൾ

കാറ്റാനിയ പോളിക്ലിനിക്കിൽ ആപ്പിൾ വ്യൂവർക്കൊപ്പം ഓഗ്മെൻ്റഡ് റിയാലിറ്റിയിൽ നൂതനമായ ഇടപെടൽ

ആപ്പിൾ വിഷൻ പ്രോ കൊമേഴ്‌സ്യൽ വ്യൂവർ ഉപയോഗിച്ചുള്ള ഒഫ്താൽമോപ്ലാസ്റ്റി ഓപ്പറേഷൻ കാറ്റാനിയ പോളിക്ലിനിക്കിൽ നടത്തി.

20 മെയ് 2013

കുട്ടികൾക്കുള്ള കളറിംഗ് പേജുകളുടെ പ്രയോജനങ്ങൾ - എല്ലാ പ്രായക്കാർക്കും മാന്ത്രിക ലോകം

കളറിംഗ് വഴി മികച്ച മോട്ടോർ കഴിവുകൾ വികസിപ്പിക്കുന്നത് എഴുത്ത് പോലെയുള്ള കൂടുതൽ സങ്കീർണ്ണമായ കഴിവുകൾക്ക് കുട്ടികളെ സജ്ജമാക്കുന്നു. നിറം കൊടുക്കാൻ...

20 മെയ് 2013

ഭാവി ഇതാ: ഷിപ്പിംഗ് വ്യവസായം ആഗോള സമ്പദ്‌വ്യവസ്ഥയെ എങ്ങനെ വിപ്ലവം ചെയ്യുന്നു

നാവിക മേഖല ഒരു യഥാർത്ഥ ആഗോള സാമ്പത്തിക ശക്തിയാണ്, അത് 150 ബില്യൺ വിപണിയിലേക്ക് നാവിഗേറ്റ് ചെയ്തു...

20 മെയ് 2013

ആർട്ടിഫിഷ്യൽ ഇൻ്റലിജൻസ് പ്രോസസ്സ് ചെയ്യുന്ന വിവരങ്ങളുടെ ഒഴുക്ക് നിയന്ത്രിക്കുന്നതിനുള്ള കരാറുകളിൽ പ്രസാധകരും ഓപ്പൺഎഐയും ഒപ്പുവെക്കുന്നു

കഴിഞ്ഞ തിങ്കളാഴ്ച, ഫിനാൻഷ്യൽ ടൈംസ് ഓപ്പൺഎഐയുമായി ഒരു കരാർ പ്രഖ്യാപിച്ചു. FT അതിൻ്റെ ലോകോത്തര പത്രപ്രവർത്തനത്തിന് ലൈസൻസ് നൽകുന്നു…

ഏപ്രിൽ 29 ഏപ്രിൽ

നിങ്ങളുടെ ഭാഷയിൽ ഇന്നൊവേഷൻ വായിക്കുക

ഇന്നൊവേഷൻ വാർത്താക്കുറിപ്പ്
നവീകരണത്തെക്കുറിച്ചുള്ള ഏറ്റവും പ്രധാനപ്പെട്ട വാർത്തകൾ നഷ്ടപ്പെടുത്തരുത്. ഇമെയിൽ വഴി അവ സ്വീകരിക്കുന്നതിന് സൈൻ അപ്പ് ചെയ്യുക.

പിന്തുടരുക ഞങ്ങളെ

സമീപകാല ലേഖനങ്ങൾ

ടാഗ്