บทความ

คำแนะนำทีละขั้นตอนการแปล Laravel บทช่วยสอนพร้อมตัวอย่าง

วิธีแปลโปรเจ็กต์ Laravel เป็นภาษาท้องถิ่น วิธีพัฒนาโปรเจ็กต์ใน Laravel และทำให้ใช้งานได้ในหลายภาษา ในบทความนี้ เราจะดูวิธีการทำงานกับไฟล์การแปล สร้างตัวสลับภาษา และอื่นๆ พร้อมตัวอย่าง

Laravel เป็นแอปพลิเคชั่นที่ออกแบบมาให้เข้ากับท้องถิ่นเพื่อปรับให้เข้ากับภาษาและวัฒนธรรมต่างๆ การแปลเป็นภาษาท้องถิ่นจะปรับแต่งแอปพลิเคชันที่เป็นสากลให้เป็นภาษาเฉพาะผ่านการแปล

ข้อกำหนดเบื้องต้น

  • ในบทความนี้เราจะกล่าวถึง Laravel เวอร์ชัน 8.x;
  • เพื่อให้ทำตามบทช่วยสอนนี้ได้สำเร็จ คุณต้องมีความรู้ที่จำเป็นเกี่ยวกับภาษาการเขียนโปรแกรม PHP และเฟรมเวิร์ก Laravel
  • โดเมนของคุณคือ localhost. ถ้าไม่เปลี่ยน localhost ด้วยชื่อโดเมนหรือที่อยู่ IP ของคุณเอง (ขึ้นอยู่กับการติดตั้งของคุณ)

ทำงานกับไฟล์แปล

ใน Laravel ก็เหมือนกับเฟรมเวิร์กอื่น ๆ เราสามารถเก็บคำแปลสำหรับภาษาต่าง ๆ ไว้ในไฟล์แยกกันได้ มีสองวิธีในการจัดระเบียบไฟล์การแปล 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') }}. สิ่งนี้จะสั่งให้ Laravel แสดง "ยินดีต้อนรับสู่เว็บไซต์ของเรา" เป็นค่าเริ่มต้นdefiไนท์และค้นหาคำแปลของสตริงนี้หากมีการตั้งค่าภาษาอื่นที่ไม่ใช่ภาษาอังกฤษ (เราจะพูดถึงในภายหลัง) ภาษาอังกฤษจะถูกตั้งค่าเป็นภาษาเริ่มต้นdefiถัดจากแอปของเรา ดังนั้นตามการตั้งค่าเริ่มต้นdefiในตอนท้ายเราจะแสดงข้อความ “ยินดีต้อนรับสู่เว็บไซต์ของเรา” หากสถานที่นั้นแตกต่าง เราจะพยายามค้นหาคำแปลที่ตรงกัน และจะถูกสร้างขึ้นในอีกสักครู่

การแปล Laravel

แต่ Laravel รู้ได้อย่างไรว่าภาษาใดเป็นภาษาปัจจุบันหรือภาษาใดที่มีอยู่ในแอปพลิเคชัน ทำได้โดยดูที่การกำหนดค่าในเครื่องในแอป 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 มันถูกเปิดใช้งานในกรณีที่เราตั้งค่าโลแคลที่ไม่มีอยู่ในแอปพลิเคชันของเรา

ขณะที่เราเปิดไฟล์นี้ เรามาเพิ่มคีย์ใหม่เพื่อความสะดวกของเรา โดยแสดงรายการภาษาทั้งหมดที่แอปพลิเคชันของเราจะรองรับ เราจะใช้สิ่งนี้ในภายหลังเมื่อเพิ่มตัวสลับภายใน อย่างไรก็ตาม นี่เป็นงานทางเลือกเนื่องจาก Laravel ไม่ต้องการให้เราทำ

/*
|--------------------------------------------------------------------------
| 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:

{

"ยินดีต้อนรับสู่เว็บไซต์ของเรา": “ยินดีต้อนรับสู่เว็บไซต์ของเรา”

}

อย่างที่คุณเห็น เรามักจะอ้างถึงข้อความล่วงหน้าเสมอdefinito ที่เราเพิ่มเข้าไปในไฟล์ welcome.blade.php (ซึ่งเป็น {{ __('Welcome to our website') }}). เหตุผลที่เราไม่ต้องสร้างไฟล์ en.json เป็นเพราะ Laravel รู้อยู่แล้วว่าข้อความไหนที่เราส่งผ่านการตั้งค่าล่วงหน้าdefiเสร็จสิ้นในหน้าที่แล้ว __() พวกเขามีไว้สำหรับก่อนท้องถิ่นของเราdefiนิโต้ en.

การเปลี่ยนแปลงในท้องถิ่นใน Laravel

ณ จุดนี้ Laravel ไม่ทราบวิธีเปลี่ยนสถานที่ ดังนั้นสำหรับตอนนี้ มาทำการแปลโดยตรงภายในเส้นทางกันดีกว่า ปรับเปลี่ยนเส้นทางต้อนรับก่อนdefiเสร็จสิ้นตามที่แสดงด้านล่าง:

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ต่ออิลลินอยส์ 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ดังนั้นทุกอย่างจะต้องเกิดขึ้นในมุมมองต้อนรับของเรา เว้นแต่จะระบุไว้เป็นอย่างอื่น

พารามิเตอร์ในสตริงการแปล

ตัวอย่างเช่น สมมติว่าสวัสดีกับผู้ใช้ในจินตนาการของเรา (Amanda) แทนที่จะแสดงข้อความทั่วไป:

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

โปรดทราบว่าเราใช้ชื่อที่มีตัวอักษรตัวแรกเป็นตัวพิมพ์เล็ก แต่ตัวยึดตำแหน่งที่มีตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่ ด้วยวิธีนี้ Laravel สามารถช่วยให้คุณใช้อักษรตัวพิมพ์ใหญ่ของคำจริงได้โดยอัตโนมัติ กรณีนี้จะเกิดขึ้นหากตัวยึดเริ่มต้นด้วยตัวพิมพ์ใหญ่ เช่น :Nameสร้าง "Caroline" หรือคำที่เป็นตัวพิมพ์ใหญ่เต็มตัว  :NAME, ผลิต “แคโรไลน์”.

เรายังอัปเดตไฟล์การแปลของเราด้วย resources/lang/fr.jsonresources/lang/it.json เนื่องจากในขณะนี้เราจะเห็นเฉพาะเวอร์ชันภาษาอังกฤษทุกที่เนื่องจากคีย์การแปลไม่ตรงกับการแปล

ภาษาฝรั่งเศส:

{

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

}

Italiano:

{

   "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']) }}

สุดท้าย อย่าลืมอัปเดตไฟล์การแปลของคุณด้วยการเปลี่ยนแปลงใด ๆ ที่คุณทำกับการแปลพื้นฐาน

Italiano:

{
  "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

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

บทความล่าสุด

ประโยชน์ของการระบายสีหน้าสำหรับเด็ก - โลกแห่งเวทมนตร์สำหรับทุกวัย

การพัฒนาทักษะยนต์ปรับผ่านการระบายสีจะช่วยเตรียมเด็กๆ ให้พร้อมสำหรับทักษะที่ซับซ้อนมากขึ้น เช่น การเขียน หากต้องการสี...

2 2024 พ.ค.

อนาคตอยู่ที่นี่: อุตสาหกรรมการขนส่งกำลังปฏิวัติเศรษฐกิจโลกอย่างไร

ภาคกองทัพเรือเป็นมหาอำนาจทางเศรษฐกิจระดับโลกอย่างแท้จริง ซึ่งได้มุ่งหน้าสู่ตลาดมูลค่า 150 พันล้าน...

1 2024 พ.ค.

ผู้จัดพิมพ์และ OpenAI ลงนามข้อตกลงเพื่อควบคุมการไหลของข้อมูลที่ประมวลผลโดยปัญญาประดิษฐ์

เมื่อวันจันทร์ที่แล้ว Financial Times ได้ประกาศข้อตกลงกับ OpenAI FT อนุญาติให้ทำข่าวระดับโลก...

30 2024 เมษายน

การชำระเงินออนไลน์: นี่คือวิธีที่บริการสตรีมมิ่งทำให้คุณชำระเงินตลอดไป

ผู้คนนับล้านชำระค่าบริการสตรีมมิ่ง โดยจ่ายค่าธรรมเนียมการสมัครสมาชิกรายเดือน เป็นความเห็นทั่วไปที่คุณ...

29 2024 เมษายน

อ่านนวัตกรรมในภาษาของคุณ

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

ติดตามเรา