[web-php] master: Georgian translation of the PHP 8.0 Announcement Page (#454)
| From: | JSHar via GitHub | Date: | Fri, 26 Nov 2021 13:02:52 +0000 |
| Subject: | [web-php] master: Georgian translation of the PHP 8.0 Announcement Page (#454) | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-29753@lists.php.net to get a copy of this message | ||
Author: JSHar (JSHar)
Committer: GitHub (web-flow)
Pusher: saundefined
Date: 2021-11-26T16:03:37+03:00
Commit: https://github.com/php/web-php/commit/084a0d9880943be4c77bc8807d2477bc8cb9aacd
Raw diff: https://github.com/php/web-php/commit/084a0d9880943be4c77bc8807d2477bc8cb9aacd.diff
Georgian translation of the PHP 8.0 Announcement Page (#454)
Co-authored-by: Sergey Panteleev <sergey@php.net>
Changed paths:
A releases/8.0/ka.php
M releases/8.0/common.php
Diff:
diff --git a/releases/8.0/common.php b/releases/8.0/common.php
index a4385d4d4..9392e88c8 100644
--- a/releases/8.0/common.php
+++ b/releases/8.0/common.php
@@ -50,6 +50,7 @@ function language_chooser(string $currentLang): void {
'ru' => 'Русский',
'tr' => 'Türkçe',
'zh' => '简体中文',
+ 'ka' => 'ქართული',
];
// Print out the form with all the options
diff --git a/releases/8.0/ka.php b/releases/8.0/ka.php
new file mode 100644
index 000000000..406955727
--- /dev/null
+++ b/releases/8.0/ka.php
@@ -0,0 +1,505 @@
+<?php
+$_SERVER['BASE_PAGE'] = 'releases/8.0/ka.php';
+include_once __DIR__ . '/common.php';
+
+releases\php80\language_redirect('ka');
+releases\php80\common_header(
+ 'PHP 8.0 — PHP ენის დიდი განახლება. ' .
+ 'ის შეიცავს ბევრ ახალ
შესაძლებლობას და ოპტიმიზაციებს, ' .
+ 'მათ შორის დასახელებული
არგუმენტები, union type, ატრიბუტები, ' .
+ 'თვისებების გამარტივებული
განსაზღვრა კონსტრუქტორში,
გამოსახულება match, ' .
+ 'ოპერატორი nullsafe, JIT და
გაუმჯობესებები ტიპის სისტემაში, ' .
+ 'შეცდომების დამუშავება და
თანმიმდევრულობა.');
+
+?>
+<section class="php8-section php8-section_dark php8-section_header center">
+ <div class="page-tools">
+ <div class="change-language">
+ <?php releases\php80\language_chooser('ka'); ?>
+ </div>
+ </div>
+ <div class="php8-section__content">
+ <div class="php8-logo">
+ <img src="/images/php8/logo_php8.svg" alt="php8"
height="126" width="343">
+ </div>
+ <div class="php8-title">რელიზი!</div>
+ <div class="php8-subtitle">
+ PHP 8.0 — PHP ენის დიდი განახლება.<br
class="display-none-md"> ის შეიცავს ბევრ ახალ
შესაძლებლობას და ოპტიმიზაციებს,
+ მათ შორის დასახელებული
არგუმენტები, union type, ატრიბუტები,
თვისებების გამარტივებული
განსაზღვრა კონსტრუქტორში,
გამოსახულება match,
+ ოპერატორი nullsafe, JIT და
გაუმჯობესებები ტიპის სისტემაში,
შეცდომების დამუშავება და
თანმიმდევრულობა.
+ </div>
+ <div class="php8-button-wrapper center">
+ <a class="php8-button php8-button_light"
href="/downloads">გადადით PHP 8-ზე!</a>
+ </div>
+ </div>
+</section>
+
+<section class="php8-section center">
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="named-arguments">
+ დასახელებული არგუმენტები
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/named_params">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP 7</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, \'UTF-8\',
false);'
+ );?>
+ </div>
+
+
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP 8</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'htmlspecialchars($string, double_encode: false);'
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <ul>
+ <li>მიუთითეთ მხოლოდ საჭირო
პარამეტრები, გამოტოვეთ
არასავალდებულო.</li>
+ <li>არგუმენტების თანმიმდევრობა
არ არის მნიშვნელოვანი, არგუმენტები
თვითდოკუმენტირებადია.</li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="attributes">
+ Attributes
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/attributes_v2">RFC</a>
<a class="php8-rfc"
href="/manual/en/language.attributes.php">დოკუმენტაცია</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP 7</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'class PostsController
+{
+ /**
+ * @Route("/api/posts/{id}", methods={"GET"})
+ */
+ public function get($id) { /* ... */ }
+}'
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP 8</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'class PostsController
+{
+ #[Route("/api/posts/{id}", methods: ["GET"])]
+ public function get($id) { /* ... */ }
+}'
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <p>PHPDoc ანოტაციების ნაცვლად,
შეგიძლიათ გამოიყენოთ სტრუქტურული
მეტამონაცემები ნატიური PHP
სინტაქსით.</p>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="constructor-property-promotion">
+ თვისებების განახლება
კონსტრუქტორში
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/constructor_promotion">RFC</a>
<a class="php8-rfc"
href="/manual/en/language.oop5.decon.php#language.oop5.decon.constructor.promotion">დოკუმენტაცია</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP 7</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'class Point {
+ public float $x;
+ public float $y;
+ public float $z;
+
+ public function __construct(
+ float $x = 0.0,
+ float $y = 0.0,
+ float $z = 0.0
+ ) {
+ $this->x = $x;
+ $this->y = $y;
+ $this->z = $z;
+ }
+}'
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP 8</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'class Point {
+ public function __construct(
+ public float $x = 0.0,
+ public float $y = 0.0,
+ public float $z = 0.0,
+ ) {}
+}'
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <p>ნაკლები შაბლონური კოდი
თვისებების განსაზღვრისა და
ინიციალიზაციისთვის.</p>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="union-types">
+ Union types
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/union_types_v2">RFC</a>
<a class="php8-rfc"
href="/manual/en/language.types.declarations.php#language.types.declarations.union">დოკუმენტაცია</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP 7</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'class Number {
+ /** @var int|float */
+ private $number;
+
+ /**
+ * @param float|int $number
+ */
+ public function __construct($number) {
+ $this->number = $number;
+ }
+}
+
+new Number(\'NaN\'); // შეცდომები არაა'
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP 8</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'class Number {
+ public function __construct(
+ private int|float $number
+ ) {}
+}
+
+new Number(\'NaN\'); // TypeError'
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <p>PHPDoc ანოტაციების ნაცვლად,
გაერთიანებული ტიპებისთვის
შეგიძლიათ გამოიყენოთ განცხადება union
type,
+ რომლებიც მოწმდება შესრულების
დროს.</p>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="match-expression">
+ გამოსახულება Match
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/match_expression_v2">RFC</a>
<a class="php8-rfc"
href="/manual/en/control-structures.match.php">დოკუმენტაცია</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP 7</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'switch (8.0) {
+ case \'8.0\':
+ $result = "ოოო არა!";
+ break;
+ case 8.0:
+ $result = "ის, რასაც მე ველოდი";
+ break;
+}
+echo $result;
+//> ოოო არა!'
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP 8</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'echo match (8.0) {
+ \'8.0\' => "Oh no!",
+ 8.0 => "ის, რასაც მე ველოდი",
+};
+//> ის, რასაც მე ველოდი'
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <p>ახალი გამოსახულება match, switch
ოპერატორის მსგავსია შემდეგი
მახასიათებლებით:</p>
+ <ul>
+ <li>Match — ეს არის გამოსახულება,
მისი შედეგი შეიძლება შენახული იყოს
ცვლადში ან დაბრუნდეს.</li>
+ <li>პირობა match მხარს უჭერერს
მხოლოდ ერთსტრიქონიან
გამოსახულებებს, რომლებიც არ
საჭიროებენ break; კონტროლის
კონსტრუქციას.</li>
+ <li>გამოსახულება match იყენებს
მკაცრ შედარებას.</li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="nullsafe-operator">
+ ოპერატორი Nullsafe
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/nullsafe_operator">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP 7</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ '$country = null;
+
+if ($session !== null) {
+ $user = $session->user;
+
+ if ($user !== null) {
+ $address = $user->getAddress();
+
+ if ($address !== null) {
+ $country = $address->country;
+ }
+ }
+}'
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP 8</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ '$country = $session?->user?->getAddress()?->country;'
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <p>null-ის შემოწმების ნაცვლად,
შეგიძლიათ გამოიყენოთ გამოძახების
თანმიმდევრობა ახალ Nullsafe ოპერატორით.
+ როდესაც ერთ-ერთი ელემენტი
თანმიმდევრობაში აბრუნებს null-ს,
შესრულება ჩერდება და მთელი
თანმიმდევრობა აბრუნებს null-ს.</p>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="saner-string-to-number-comparisons">
+ სტრიქონებისა და რიცხვების
გაუმჯობესებული შედარება
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/string_to_number_comparison">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP 7</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ '0 == \'foobar\' // true'
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP 8</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ '0 == \'foobar\' // false'
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <p>PHP 8 რიცხვითი სტრიქონის
შედარებისას იყენებს რიცხვების
შედარებას. წინააღმდეგ შემთხვევაში,
+ რიცხვი გარდაიქმნება სტრიქონად
და გამოიყენება სტრიქონების
შედარება.</p>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2"
id="consistent-type-errors-for-internal-functions">
+ ტიპების თანმიმდევრულობის
შეცდომები ჩაშენებული
ფუნქციებისთვის
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/consistent_type_errors">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP 7</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'strlen([]); // Warning: strlen() expects parameter 1 to be string, array
given
+
+array_chunk([], -1); // Warning: array_chunk(): Size parameter expected to be greater than 0'
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP 8</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ 'strlen([]); // TypeError: strlen(): Argument #1 ($str) must be of type
string, array given
+
+array_chunk([], -1); // ValueError: array_chunk(): Argument #2 ($length) must be greater than
0'
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <p>შიდა ფუნქციების უმეტესობა
უკვე გამორიცხავს Error გამონაკლისს, თუ
შეცდომა მოხდა პარამეტრის
შემოწმებისას.</p>
+ </div>
+ </div>
+</section>
+
+<section class="php8-section php8-section_light">
+ <h2 class="php8-h2">კომპილაცია Just-In-Time</h2>
+ <p>
+ PHP 8 წარმოგიდგენთ JIT-კომპილაციის ორ
მექანიზმს. JIT ტრასირება, მათგან
ყველაზე პერსპექტიულია,
+ სინთეზურ ბენჩმარკზე აჩვენებს
მუშაობის გაუმჯობესებას დაახლოებით
3-ჯერ და 1.5-2-ჯერ ზოგიერთ დიდ ხანს
მომუშავე აპლიკაციებში.
+ აპლიკაციის სტანდარტული წარმადობა
ერთ და იგივე დონეზეა PHP 7.4-თან.
+ </p>
+ <h3 class="php8-h3">
+ JIT-ის შედარებითი წვლილი PHP 8-ის
წარმადობაში
+ </h3>
+ <p>
+ <img src="/images/php8/scheme.svg" width="900" alt="Just-In-Time
compilation">
+ </p>
+
+ <div class="php8-columns">
+ <div class="php8-column">
+ <h2 class="php8-h2
php8-h2_margin-top">გაუმჯობესებები ტიპის
სისტემაში და შეცდომების
დამუშავება</h2>
+ <ul>
+ <li>
+ ტიპის უფრო მკაცრი შემოწმება
არითმეტიკული/ბიტიური
ოპერატორებისთვის
+ <a href="https://wiki.php.net/rfc/arithmetic_operator_type_checks">RFC</a>
+ </li>
+ <li>
+ აბსტრაქტული თვისებების
მეთოდების შემოწმება <a href="https://wiki.php.net/rfc/abstract_trait_method_validation">RFC</a>
+ </li>
+ <li>
+ ჯადოსნური მეთოდების სწორი
სიგნატურები <a href="https://wiki.php.net/rfc/magic-methods-signature">RFC</a>
+ </li>
+ <li>
+ ძრავის გაფრთხილებების ხელახალი
კლასიფიკაცია <a href="https://wiki.php.net/rfc/engine_warnings">RFC</a>
+ </li>
+ <li>
+ ფატალური შეცდომა, როდესაც
მეთოდის სიგნატურა შეუთავსებელია <a
href="https://wiki.php.net/rfc/lsp_errors">RFC</a>
+ </li>
+ <li>
+ @ ოპერატორი აღარ აჩუმებს ფატალურ
შეცდომებს.
+ </li>
+ <li>
+ მემკვიდრეობა private მეთოდებთან <a
href="https://wiki.php.net/rfc/inheritance_private_methods">RFC</a>
+ </li>
+ <li>
+ ახალი ტიპი mixed <a href="https://wiki.php.net/rfc/mixed_type_v2">RFC</a>
+ </li>
+ <li>
+ დაბრუნების ტიპი static <a href="https://wiki.php.net/rfc/static_return_type">RFC</a>
+ </li>
+ <li>
+ ტიპები სტანდარტული
ფუნქციებისთვის
+ <a href="https://externals.io/message/106522">Email
თემა</a>
+ </li>
+ <li>
+ გაუმჭვირვალე ობიექტები
რესურსების ნაცვლად
+ <a href="https://php.watch/versions/8.0/resource-CurlHandle">Curl</a>,
+ <a href="https://php.watch/versions/8.0/gdimage">Gd</a>,
+ <a href="https://php.watch/versions/8.0/sockets-sockets-addressinfo">Sockets</a>,
+ <a href="https://php.watch/versions/8.0/OpenSSL-resource">OpenSSL</a>,
+ <a href="https://php.watch/versions/8.0/xmlwriter-resource">XMLWriter</a>,
and
+ <a href="https://php.watch/versions/8.0/xmlwriter-resource">XML</a>
+ გაფართოებებისთვის
+ </li>
+ </ul>
+ </div>
+ <div class="php8-column">
+ <h2 class="php8-h2 php8-h2_margin-top">სინტაქსის
სხვა გაუმჯობესება</h2>
+ <ul>
+ <li>
+ მძიმე დაშვებულია პარამეტრების
სიის ბოლოს <a href="https://wiki.php.net/rfc/trailing_comma_in_parameter_list">RFC</a>
+ და use დამოკლების სიაში <a href="https://wiki.php.net/rfc/trailing_comma_in_closure_use_list">RFC</a>
+ </li>
+ <li>
+ ბლოკი catch ცვლადის მითითების
გარეშე <a href="https://wiki.php.net/rfc/non-capturing_catches">RFC</a>
+ </li>
+ <li>
+ ცვლადის სინტაქსის ცვლილება <a
href="https://wiki.php.net/rfc/variable_syntax_tweaks">RFC</a>
+ </li>
+ <li>
+ სახელების სივრცეში სახელები
განიხილება, როგორც ერთიამნი ტოკენი <a
href="https://wiki.php.net/rfc/namespaced_names_as_token">RFC</a>
+ </li>
+ <li>
+ გამოსახულება Throw <a href="https://wiki.php.net/rfc/throw_expression">RFC</a>
+ </li>
+ <li>
+ დამატება ::class ობიექტებისთვის <a
href="https://wiki.php.net/rfc/class_name_literal_on_object">RFC</a>
+ </li>
+ </ul>
+
+ <h2 class="php8-h2 php8-h2_margin-top">ახალი კლასები,
ინტერფეისები და ფუნქციები</h2>
+ <ul>
+ <li>
+ <a href="https://wiki.php.net/rfc/weak_maps">Weak
Map</a> class
+ </li>
+ <li>
+ <a href="https://wiki.php.net/rfc/stringable">Stringable</a>
interface
+ </li>
+ <li>
+ <a href="https://wiki.php.net/rfc/str_contains">str_contains()</a>,
+ <a href="https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions">str_starts_with()</a>,
+ <a href="https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions">str_ends_with()</a>
+ </li>
+ <li>
+ <a href="https://github.com/php/php-src/pull/4769">fdiv()</a>
+ </li>
+ <li>
+ <a href="https://wiki.php.net/rfc/get_debug_type">get_debug_type()</a>
+ </li>
+ <li>
+ <a href="https://github.com/php/php-src/pull/5427">get_resource_id()</a>
+ </li>
+ <li>
+ <a href="https://wiki.php.net/rfc/token_as_object">token_get_all()</a>
ობიექტზე-ორიენტირებული ფუნქცია
+ </li>
+ <li>
+ <a href="https://wiki.php.net/rfc/dom_living_standard_api">ახალი
API-ები DOM-ის გადასასვლელად და
დასამუშავებლად</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+</section>
+
+<section class="php8-section php8-section_dark php8-section_footer php8-footer">
+ <div class="php8-section__content">
+ <h2 class="php8-h2 center">
+ უკეთესი წარმადობა, უკეთესი
სინტაქსი, უფრო საიმედო ტიპების
სისტემა.
+ </h2>
+ <div class="php8-button-wrapper center">
+ <a class="php8-button php8-button_light"
href="/downloads">გადადით PHP 8-ზე!</a>
+ </div>
+ <div class="php8-footer__content">
+ <p>
+ PHP 8 წყაროს კოდის ჩამოსატვირთად
ეწვიეთ <a href="http://www.php.net/downloads">ჩამოტვირთვის</a>
გვერდს.
+ Windows-ის ბინარული ფაილები
განთავსებულია საიტზე <a href="http://windows.php.net/download">PHP
Windows-თვის</a>.
+ ცვლილებების სია წარმოდგენილია <a
href="http://www.php.net/ChangeLog-8.php">ChangeLog-ში</a>.
+ </p>
+ <p>
+ <a href="/manual/en/migration80.php">მიგრაციის
გზამკვლევი</a> ხელმისაწვდომია
დოკუმენტაციის განყოფილებაში. გთხოვთ,
+ შეისწავლოთ იგი ახალი ფუნქციების
დეტალური ჩამონათვალის მისაღებად და
უკუ შეუთავსებელი ცვლილებებისთვის.
+ </p>
+ </div>
+ </div>
+</section>
+
+
+
+
+<?php site_footer();