{"id":18730,"date":"2021-03-20T14:15:42","date_gmt":"2021-03-20T10:45:42","guid":{"rendered":"https:\/\/maktabkhooneh.org\/mag\/?p=18730"},"modified":"2026-04-06T20:11:57","modified_gmt":"2026-04-06T16:41:57","slug":"simple-guide-to-multilingual-capabilities-in-flutter","status":"publish","type":"post","link":"https:\/\/maktabkhooneh.org\/mag\/simple-guide-to-multilingual-capabilities-in-flutter\/","title":{"rendered":"\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0633\u0627\u062f\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u0642\u0627\u0628\u0644\u06cc\u062a \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631<\/h2>\n\n\n\n<p><span style=\"font-size: 16px;\">\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0637\u06cc\u0641 \u0648\u0633\u06cc\u0639\u06cc \u0627\u0632 \u0645\u062e\u0627\u0637\u0628\u0627\u0646 \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u062f\u0646\u06cc\u0627 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0627 <strong>\u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631<\/strong> \u0648 \u0646\u062d\u0648\u0647\u200c\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0622\u0634\u0646\u0627 \u062e\u0648\u0627\u0647\u06cc\u0645 \u0634\u062f. \u0628\u0627 \u0645\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u0645\u0642\u062f\u0645\u0647<\/span><\/h3>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 flutter \u0648\u06cc\u062c\u062a\u200c\u0647\u0627 \u0648 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0631\u0627 \u062f\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f\u062a\u0627\u0646 \u0628\u06af\u0646\u062c\u0627\u0646\u06cc\u062f.<\/span><\/p>\n\n\n<div class=\"jet-listing-grid--56206\" style=\"\"><div class=\"jet-listing-dynamic-field-block zht-maktab-khooneh-learn cb-ud1ng69u\"data-is-block=\"jet-engine\/dynamic-field\"><div class=\"jet-listing-dynamic-field__content\" >\r\n<div class=\"zht-learn-card\">\r\n    <div class=\"zht-learn-title-section\">\r\n        <div class=\"zht-learn-card-icon\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\r\n                <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" \/>\r\n            <\/svg>\r\n        <\/div>\r\n        \r\n        <!-- \u0639\u0646\u0648\u0627\u0646 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0628\u0647 \u0644\u06cc\u0646\u06a9 -->\r\n        <a href=\"https:\/\/maktabkhooneh.org\/learn\/flutter-programming\/\" class=\"zht-learn-card-title\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n            \u062f\u0648\u0631\u0647\u200c\u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0641\u0644\u0627\u062a\u0631        <\/a>\r\n    <\/div>\r\n\r\n    <!-- \u062f\u06a9\u0645\u0647 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0628\u0647 \u062a\u06af button -->\r\n    <!-- \u0627\u0632 onclick \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u062a\u0627 \u0628\u0647 \u0645\u062d\u0636 \u06a9\u0644\u06cc\u06a9 \u0644\u06cc\u0646\u06a9 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u062f -->\r\n    <button class=\"zht-learn-card-btn\" data-course-url=\"https:\/\/maktabkhooneh.org\/learn\/flutter-programming\/\" onclick=\"window.open(this.getAttribute('data-course-url'), '_blank');\">\r\n        \u0634\u0631\u0648\u0639 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc\r\n    <\/button>\r\n<\/div><\/div><\/div><\/div>\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 <a href=\"https:\/\/maktabkhooneh.org\/learn\/flutter-programming\/\">\u0641\u0644\u0627\u062a\u0631<\/a> \u06cc\u06a9 \u067e\u06a9\u06cc\u062c \u062a\u062d\u062a \u0639\u0646\u0648\u0627\u0646 flutter_localizations \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u062d\u0644\u06cc \u0633\u0627\u0632\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u0686\u0646\u062f\u0632\u0628\u0627\u0646\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f \u062f\u0627\u0631\u062f. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627 \u0627\u0632 \u0645\u062a\u062f\u0647\u0627\u06cc Delegate \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0632\u0645\u0627\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0632\u0628\u0627\u0646 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0628\u0647 \u062c\u0632 \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u0645\u0627 \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0641\u0627\u06cc\u0644 JSON \u0645\u062d\u0644\u06cc \u0647\u0645 \u0628\u0631\u0627\u06cc \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u06a9\u0644\u06cc\u062f\u06cc \u062a\u0631\u062c\u0645\u0647\u200c\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0646\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0645\u0648\u0636\u0648\u0639 \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631 \u0631\u0627 \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u0645. \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0645\u0627 \u062f\u0627\u0631\u0627\u06cc \u062f\u0648 \u0632\u0628\u0627\u0646 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0648 \u0622\u0644\u0645\u0627\u0646\u06cc \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u0642\u062f\u0645 \u06f1: \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc JSON \u0632\u0628\u0627\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0646\u0627\u0628\u0639 \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 \u067e\u0648\u0634\u0647 Resources \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" width=\"300\" height=\"275\" src=\"https:\/\/maktabkhooneh.org\/mag\/wp-content\/uploads\/2021\/02\/Multi-Language-fluteer.png\" alt=\"\u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631\" class=\"wp-image-18733\" title=\"\"><figcaption><\/figcaption><\/figure>\n\n\n\n<p><span style=\"font-size: 16px;\"><\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0628\u0631\u0627\u06cc \u0632\u0628\u0627\u0646 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0627\u0633\u0645 en.json \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0633\u0645 \u0641\u0627\u06cc\u0644 \u0632\u0628\u0627\u0646 \u0622\u0644\u0645\u0627\u0646\u06cc \u0631\u0627 \u0647\u0645 de.json \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f. \u062f\u0631 \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc JOSN \u0627\u0633\u0627\u0645\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u06cc\u0627 \u0622\u0644\u0645\u0627\u0646\u06cc \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f:<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">En.json\n\n{\n\n&nbsp;&nbsp;&nbsp; \u201cwelcome_text\u201d:\u201cHello, Welcome to my blog\u201d,\n\n&nbsp;&nbsp;&nbsp; \u201cfirst_text\u201d:\u201cThis is App localization example\u201d\n\n}\n\nDe.json\n\n{\n&nbsp;&nbsp;&nbsp; \u201cwelcome_text\u201d:\u201dHallo, Willkommen in meinem Blog\u201d,\n&nbsp;&nbsp;&nbsp; \u201cfirst_text\u201d:\u201cDies ist ein Beispiel f\u00fcr die App-Lokalisierung\u201d\n}<\/span><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u06f2- \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc\u200c\u0647\u0627<\/span><\/h3>\n\n\n\n<p><span style=\"font-size: 16px;\">pubspec.yaml<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 \u0642\u062f\u0645 \u0628\u0639\u062f\u06cc \u0628\u0627\u06cc\u062f \u067e\u06a9\u06cc\u062c flutter_localizations \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 pubspec.yaml \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">dependencies:\nflutter:\n&nbsp;&nbsp;&nbsp; sdk: flutter\nflutter_localizations:\n&nbsp;&nbsp;&nbsp; sdk: flutter\n&nbsp;\n# To add assets to your application, add an assets section, like this:\nassets:\n- resources\/language\/de.json\n- resources\/language\/en.json<\/span><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u06f3- \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0686\u0646\u062f\u0632\u0628\u0627\u0646\u06cc \u0628\u0647 MaterialApp<\/span><\/h3>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631 \u0628\u0647 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u062e\u0648\u062f\u062a\u0627\u0646 \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 supportLocales\u060c localizationsDelegates \u0648 localeResolutionCallback \u0631\u0627 \u0628\u0647 \u0648\u06cc\u062c\u062a MaterialApp \u062f\u0631 \u0641\u0627\u06cc\u0644 Main.dart \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u06f3\u066b\u06f1- \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 supportLocales \u062f\u0631 MaterialApp<\/span><\/h4>\n\n\n\n<p><span style=\"font-size: 16px;\">SupportLocales: \u0627\u06cc\u0646 \u0645\u0634\u062e\u0635\u0647 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u062f\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f \u062f\u0627\u0631\u062f. \u0632\u0628\u0627\u0646 \u067e\u06cc\u0634\u0641\u0631\u0636 \u0622\u0646 \u0646\u06cc\u0632 \u0632\u0628\u0627\u0646 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0622\u0645\u0631\u06cc\u06a9\u0627\u06cc\u06cc \u0627\u0633\u062a.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">Locale: \u0627\u0632 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0632\u0628\u0627\u0646 \u0648 \u0641\u0631\u0645\u062a\u200c\u0628\u0646\u062f\u06cc \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f \u0648 \u0634\u0627\u0645\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 languageCode\u060c &nbsp;scriptCode \u0648 countyCode \u0627\u0633\u062a.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u0633\u0627\u0632\u0646\u062f\u0647 \u06a9\u0644\u0627\u0633 Locale:<\/span><\/h3>\n\n\n\n<p><span style=\"font-size: 16px;\"><span class=\"lang:default decode:true crayon-inline\">&nbsp;Locale(String _languageCode,[String _countryCode])<\/span>&nbsp;: \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u062f \u0645\u0642\u062f\u0627\u0631 \u0627\u0648\u0644 \u06a9\u0647 \u06a9\u062f \u0632\u0628\u0627\u0646\u06cc \u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0632\u0628\u0627\u0646 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a. \u0628\u062e\u0634 \u062f\u0648\u0645 \u0647\u0645 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0633\u062a \u0648 \u062d\u0627\u0648\u06cc \u06a9\u062f \u06a9\u0634\u0648\u0631 \u0645\u06cc\u200c\u0628\u0627\u0634\u062f.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0632\u0628\u0627\u0646 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0631\u0648\u0634 \u0645\u062e\u062a\u0644\u0641 \u062f\u0631 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u062e\u0648\u062f\u062a\u0627\u0646 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-size: 16px;\">&nbsp;const Locale(\u2018en\u2019): \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0632\u0628\u0627\u0646 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0641\u0642\u0637 \u0628\u0633\u062a\u0647 \u0628\u0647 \u06a9\u062f \u0632\u0628\u0627\u0646 \u062a\u0639\u0631\u06cc\u0641 \u062e\u0648\u0627\u0647\u062f \u0634\u062f<\/span><\/li>\n\n\n\n<li><span style=\"font-size: 16px;\">&nbsp;[const Locale(\u2018en\u2019, \u2018US\u2019)]: \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0627\u0632 \u06a9\u062f \u06a9\u0634\u0648\u0631 \u0648 \u06a9\u062f \u0632\u0628\u0627\u0646 \u0628\u0647 \u0635\u0648\u0631\u062a \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 en \u06a9\u062f \u0632\u0628\u0627\u0646 \u0648 US \u0647\u0645 \u06a9\u062f \u06a9\u0634\u0648\u0631 \u0627\u0633\u062a.<\/span><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">&nbsp;&nbsp; supportedLocales: [\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;Locale( 'en' , 'US' ),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;Locale( 'de' , 'DE' ),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ],<\/span><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u06f3\u066b\u06f2- \u0627\u0641\u0632\u0648\u062f\u0646 LocalizationDelegates \u062f\u0631 \u0648\u06cc\u062c\u062a MaterialApp:<\/span><\/h4>\n\n\n\n<p><span style=\"font-size: 16px;\">localizationsDelegates \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0645\u0634\u062e\u0635\u0647\u200c\u0647\u0627 \u062f\u0631 MaterialApp \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0632 Delegate\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0628\u0648\u0645\u06cc\u200c\u0633\u0627\u0632\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f \u062f\u0627\u0631\u062f.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">GlobalMaterialLocalizations.delegate \u0646\u06cc\u0632 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u062a\u0648\u0646 \u0648 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc \u0628\u0648\u0645\u06cc\u200c\u0633\u0627\u0632\u06cc \u0648 \u062f\u06cc\u06af\u0631 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u0639\u0646\u0627\u0635\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f \u062f\u0627\u0631\u062f.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0627\u0632 GlobalWidgetsLocalizations.delegate \u0647\u0645 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u062c\u0647\u062a \u067e\u06cc\u0634\u0641\u0631\u0636 \u0645\u062a\u0646 \u0628\u0631\u0627\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0648\u06cc\u062c\u062a\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">localizationsDelegates: [\n&nbsp;&nbsp;&nbsp; ApplicationLocalizations.delegate,\n&nbsp;&nbsp;&nbsp; GlobalMaterialLocalizations.delegate,\n&nbsp;&nbsp;&nbsp; GlobalWidgetsLocalizations.delegate,\n],<\/span><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u0627\u0641\u0632\u0648\u062f\u0646 localResolutionCallback \u0628\u0647 \u0648\u06cc\u062c\u062a MaterialApp<\/span><\/h3>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0641\u0639\u0644\u06cc \u0627\u0632 \u0641\u0627\u06cc\u0644 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u06a9\u062f \u0632\u0628\u0627\u0646 \u0648 \u06a9\u062f \u06a9\u0634\u0648\u0631 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u06a9\u062f \u0632\u0628\u0627\u0646 \u0648 \u06a9\u062f \u06a9\u0634\u0648\u0631 \u0641\u0639\u0644\u06cc \u06af\u0648\u0634\u06cc \u0645\u0648\u0628\u0627\u06cc\u0644 \u0634\u0645\u0627 \u0628\u0627 \u0632\u0628\u0627\u0646 \u0648 \u06a9\u062f \u06a9\u0634\u0648\u0631 \u0641\u0639\u0644\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0634\u0645\u0627 \u0628\u0631\u0627\u0628\u0631 \u0646\u0628\u0627\u0634\u062f\u060c \u0633\u067e\u0633 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u0648\u0644\u06cc\u0646 \u0632\u0628\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u0622\u0631\u0627\u06cc\u0647 supportLocales \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a \u0631\u0627 \u0628\u0627\u0632\u06af\u0634\u062a \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u062f \u06cc\u0627 \u062f\u0631 \u063a\u06cc\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0632\u0628\u0627\u0646 \u0645\u0648\u0631\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0628\u0627\u0632\u06af\u0634\u062a \u062f\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">localeResolutionCallback: (locale, supportedLocales) {\n&nbsp;&nbsp;&nbsp; for (var supportedLocaleLanguage in supportedLocales) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (supportedLocaleLanguage.languageCode == locale.languageCode &amp;&amp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; supportedLocaleLanguage.countryCode == locale.countryCode) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return supportedLocaleLanguage;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }\n&nbsp;&nbsp;&nbsp; }\n&nbsp;\n&nbsp;&nbsp;&nbsp; \/\/ If device not support with locale to get language code then default get first on from the list\n&nbsp;&nbsp;&nbsp; return supportedLocales.first;\n}<\/span><\/pre>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 \u0627\u06cc\u0646 \u06a9\u062f \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0632\u0628\u0627\u0646 \u0641\u0639\u0644\u06cc \u06af\u0648\u0634\u06cc \u0645\u0648\u0628\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0634\u0645\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0646\u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0632\u0628\u0627\u0646 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0632\u0628\u0627\u0646 \u067e\u06cc\u0634\u0641\u0631\u0636 \u062a\u0639\u0631\u06cc\u0641 \u062e\u0648\u0627\u0647\u062f \u0634\u062f \u0648 \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 en.json \u06a9\u0647 \u062f\u0631 \u067e\u0648\u0634\u0647 Resoureces \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">&nbsp;<\/span><br>\n<span style=\"font-size: 16px;\">&nbsp;<\/span><\/p>\n\n\n<div class=\"jet-listing-grid--50192\" style=\"\"><style><\/style><section class=\"zht-related-post\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Article\" role=\"region\"\n  aria-label=\"Related article\">\n  <div class=\"zht-related-post-section-label\">\n    \u0645\u0637\u0627\u0644\u0628 \u0645\u0631\u062a\u0628\u0637\n  <\/div>\n  <img decoding=\"async\" width=\"300\" height=\"167\" data-src=\"https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2021\/01\/flutter_tenets-300x167.png.webp\" class=\"attachment-medium size-medium wp-post-image lazyload\" alt=\"\u0622\u0645\u0648\u0632\u0634 \u0641\u0644\u0627\u062a\u0631 \u0628\u0631\u0627\u06cc \u0648\u0628\" data-srcset=\"https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2021\/01\/flutter_tenets-300x167.png.webp 300w, https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2021\/01\/flutter_tenets-1024x570.png.webp 1024w, https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2021\/01\/flutter_tenets-768x428.png.webp 768w, https:\/\/maktabkhooneh.org\/mag\/wp-content\/uploads\/2021\/01\/flutter_tenets.png 1315w\" data-sizes=\"(max-width: 300px) 100vw, 300px\" title=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/167;\">\n  <a href=\"https:\/\/maktabkhooneh.org\/mag\/flutter-training-for-the-web\/\" class=\"zht-related-post-title\"\n    itemprop=\"headline\" target=\"_blank\">\u0622\u06cc\u0627 \u0628\u0647 \u0622\u0645\u0648\u0632\u0634 \u0641\u0644\u0627\u062a\u0631 \u0628\u0631\u0627\u06cc \u0648\u0628 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645\u061f<\/a>\n<\/section><\/div>\n\n\n<h4 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u06f4- \u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633 \u0628\u0648\u0645\u06cc\u200c\u0633\u0627\u0632\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc<\/span><\/h4>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 \u0641\u0648\u0644\u062f\u0631 lib\/ \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0628\u0627 \u0627\u0633\u0645 application_localization.dart \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u0632 \u06a9\u0644\u0627\u0633 ApplicationLocalization \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0628\u0648\u0645\u06cc \u0633\u0627\u0632\u06cc \u0627\u0632 \u062f\u0633\u062a\u06af\u0627\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u0632\u0628\u0627\u0646 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0633\u067e\u0633 \u0628\u0631 \u0645\u0628\u0646\u0627\u06cc \u0632\u0628\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637\u0647 \u0627\u0632 \u0641\u0627\u06cc\u0644 JSON \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a Map data \u0628\u0631\u0627\u0633\u0627\u0633 \u0645\u0642\u0627\u062f\u06cc\u0631 \u06a9\u0644\u06cc\u062f\u06cc \u0641\u0627\u06cc\u0644 JSON \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">import 'dart:async';\nimport 'dart:convert';\nimport 'package:flutter\/material.dart';\nimport 'package:flutter\/services.dart';\n&nbsp;\nclass ApplicationLocalizations {\nfinal Locale appLocale;\n&nbsp;\nApplicationLocalizations(this.appLocale);\n&nbsp;\nstatic ApplicationLocalizations of(BuildContext context) {\n&nbsp;&nbsp; return Localizations.of&lt;ApplicationLocalizations&gt;(context, ApplicationLocalizations);\n}\n&nbsp;\nMap&lt;String, String&gt; _localizedStrings;\n&nbsp;\nFuture&lt;bool&gt; load() async {\n&nbsp;&nbsp; \/\/ Load JSON file from the \"language\" folder\n&nbsp;&nbsp; String jsonString =\n&nbsp;&nbsp; await rootBundle.loadString('resources\/language\/${appLocale.languageCode}.json');\n&nbsp;&nbsp; Map&lt;String, dynamic&gt; jsonLanguageMap = json.decode(jsonString);\n&nbsp;&nbsp; _localizedStrings = jsonLanguageMap.map((key, value) {\n&nbsp;&nbsp;&nbsp;&nbsp; return MapEntry(key, value.toString());\n&nbsp;&nbsp; });\n&nbsp;&nbsp; return true;\n}\n&nbsp;\n\/\/ called from every widget which needs a localized text\nString translate(String jsonkey) {\n&nbsp;&nbsp; return _localizedStrings[jsonkey];\n}\n}<\/span><\/pre>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 \u06a9\u0644\u0627\u0633 ApplicationLocalization \u062f\u0648 \u0645\u062a\u062f \u0627\u0635\u0644\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u06f1\u066b&nbsp; &nbsp; <span class=\"lang:default decode:true crayon-inline \">Load():<\/span>&nbsp; \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062a\u062f \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc JSON \u062f\u0631 Map&lt;String, String&gt; \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/span><br>\n<span style=\"font-size: 16px;\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062a\u062f \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc JSON \u0627\u0632 \u0641\u0627\u06cc\u0644 JSON \u0632\u0628\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u062f \u0634\u062f \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u06cc\u200c\u0634\u0648\u062f.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u06f2\u066b&nbsp; &nbsp; <span class=\"lang:default decode:true crayon-inline \">Translate():<\/span>&nbsp; \u0627\u06cc\u0646 \u0645\u062a\u062f \u0647\u0645 \u0627\u0645\u06a9\u0627\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0646\u0642\u0634\u0647\u200c\u06cc \u0631\u0634\u062a\u0647\u200c\u0647\u0627 (Strings Map) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/span><br>\n<span style=\"font-size: 16px;\">\u062f\u0631 \u0648\u0627\u0642\u0639 \u0627\u06cc\u0646 \u0645\u062a\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u06cc\u062c\u062a\u200c\u0647\u0627\u06cc \u0645\u062a\u0646\u06cc \u0648 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span style=\"font-size: 16px;\">\u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062a\u0646\u06cc \u0627\u0632 \u0641\u0627\u06cc\u0644 JSON<\/span><\/h2>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u0642\u0627\u062f\u06cc\u0631 \u06a9\u0644\u06cc\u062f\u06cc \u0631\u0634\u062a\u0647\u200c\u0647\u0627 \u0627\u0632 \u0641\u0627\u06cc\u0644 JSON \u0632\u0628\u0627\u0646\u060c \u0628\u0627\u06cc\u062f \u0645\u062a\u062f \u0627\u06cc\u0633\u062a\u0627\u06cc<span class=\"lang:default decode:true crayon-inline \">of()<\/span>&nbsp; \u0631\u0627 \u062f\u0631 <span class=\"lang:default decode:true crayon-inline \">ApplicationLocalizations()<\/span>&nbsp; \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 JSON \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u062f<span class=\"lang:default decode:true crayon-inline \">translate()<\/span>&nbsp; \u062f\u0631\u06cc\u0627\u0641\u062a \u0646\u0645\u0627\u0626\u06cc\u062f.<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">Text(\n&nbsp;&nbsp;&nbsp; ApplicationLocalizations.of(context).translate('welcome_text'),\n&nbsp;&nbsp;&nbsp; textAlign: TextAlign.center,\n),<\/span><\/pre>\n\n\n\n<p><span style=\"font-size: 16px;\">\u06a9\u062f \u06a9\u0627\u0645\u0644 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\"><strong>Main.dart<\/strong><\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 \u0641\u0627\u06cc\u0644 Main.dart \u0627\u0632 \u0648\u06cc\u062c\u062a MaterialApp \u0628\u0631\u0627\u06cc \u0628\u0648\u0645\u06cc\u200c\u0633\u0627\u0632\u06cc \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0634\u0645\u0627 \u0628\u0633\u062a\u0647 \u0628\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0632\u0628\u0627\u0646 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0645\u0646\u0627\u0628\u0639 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/span><\/p>\n\n\n<div class=\"jet-listing-grid--50192\" style=\"\"><section class=\"zht-related-post\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Article\" role=\"region\"\n  aria-label=\"Related article\">\n  <div class=\"zht-related-post-section-label\">\n    \u0645\u0637\u0627\u0644\u0628 \u0645\u0631\u062a\u0628\u0637\n  <\/div>\n  <img decoding=\"async\" width=\"300\" height=\"169\" data-src=\"https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2020\/11\/Flutter-1-1-300x169.png.webp\" class=\"attachment-medium size-medium wp-post-image lazyload\" alt=\"\u0641\u0644\u0627\u062a\u0631 \u0686\u06cc\u0633\u062a\" data-srcset=\"https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2020\/11\/Flutter-1-1-300x169.png.webp 300w, https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2020\/11\/Flutter-1-1-1024x576.png.webp 1024w, https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2020\/11\/Flutter-1-1-768x432.png.webp 768w, https:\/\/maktabkhooneh.org\/mag\/wp-content\/smush-webp\/2020\/11\/Flutter-1-1-1536x864.png.webp 1536w, https:\/\/maktabkhooneh.org\/mag\/wp-content\/uploads\/2020\/11\/Flutter-1-1.png 1920w\" data-sizes=\"(max-width: 300px) 100vw, 300px\" title=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/169;\">\n  <a href=\"https:\/\/maktabkhooneh.org\/mag\/how-to-design-an-application-with-the-flutter-framework\/\" class=\"zht-related-post-title\"\n    itemprop=\"headline\" target=\"_blank\">\u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 \u0641\u0644\u0627\u062a\u0631 \u0637\u0631\u0627\u062d\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0646\u06cc\u0645<\/a>\n<\/section><\/div>\n\n\n<p><span style=\"font-size: 16px;\">\u0628\u0631\u0627\u06cc \u0628\u0648\u0645\u06cc\u200c\u0633\u0627\u0632\u06cc \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u062e\u0648\u062f\u062a\u0627\u0646 \u062f\u0631 \u06a9\u0644\u0627\u0633<span class=\"lang:default decode:true crayon-inline \">MyApp()<\/span>&nbsp;\u0645\u0642\u0627\u062f\u06cc\u0631 supportLocales\u060c localizationsDelegates \u0648 localeResolutionCallback \u0631\u0627 \u0628\u0631\u0627\u0633\u0627\u0633 \u06a9\u062f \u0632\u0628\u0627\u0646 \u0648 \u06a9\u0634\u0648\u0631 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u06af\u0648\u0634\u06cc \u0645\u0648\u0628\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0634\u0645\u0627 \u0628\u0627 \u06a9\u0645\u06a9 ApplicationLocalizations.delegate \u062a\u0635\u0645\u06cc\u0645 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u06a9\u0647 \u0628\u0633\u062a\u0647 \u0628\u0647 \u06a9\u062f \u0632\u0628\u0627\u0646 \u0648 \u06a9\u0634\u0648\u0631 \u06af\u0648\u0634\u06cc \u06a9\u062f\u0627\u0645 \u0645\u0642\u0627\u062f\u06cc\u0631 \u06a9\u0644\u06cc\u062f\u06cc \u0648 \u0645\u062a\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627\u06cc\u062f \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u062f.<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">Impor t 'package:flutter\/material.dart';\nimport 'package:flutter_localizations\/flutter_localizations.dart';\nimport 'application_localizations.dart';\nimport 'my_home_page.dart';\n&nbsp;\nvoid main() =&gt; runApp( MyApp());\n&nbsp;\nclass MyApp extends StatefulWidget {\n@override\nState&lt;StatefulWidget&gt; createState() {\n&nbsp;&nbsp; return _MyAppState();\n}\n}\n&nbsp;\nclass _MyAppState extends State&lt;MyApp&gt; {\n&nbsp;\n@override\nWidget build(BuildContext context) {\n&nbsp; return MaterialApp(\n&nbsp;&nbsp; title: 'Flutter Localization\u2019,\n&nbsp;&nbsp; theme: ThemeData(\n&nbsp;&nbsp;&nbsp;&nbsp; primarySwatch: Colors.blue,\n&nbsp;&nbsp; ),\n&nbsp; \/\/ List all of the app's supported locales here\n&nbsp;&nbsp; supportedLocales: [\n&nbsp;&nbsp;&nbsp;&nbsp; Locale( 'en' , 'US' ),\n&nbsp;&nbsp;&nbsp;&nbsp; Locale( 'de' , 'DE' ),\n&nbsp;&nbsp; ],\n&nbsp;\n&nbsp;&nbsp;&nbsp; localizationsDelegates: [\n&nbsp;&nbsp;&nbsp;&nbsp; ApplicationLocalizations.delegate,\n&nbsp;&nbsp;&nbsp;&nbsp; GlobalMaterialLocalizations.delegate,\n&nbsp;&nbsp;&nbsp;&nbsp; GlobalWidgetsLocalizations.delegate,\n&nbsp;&nbsp; ],\n&nbsp;\n&nbsp;&nbsp; localeResolutionCallback: (locale, supportedLocales) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var supportedLocaleLanguage in supportedLocales) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (supportedLocaleLanguage.languageCode == locale.languageCode &amp;&amp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; supportedLocaleLanguage.countryCode == locale.countryCode) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return supportedLocaleLanguage;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return supportedLocales.first;\n&nbsp;&nbsp;&nbsp;&nbsp; },\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; home: MyHomePage(),\n&nbsp;&nbsp;&nbsp; );\n}\n}<\/span><\/pre>\n\n\n\n<p><span style=\"font-size: 16px;\"><strong>myhomepage.dart<\/strong><\/span><\/p>\n\n\n\n<p><span style=\"font-size: 16px;\">\u062f\u0631 \u06a9\u0644\u0627\u0633 HomaPage() \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u062a\u0646 \u0648\u06cc\u062c\u062a\u200c\u0647\u0627 \u0648 \u0631\u0634\u062a\u0647\u200c\u0647\u0627 \u0628\u0627 \u06a9\u0645\u06a9 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 JSON \u0632\u0628\u0627\u0646 \u062a\u0639\u06cc\u06cc\u0646 \u062e\u0648\u0627\u0647\u062f \u0634\u062f:<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 16px;\">import 'package:flutter\/material.dart';\nimport 'package:flutter_localizations\/flutter_localizations.dart';\nimport 'application_localizations.dart';\n&nbsp;\nclass MyHomePage extends StatefulWidget {\n&nbsp;\n@override\nState&lt;StatefulWidget&gt; createState() {\n&nbsp;&nbsp; return _MyHomePageState();\n}\n}\n&nbsp;\nclass _MyHomePageState extends State&lt;MyHomePage&gt; {\n&nbsp;\n@override\nWidget build(BuildContext context) {\n&nbsp;&nbsp; return Scaffold(\n&nbsp;&nbsp;&nbsp;&nbsp; body: Center(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; child: Column(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; children: &lt;Widget&gt;[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ApplicationLocalizations.of(context).translate('welcome_text'),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textAlign: TextAlign.center\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ApplicationLocalizations.of(context).translate('first_text'),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textAlign: TextAlign.center\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ],\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),\n&nbsp;&nbsp;&nbsp;&nbsp; ),\n&nbsp;&nbsp; );\n}<\/span><\/pre>\n\n\n\n<p><span style=\"font-size: 16px;\">\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0628\u0648\u0645\u06cc \u0633\u0627\u0632\u06cc \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062e\u06cc\u0644\u06cc \u0631\u0627\u062d\u062a \u0627\u0633\u062a \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0632 \u0642\u0627\u0628\u0644\u06cc\u062a<strong> \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u062c\u0647\u0627\u0646\u06cc\u0627\u0646 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0642\u0627\u0628\u0644\u06cc\u062a \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0637\u06cc\u0641 \u0648\u0633\u06cc\u0639\u06cc \u0627\u0632 \u0645\u062e\u0627\u0637\u0628\u0627\u0646 \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u062f\u0646\u06cc\u0627 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0627 \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc \u062f\u0631 \u0641\u0644\u0627\u062a\u0631 \u0648 \u0646\u062d\u0648\u0647\u200c\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0622\u0634\u0646\u0627 \u062e\u0648\u0627\u0647\u06cc\u0645 \u0634\u062f. \u0628\u0627 \u0645\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f: \u0645\u0642\u062f\u0645\u0647 \u062f\u0631 flutter \u0648\u06cc\u062c\u062a\u200c\u0647\u0627 \u0648 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0647 [&hellip;]<\/p>\n","protected":false},"author":46,"featured_media":18734,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-18730","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-and-it-training"],"_links":{"self":[{"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/posts\/18730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/users\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/comments?post=18730"}],"version-history":[{"count":6,"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/posts\/18730\/revisions"}],"predecessor-version":[{"id":66750,"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/posts\/18730\/revisions\/66750"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/media\/18734"}],"wp:attachment":[{"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/media?parent=18730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/categories?post=18730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maktabkhooneh.org\/mag\/wp-json\/wp\/v2\/tags?post=18730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}