diff --git a/locale/messages.pot b/locale/messages.pot index 7e098fb41..b16183357 100644 --- a/locale/messages.pot +++ b/locale/messages.pot @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2019-08-26T21:49:04.020Z\n" +"POT-Creation-Date: 2019-08-26T21:52:39.170Z\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "MIME-Version: 1.0\n" @@ -67,6 +67,14 @@ msgctxt "header" msgid "Activity" msgstr "" +#: build/locale/src/components/ListField/ListField.json +#. [src.components.ListField.3099331554] - button +#. defaultMessage is: +#. Add +msgctxt "button" +msgid "Add" +msgstr "" + #: build/locale/src/customers/components/CustomerAddressDialog/CustomerAddressDialog.json #. [src.customers.components.CustomerAddressDialog.3769321414] - dialog title #. defaultMessage is: @@ -75,6 +83,22 @@ msgctxt "dialog title" msgid "Add Address" msgstr "" +#: build/locale/src/components/Filter/Filter.json +#. [src.components.Filter.2852521946] - button +#. defaultMessage is: +#. Add Filter +msgctxt "button" +msgid "Add Filter" +msgstr "" + +#: build/locale/src/components/RichTextEditor/ImageSource.json +#. [src.components.RichTextEditor.1603794322] - dialog header +#. defaultMessage is: +#. Add Image Link +msgctxt "dialog header" +msgid "Add Image Link" +msgstr "" + #: build/locale/src/navigation/components/MenuItemDialog/MenuItemDialog.json #. [menuItemDialogAddItem] - create new menu item, header #. defaultMessage is: @@ -243,6 +267,14 @@ msgctxt "button" msgid "Add customer" msgstr "" +#: build/locale/src/components/Filter/FilterContent.json +#. [src.components.Filter.2851720415] - button +#. defaultMessage is: +#. Add filter +msgctxt "button" +msgid "Add filter" +msgstr "" + #: build/locale/src/siteSettings/components/SiteSettingsKeys/SiteSettingsKeys.json #. [src.siteSettings.components.SiteSettingsKeys.1114030884] - button #. defaultMessage is: @@ -267,6 +299,30 @@ msgctxt "description" msgid "Add new menu item to begin creating menu" msgstr "" +#: build/locale/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.json +#. [src.components.MultiAutocompleteSelectField.1477537381] - add custom option to select input +#. defaultMessage is: +#. Add new value: {value} +msgctxt "add custom option to select input" +msgid "Add new value: {value}" +msgstr "" + +#: build/locale/src/components/SingleAutocompleteSelectField/SingleAutocompleteSelectField.json +#. [src.components.SingleAutocompleteSelectField.1477537381] - add custom select input option +#. defaultMessage is: +#. Add new value: {value} +msgctxt "add custom select input option" +msgid "Add new value: {value}" +msgstr "" + +#: build/locale/src/components/RichTextEditor/LinkSource.json +#. [src.components.RichTextEditor.2160163587] - button +#. defaultMessage is: +#. Add or Edit Link +msgctxt "button" +msgid "Add or Edit Link" +msgstr "" + #: build/locale/src/pages/components/PageListPage/PageListPage.json #. [src.pages.components.PageListPage.1767905232] - button #. defaultMessage is: @@ -459,6 +515,10 @@ msgctxt "header" msgid "Address Information" msgstr "" +#: build/locale/src/components/AddressEdit/AddressEdit.json +#. [src.components.AddressEdit.1363074570] +#. defaultMessage is: +#. Address line 1 #: build/locale/src/siteSettings/components/SiteSettingsAddress/SiteSettingsAddress.json #. [src.siteSettings.components.SiteSettingsAddress.1363074570] #. defaultMessage is: @@ -467,6 +527,10 @@ msgctxt "description" msgid "Address line 1" msgstr "" +#: build/locale/src/components/AddressEdit/AddressEdit.json +#. [src.components.AddressEdit.3121963259] +#. defaultMessage is: +#. Address line 2 #: build/locale/src/siteSettings/components/SiteSettingsAddress/SiteSettingsAddress.json #. [src.siteSettings.components.SiteSettingsAddress.3121963259] #. defaultMessage is: @@ -799,6 +863,14 @@ msgctxt "description" msgid "Are you sure you want to delete {menuName}?" msgstr "" +#: build/locale/src/components/DeleteFilterTabDialog/DeleteFilterTabDialog.json +#. [src.components.DeleteFilterTabDialog.71479100] +#. defaultMessage is: +#. Are you sure you want to delete {name} search tab? +msgctxt "description" +msgid "Are you sure you want to delete {name} search tab?" +msgstr "" + #: build/locale/src/products/components/ProductVariantDeleteDialog/ProductVariantDeleteDialog.json #. [src.products.components.ProductVariantDeleteDialog.2297471173] - delete product variant #. defaultMessage is: @@ -1051,6 +1123,22 @@ msgctxt "dialog header" msgid "Assign Attribute" msgstr "" +#: build/locale/src/components/AssignCategoryDialog/AssignCategoryDialog.json +#. [src.components.AssignCategoryDialog.190977792] - dialog header +#. defaultMessage is: +#. Assign Categories +msgctxt "dialog header" +msgid "Assign Categories" +msgstr "" + +#: build/locale/src/components/AssignCollectionDialog/AssignCollectionDialog.json +#. [src.components.AssignCollectionDialog.3992923611] - dialog header +#. defaultMessage is: +#. Assign Collection +msgctxt "dialog header" +msgid "Assign Collection" +msgstr "" + #: build/locale/src/discounts/components/DiscountCountrySelectDialog/DiscountCountrySelectDialog.json #. [src.discounts.components.DiscountCountrySelectDialog.1585396479] - dialog header #. defaultMessage is: @@ -1063,6 +1151,14 @@ msgctxt "dialog header" msgid "Assign Countries" msgstr "" +#: build/locale/src/components/AssignProductDialog/AssignProductDialog.json +#. [src.components.AssignProductDialog.649693468] - dialog header +#. defaultMessage is: +#. Assign Product +msgctxt "dialog header" +msgid "Assign Product" +msgstr "" + #: build/locale/src/productTypes/components/ProductTypeAttributes/ProductTypeAttributes.json #. [src.productTypes.components.ProductTypeAttributes.1656462109] - button #. defaultMessage is: @@ -1079,6 +1175,10 @@ msgctxt "button" msgid "Assign attributes" msgstr "" +#: build/locale/src/components/AssignCategoryDialog/AssignCategoryDialog.json +#. [src.components.AssignCategoryDialog.3973677075] - button +#. defaultMessage is: +#. Assign categories #: build/locale/src/discounts/components/DiscountCategories/DiscountCategories.json #. [src.discounts.components.DiscountCategories.3973677075] - button #. defaultMessage is: @@ -1087,6 +1187,10 @@ msgctxt "button" msgid "Assign categories" msgstr "" +#: build/locale/src/components/AssignCollectionDialog/AssignCollectionDialog.json +#. [src.components.AssignCollectionDialog.1035511604] - button +#. defaultMessage is: +#. Assign collections #: build/locale/src/discounts/components/DiscountCollections/DiscountCollections.json #. [src.discounts.components.DiscountCollections.1035511604] - button #. defaultMessage is: @@ -1095,6 +1199,10 @@ msgctxt "button" msgid "Assign collections" msgstr "" +#: build/locale/src/components/CountryList/CountryList.json +#. [src.components.CountryList.2747492886] - button +#. defaultMessage is: +#. Assign countries #: build/locale/src/discounts/components/DiscountCountrySelectDialog/DiscountCountrySelectDialog.json #. [src.discounts.components.DiscountCountrySelectDialog.2747492886] - button #. defaultMessage is: @@ -1115,6 +1223,10 @@ msgctxt "button" msgid "Assign product" msgstr "" +#: build/locale/src/components/AssignProductDialog/AssignProductDialog.json +#. [src.components.AssignProductDialog.2100305525] - button +#. defaultMessage is: +#. Assign products #: build/locale/src/discounts/components/DiscountProducts/DiscountProducts.json #. [src.discounts.components.DiscountProducts.2100305525] - button #. defaultMessage is: @@ -1279,6 +1391,14 @@ msgctxt "button" msgid "Back" msgstr "" +#: build/locale/src/components/ErrorPage/ErrorPage.json +#. [src.components.ErrorPage.1723676032] - button +#. defaultMessage is: +#. Back to home +msgctxt "button" +msgid "Back to home" +msgstr "" + #: build/locale/src/categories/components/CategoryBackground/CategoryBackground.json #. [src.categories.components.CategoryBackground.1849089820] - section header #. defaultMessage is: @@ -1559,6 +1679,10 @@ msgctxt "button" msgid "Choose photos" msgstr "" +#: build/locale/src/components/AddressEdit/AddressEdit.json +#. [src.components.AddressEdit.253031977] +#. defaultMessage is: +#. City #: build/locale/src/siteSettings/components/SiteSettingsAddress/SiteSettingsAddress.json #. [src.siteSettings.components.SiteSettingsAddress.253031977] #. defaultMessage is: @@ -1631,6 +1755,18 @@ msgctxt "number of collections" msgid "Collections ({quantity})" msgstr "" +#: build/locale/src/components/ColumnPicker/ColumnPickerButton.json +#. [src.components.ColumnPicker.2539195044] - select visible columns button +#. defaultMessage is: +#. Columns +msgctxt "select visible columns button" +msgid "Columns" +msgstr "" + +#: build/locale/src/components/AddressEdit/AddressEdit.json +#. [src.components.AddressEdit.3570415321] +#. defaultMessage is: +#. Company #: build/locale/src/siteSettings/components/SiteSettingsAddress/SiteSettingsAddress.json #. [src.siteSettings.components.SiteSettingsAddress.3570415321] #. defaultMessage is: @@ -1839,6 +1975,10 @@ msgctxt "country selection" msgid "Countries A to Z" msgstr "" +#: build/locale/src/components/AddressEdit/AddressEdit.json +#. [src.components.AddressEdit.1139500589] +#. defaultMessage is: +#. Country #: build/locale/src/siteSettings/components/SiteSettingsAddress/SiteSettingsAddress.json #. [src.siteSettings.components.SiteSettingsAddress.1139500589] #. defaultMessage is: @@ -1863,6 +2003,10 @@ msgctxt "description" msgid "Country Name" msgstr "" +#: build/locale/src/components/AddressEdit/AddressEdit.json +#. [src.components.AddressEdit.944851093] +#. defaultMessage is: +#. Country area #: build/locale/src/siteSettings/components/SiteSettingsAddress/SiteSettingsAddress.json #. [src.siteSettings.components.SiteSettingsAddress.944851093] #. defaultMessage is: @@ -2031,6 +2175,14 @@ msgctxt "description" msgid "Currently, there are no countries assigned to this shipping zone" msgstr "" +#: build/locale/src/components/FilterBar/FilterBar.json +#. [src.components.FilterBar.2340527467] +#. defaultMessage is: +#. Custom Filter +msgctxt "description" +msgid "Custom Filter" +msgstr "" + #: build/locale/src/orders/components/OrderCustomer/OrderCustomer.json #. [src.orders.components.OrderCustomer.3426593715] - section header #. defaultMessage is: @@ -2231,6 +2383,14 @@ msgctxt "description" msgid "Define types of products you sell" msgstr "" +#: build/locale/src/intl.json +#. [src.delete] - button +#. defaultMessage is: +#. Delete +msgctxt "button" +msgid "Delete" +msgstr "" + #: build/locale/src/customers/views/CustomerAddresses.json #. [src.customers.views.2657976015] - dialog header #. defaultMessage is: @@ -2327,6 +2487,22 @@ msgctxt "dialog header" msgid "Delete Sales" msgstr "" +#: build/locale/src/components/DeleteFilterTabDialog/DeleteFilterTabDialog.json +#. [src.components.DeleteFilterTabDialog.2173195312] - custom search delete, dialog header +#. defaultMessage is: +#. Delete Search +msgctxt "custom search delete, dialog header" +msgid "Delete Search" +msgstr "" + +#: build/locale/src/components/TableFilter/FilterChips.json +#. [src.components.TableFilter.2173195312] - button +#. defaultMessage is: +#. Delete Search +msgctxt "button" +msgid "Delete Search" +msgstr "" + #: build/locale/src/shipping/views/ShippingZoneDetails/ShippingZoneDetailsDialogs.json #. [src.shipping.views.ShippingZoneDetails.1502359905] - dialog header #. defaultMessage is: @@ -2631,6 +2807,14 @@ msgctxt "description" msgid "Discount Value" msgstr "" +#: build/locale/src/components/ErrorPage/ErrorPage.json +#. [src.components.ErrorPage.3090161573] +#. defaultMessage is: +#. Don't worry, everything is gonna be fine +msgctxt "description" +msgid "Don't worry, everything is gonna be fine" +msgstr "" + #: build/locale/src/intl.json #. [src.draftOrders] - draft orders section name #. defaultMessage is: @@ -2655,6 +2839,14 @@ msgctxt "order history message" msgid "Draft order was created" msgstr "" +#: build/locale/src/components/ImageUpload/ImageUpload.json +#. [src.components.ImageUpload.1731007575] - image upload +#. defaultMessage is: +#. Drop here to upload +msgctxt "image upload" +msgid "Drop here to upload" +msgstr "" + #: build/locale/src/attributes/components/AttributeDetails/AttributeDetails.json #. [src.attributes.components.AttributeDetails.1336738461] - product attribute type #. defaultMessage is: @@ -2767,6 +2959,14 @@ msgctxt "dialog header" msgid "Edit shipping address" msgstr "" +#: build/locale/src/components/SeoForm/SeoForm.json +#. [src.components.SeoForm.3198271020] - button +#. defaultMessage is: +#. Edit website SEO +msgctxt "button" +msgid "Edit website SEO" +msgstr "" + #: build/locale/src/discounts/components/DiscountCategories/DiscountCategories.json #. [src.discounts.components.DiscountCategories.1681512341] - section header #. defaultMessage is: @@ -2839,6 +3039,30 @@ msgctxt "description" msgid "Enter any extra infotmation regarding this customer." msgstr "" +#: build/locale/src/components/ConfirmButton/ConfirmButton.json +#. [src.components.ConfirmButton.2845142593] - button +#. defaultMessage is: +#. Error +msgctxt "button" +msgid "Error" +msgstr "" + +#: build/locale/src/components/ErrorMessageCard/ErrorMessageCard.json +#. [src.components.ErrorMessageCard.2845142593] - header +#. defaultMessage is: +#. Error +msgctxt "header" +msgid "Error" +msgstr "" + +#: build/locale/src/components/ErrorPage/ErrorPage.json +#. [src.components.ErrorPage.2845142593] +#. defaultMessage is: +#. Error +msgctxt "description" +msgid "Error" +msgstr "" + #: build/locale/src/staff/components/StaffPermissions/StaffPermissions.json #. [src.staff.components.StaffPermissions.3639008725] #. defaultMessage is: @@ -2879,6 +3103,14 @@ msgctxt "search box label" msgid "Filter Countries" msgstr "" +#: build/locale/src/components/FilterCard/FilterCard.json +#. [src.components.FilterCard.996289613] +#. defaultMessage is: +#. Filters +msgctxt "description" +msgid "Filters" +msgstr "" + #: build/locale/src/orders/components/OrderDraftFinalizeDialog/OrderDraftFinalizeDialog.json #. [src.orders.components.OrderDraftFinalizeDialog.2725265632] - button #. defaultMessage is: @@ -3035,6 +3267,14 @@ msgctxt "voucher code, button" msgid "Generate Code" msgstr "" +#: build/locale/src/components/NotFoundPage/NotFoundPage.json +#. [src.components.NotFoundPage.678743710] - button +#. defaultMessage is: +#. Go back to dashboard +msgctxt "button" +msgid "Go back to dashboard" +msgstr "" + #: build/locale/src/home/components/HomeHeader/HomeHeader.json #. [homeHeaderText] - header #. defaultMessage is: @@ -3055,6 +3295,14 @@ msgctxt "subheader" msgid "Here is some information we gathered about your store" msgstr "" +#: build/locale/src/components/VisibilityCard/VisibilityCard.json +#. [src.components.VisibilityCard.77815154] +#. defaultMessage is: +#. Hidden +msgctxt "description" +msgid "Hidden" +msgstr "" + #: build/locale/src/products/components/ProductListFilter/ProductListFilter.json #. [src.products.components.ProductListFilter.77815154] - product is hidden #. defaultMessage is: @@ -3071,6 +3319,14 @@ msgctxt "description" msgid "If empty, URL will be autogenerated from Page Name" msgstr "" +#: build/locale/src/components/SeoForm/SeoForm.json +#. [src.components.SeoForm.2378618579] +#. defaultMessage is: +#. If empty, the preview shows what will be autogenerated. +msgctxt "description" +msgid "If empty, the preview shows what will be autogenerated." +msgstr "" + #: build/locale/src/attributes/components/AttributeProperties/AttributeProperties.json #. [src.attributes.components.AttributeProperties.787251583] #. defaultMessage is: @@ -3111,6 +3367,14 @@ msgctxt "dialog header" msgid "Image Selection" msgstr "" +#: build/locale/src/components/RichTextEditor/ImageSource.json +#. [src.components.RichTextEditor.4035057905] +#. defaultMessage is: +#. Image URL +msgctxt "description" +msgid "Image URL" +msgstr "" + #: build/locale/src/products/components/ProductImages/ProductImages.json #. [src.products.components.ProductImages.3240888698] - section header #. defaultMessage is: @@ -3259,6 +3523,14 @@ msgctxt "description" msgid "Last order" msgstr "" +#: build/locale/src/components/Timeline/Timeline.json +#. [src.components.Timeline.3028189627] +#. defaultMessage is: +#. Leave your note here... +msgctxt "description" +msgid "Leave your note here..." +msgstr "" + #: build/locale/src/discounts/components/VoucherLimits/VoucherLimits.json #. [src.discounts.components.VoucherLimits.2215544659] #. defaultMessage is: @@ -3307,6 +3579,14 @@ msgctxt "order history message" msgid "Links to the order's digital goods were sent" msgstr "" +#: build/locale/src/components/AppLayout/AppLayout.json +#. [src.components.AppLayout.21332146] - button +#. defaultMessage is: +#. Log out +msgctxt "button" +msgid "Log out" +msgstr "" + #: build/locale/src/intl.json #. [src.manage] - button #. defaultMessage is: @@ -3507,6 +3787,14 @@ msgctxt "collection name" msgid "Name" msgstr "" +#: build/locale/src/components/ProductList/ProductList.json +#. [src.components.ProductList.636461959] - product +#. defaultMessage is: +#. Name +msgctxt "product" +msgid "Name" +msgstr "" + #: build/locale/src/discounts/components/SaleInfo/SaleInfo.json #. [src.discounts.components.SaleInfo.636461959] - sale name #. defaultMessage is: @@ -3735,6 +4023,14 @@ msgctxt "description" msgid "No notes from customer" msgstr "" +#: build/locale/src/components/RowNumberSelect/RowNumberSelect.json +#. [src.components.RowNumberSelect.1154361791] +#. defaultMessage is: +#. No of Rows: +msgctxt "description" +msgid "No of Rows:" +msgstr "" + #: build/locale/src/customers/components/CustomerOrders/CustomerOrders.json #. [src.customers.components.CustomerOrders.898333473] #. defaultMessage is: @@ -3787,6 +4083,10 @@ msgstr "" #. [src.collections.components.CollectionProducts.1657559629] #. defaultMessage is: #. No products found +#: build/locale/src/components/ProductList/ProductList.json +#. [src.components.ProductList.1657559629] +#. defaultMessage is: +#. No products found #: build/locale/src/discounts/components/DiscountProducts/DiscountProducts.json #. [src.discounts.components.DiscountProducts.1657559629] #. defaultMessage is: @@ -3823,6 +4123,34 @@ msgctxt "description" msgid "No reduced tax categories found" msgstr "" +#: build/locale/src/components/AutocompleteSelectMenu/AutocompleteSelectMenu.json +#. [src.components.AutocompleteSelectMenu.2332404293] +#. defaultMessage is: +#. No results +msgctxt "description" +msgid "No results" +msgstr "" + +#: build/locale/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.json +#. [src.components.MultiAutocompleteSelectField.4205644805] +#. defaultMessage is: +#. No results found +#: build/locale/src/components/MultiSelectField/MultiSelectField.json +#. [src.components.MultiSelectField.4205644805] +#. defaultMessage is: +#. No results found +#: build/locale/src/components/RadioGroupField/RadioGroupField.json +#. [src.components.RadioGroupField.4205644805] +#. defaultMessage is: +#. No results found +#: build/locale/src/components/SingleAutocompleteSelectField/SingleAutocompleteSelectField.json +#. [src.components.SingleAutocompleteSelectField.4205644805] +#. defaultMessage is: +#. No results found +#: build/locale/src/components/SingleSelectField/SingleSelectField.json +#. [src.components.SingleSelectField.4205644805] +#. defaultMessage is: +#. No results found #: build/locale/src/productTypes/components/AssignAttributeDialog/AssignAttributeDialog.json #. [src.productTypes.components.AssignAttributeDialog.4205644805] #. defaultMessage is: @@ -3971,6 +4299,14 @@ msgctxt "description" msgid "No. of Products" msgstr "" +#: build/locale/src/components/SingleAutocompleteSelectField/SingleAutocompleteSelectField.json +#. [src.components.SingleAutocompleteSelectField.3069107721] +#. defaultMessage is: +#. None +msgctxt "description" +msgid "None" +msgstr "" + #: build/locale/src/discounts/components/VoucherRequirements/VoucherRequirements.json #. [src.discounts.components.VoucherRequirements.3069107721] - voucher has no requirements #. defaultMessage is: @@ -4007,6 +4343,14 @@ msgctxt "product is not published" msgid "Not published" msgstr "" +#: build/locale/src/components/ProductList/ProductList.json +#. [src.components.ProductList.2341910657] - product status +#. defaultMessage is: +#. Not published +msgctxt "product status" +msgid "Not published" +msgstr "" + #: build/locale/src/orders/components/OrderCustomer/OrderCustomer.json #. [orderCustomerCustomerNotSet] - customer is not set in draft order #. defaultMessage is: @@ -4083,6 +4427,18 @@ msgctxt "voucher application, switch button" msgid "Only once per order" msgstr "" +#: build/locale/src/components/ErrorPage/ErrorPage.json +#. [src.components.ErrorPage.2736139139] +#. defaultMessage is: +#. Ooops!... +#: build/locale/src/components/NotFoundPage/NotFoundPage.json +#. [src.components.NotFoundPage.2736139139] +#. defaultMessage is: +#. Ooops!... +msgctxt "description" +msgid "Ooops!..." +msgstr "" + #: build/locale/src/intl.json #. [src.optionalField] - field is optional #. defaultMessage is: @@ -4447,6 +4803,10 @@ msgctxt "dialog header" msgid "Permissions" msgstr "" +#: build/locale/src/components/AddressEdit/AddressEdit.json +#. [src.components.AddressEdit.1271289966] +#. defaultMessage is: +#. Phone #: build/locale/src/siteSettings/components/SiteSettingsAddress/SiteSettingsAddress.json #. [src.siteSettings.components.SiteSettingsAddress.1271289966] #. defaultMessage is: @@ -4495,6 +4855,14 @@ msgctxt "order payment" msgid "Preauthorized amount" msgstr "" +#: build/locale/src/components/ProductList/ProductList.json +#. [src.components.ProductList.1134347598] - product +#. defaultMessage is: +#. Price +msgctxt "product" +msgid "Price" +msgstr "" + #: build/locale/src/orders/components/OrderDraftDetailsProducts/OrderDraftDetailsProducts.json #. [src.orders.components.OrderDraftDetailsProducts.1134347598] - price or ordered products #. defaultMessage is: @@ -4863,6 +5231,14 @@ msgctxt "dialog title" msgid "Publish collections" msgstr "" +#: build/locale/src/components/VisibilityCard/VisibilityCard.json +#. [src.components.VisibilityCard.2060790769] - publish on date +#. defaultMessage is: +#. Publish on +msgctxt "publish on date" +msgid "Publish on" +msgstr "" + #: build/locale/src/collections/components/CollectionList/CollectionList.json #. [src.collections.components.CollectionList.3640454975] - collection is published #. defaultMessage is: @@ -4883,14 +5259,10 @@ msgctxt "product is published" msgid "Published" msgstr "" -#: build/locale/src/pages/components/PageList/PageList.json -#. [src.pages.components.PageList.3640454975] - page status +#: build/locale/src/components/ProductList/ProductList.json +#. [src.components.ProductList.3640454975] - product status #. defaultMessage is: #. Published -msgctxt "page status" -msgid "Published" -msgstr "" - #: build/locale/src/products/components/ProductListPage/ProductListPage.json #. [src.products.components.ProductListPage.3640454975] - product status #. defaultMessage is: @@ -4899,6 +5271,14 @@ msgctxt "product status" msgid "Published" msgstr "" +#: build/locale/src/pages/components/PageList/PageList.json +#. [src.pages.components.PageList.3640454975] - page status +#. defaultMessage is: +#. Published +msgctxt "page status" +msgid "Published" +msgstr "" + #: build/locale/src/pages/views/PageList.json #. [src.pages.views.2543350562] - notification #. defaultMessage is: @@ -5107,6 +5487,22 @@ msgctxt "description" msgid "Removed sale" msgstr "" +#: build/locale/src/components/RichTextEditor/ImageEntity.json +#. [src.components.RichTextEditor.2049070632] - replace image, button +#. defaultMessage is: +#. Replace +msgctxt "replace image, button" +msgid "Replace" +msgstr "" + +#: build/locale/src/components/ColumnPicker/ColumnPickerContent.json +#. [src.components.ColumnPicker.1483881697] - button +#. defaultMessage is: +#. Reset +msgctxt "button" +msgid "Reset" +msgstr "" + #: build/locale/src/shipping/components/ShippingZoneCountriesAssignDialog/ShippingZoneCountriesAssignDialog.json #. [src.shipping.components.ShippingZoneCountriesAssignDialog.1003092716] #. defaultMessage is: @@ -5207,6 +5603,22 @@ msgctxt "button" msgid "Save" msgstr "" +#: build/locale/src/components/SaveFilterTabDialog/SaveFilterTabDialog.json +#. [src.components.SaveFilterTabDialog.1514415736] - save filter tab, header +#. defaultMessage is: +#. Save Custom Search +msgctxt "save filter tab, header" +msgid "Save Custom Search" +msgstr "" + +#: build/locale/src/components/TableFilter/FilterChips.json +#. [src.components.TableFilter.1514415736] - button +#. defaultMessage is: +#. Save Custom Search +msgctxt "button" +msgid "Save Custom Search" +msgstr "" + #: build/locale/src/products/components/ProductVariantCreatePage/ProductVariantCreatePage.json #. [src.products.components.ProductVariantCreatePage.2853608829] - button #. defaultMessage is: @@ -5231,6 +5643,22 @@ msgctxt "description" msgid "Search Attributes" msgstr "" +#: build/locale/src/components/AssignCategoryDialog/AssignCategoryDialog.json +#. [src.components.AssignCategoryDialog.1305061437] +#. defaultMessage is: +#. Search Categories +msgctxt "description" +msgid "Search Categories" +msgstr "" + +#: build/locale/src/components/AssignCollectionDialog/AssignCollectionDialog.json +#. [src.components.AssignCollectionDialog.4057224233] +#. defaultMessage is: +#. Search Collection +msgctxt "description" +msgid "Search Collection" +msgstr "" + #: build/locale/src/shipping/components/ShippingZoneCountriesAssignDialog/ShippingZoneCountriesAssignDialog.json #. [src.shipping.components.ShippingZoneCountriesAssignDialog.3510295703] #. defaultMessage is: @@ -5267,6 +5695,10 @@ msgctxt "description" msgid "Search Engine Description" msgstr "" +#: build/locale/src/components/SeoForm/SeoForm.json +#. [src.components.SeoForm.3468022343] +#. defaultMessage is: +#. Search Engine Preview #: build/locale/src/translations/components/TranslationsCategoriesPage/TranslationsCategoriesPage.json #. [src.translations.components.TranslationsCategoriesPage.3468022343] #. defaultMessage is: @@ -5307,6 +5739,14 @@ msgctxt "description" msgid "Search Engine Title" msgstr "" +#: build/locale/src/components/SaveFilterTabDialog/SaveFilterTabDialog.json +#. [src.components.SaveFilterTabDialog.1556856943] - save search tab +#. defaultMessage is: +#. Search Name +msgctxt "save search tab" +msgid "Search Name" +msgstr "" + #: build/locale/src/orders/components/OrderListPage/OrderListPage.json #. [src.orders.components.OrderListPage.355376157] #. defaultMessage is: @@ -5315,6 +5755,10 @@ msgctxt "description" msgid "Search Orders..." msgstr "" +#: build/locale/src/components/AssignProductDialog/AssignProductDialog.json +#. [src.components.AssignProductDialog.2850255786] +#. defaultMessage is: +#. Search Products #: build/locale/src/orders/components/OrderProductAddDialog/OrderProductAddDialog.json #. [src.orders.components.OrderProductAddDialog.2850255786] #. defaultMessage is: @@ -5339,6 +5783,22 @@ msgctxt "description" msgid "Search by attribute name" msgstr "" +#: build/locale/src/components/AssignCategoryDialog/AssignCategoryDialog.json +#. [src.components.AssignCategoryDialog.3690273268] +#. defaultMessage is: +#. Search by category name, etc... +msgctxt "description" +msgid "Search by category name, etc..." +msgstr "" + +#: build/locale/src/components/AssignCollectionDialog/AssignCollectionDialog.json +#. [src.components.AssignCollectionDialog.2605414502] +#. defaultMessage is: +#. Search by collection name, etc... +msgctxt "description" +msgid "Search by collection name, etc..." +msgstr "" + #: build/locale/src/discounts/components/DiscountCountrySelectDialog/DiscountCountrySelectDialog.json #. [src.discounts.components.DiscountCountrySelectDialog.2110418881] - search box placeholder #. defaultMessage is: @@ -5355,6 +5815,10 @@ msgctxt "description" msgid "Search by country name" msgstr "" +#: build/locale/src/components/AssignProductDialog/AssignProductDialog.json +#. [src.components.AssignProductDialog.2336947364] +#. defaultMessage is: +#. Search by product name, attribute, product type etc... #: build/locale/src/orders/components/OrderProductAddDialog/OrderProductAddDialog.json #. [src.orders.components.OrderProductAddDialog.2336947364] #. defaultMessage is: @@ -5363,6 +5827,22 @@ msgctxt "description" msgid "Search by product name, attribute, product type etc..." msgstr "" +#: build/locale/src/components/SeoForm/SeoForm.json +#. [src.components.SeoForm.1991321627] +#. defaultMessage is: +#. Search engine description +msgctxt "description" +msgid "Search engine description" +msgstr "" + +#: build/locale/src/components/SeoForm/SeoForm.json +#. [src.components.SeoForm.1324250412] +#. defaultMessage is: +#. Search engine title +msgctxt "description" +msgid "Search engine title" +msgstr "" + #: build/locale/src/attributes/components/AttributeList/AttributeList.json #. [src.attributes.components.AttributeList.2235596452] - attribute can be searched in dashboard #. defaultMessage is: @@ -5371,6 +5851,18 @@ msgctxt "attribute can be searched in dashboard" msgid "Searchable" msgstr "" +#: build/locale/src/components/Filter/FilterContent.json +#. [src.components.Filter.2230339185] +#. defaultMessage is: +#. Select Filter... +#: build/locale/src/components/Filter/FilterElement.json +#. [src.components.Filter.2230339185] +#. defaultMessage is: +#. Select Filter... +msgctxt "description" +msgid "Select Filter..." +msgstr "" + #: build/locale/src/products/components/ProductVariantImages/ProductVariantImages.json #. [src.products.components.ProductVariantImages.3449133076] #. defaultMessage is: @@ -5395,6 +5887,14 @@ msgctxt "description" msgid "Select all products where:" msgstr "" +#: build/locale/src/components/TableHead/TableHead.json +#. [src.components.TableHead.868570480] +#. defaultMessage is: +#. Selected {number} items +msgctxt "description" +msgid "Selected {number} items" +msgstr "" + #: build/locale/src/products/components/ProductVariantPrice/ProductVariantPrice.json #. [src.products.components.ProductVariantPrice.2238565650] #. defaultMessage is: @@ -5403,6 +5903,14 @@ msgctxt "description" msgid "Selling price override" msgstr "" +#: build/locale/src/components/Timeline/Timeline.json +#. [src.components.Timeline.1359200231] - add order note, button +#. defaultMessage is: +#. Send +msgctxt "add order note, button" +msgid "Send" +msgstr "" + #: build/locale/src/staff/components/StaffAddMemberDialog/StaffAddMemberDialog.json #. [src.staff.components.StaffAddMemberDialog.449055697] - button #. defaultMessage is: @@ -5615,6 +6123,22 @@ msgctxt "description" msgid "Some products require shipping, but no method provided" msgstr "" +#: build/locale/src/components/NotFoundPage/NotFoundPage.json +#. [src.components.NotFoundPage.4036415297] +#. defaultMessage is: +#. Something's missing +msgctxt "description" +msgid "Something's missing" +msgstr "" + +#: build/locale/src/components/NotFoundPage/NotFoundPage.json +#. [src.components.NotFoundPage.4205980614] +#. defaultMessage is: +#. Sorry, the page was not found +msgctxt "description" +msgid "Sorry, the page was not found" +msgstr "" + #: build/locale/src/orders/components/OrderListFilter/OrderListFilter.json #. [src.orders.components.OrderListFilter.789263812] #. defaultMessage is: @@ -6299,6 +6823,14 @@ msgctxt "product type" msgid "Type" msgstr "" +#: build/locale/src/components/ProductList/ProductList.json +#. [src.components.ProductList.1952810469] - product +#. defaultMessage is: +#. Type +msgctxt "product" +msgid "Type" +msgstr "" + #: build/locale/src/productTypes/components/ProductTypeList/ProductTypeList.json #. [src.productTypes.components.ProductTypeList.1952810469] - product type is either simple or configurable #. defaultMessage is: @@ -6323,6 +6855,14 @@ msgctxt "description" msgid "URL" msgstr "" +#: build/locale/src/components/RichTextEditor/LinkSource.json +#. [src.components.RichTextEditor.2925475978] +#. defaultMessage is: +#. URL Linked +msgctxt "description" +msgid "URL Linked" +msgstr "" + #: build/locale/src/siteSettings/components/SiteSettingsDetails/SiteSettingsDetails.json #. [src.siteSettings.components.SiteSettingsDetails.3808773492] #. defaultMessage is: @@ -6563,6 +7103,14 @@ msgctxt "order history message" msgid "Updated fulfillment group's tracking number" msgstr "" +#: build/locale/src/components/FileUpload/FileUpload.json +#. [src.components.FileUpload.3050254265] - upload file, button +#. defaultMessage is: +#. Upload +msgctxt "upload file, button" +msgid "Upload" +msgstr "" + #: build/locale/src/intl.json #. [src.uploadImage] - button #. defaultMessage is: @@ -6823,6 +7371,14 @@ msgctxt "description" msgid "View and update your site settings" msgstr "" +#: build/locale/src/components/VisibilityCard/VisibilityCard.json +#. [src.components.VisibilityCard.1459686496] - section header +#. defaultMessage is: +#. Visibility +msgctxt "section header" +msgid "Visibility" +msgstr "" + #: build/locale/src/pages/components/PageList/PageList.json #. [src.pages.components.PageList.1459686496] - page status #. defaultMessage is: @@ -6847,6 +7403,14 @@ msgctxt "attribute is visible" msgid "Visible" msgstr "" +#: build/locale/src/components/VisibilityCard/VisibilityCard.json +#. [src.components.VisibilityCard.643174786] +#. defaultMessage is: +#. Visible +msgctxt "description" +msgid "Visible" +msgstr "" + #: build/locale/src/products/components/ProductListFilter/ProductListFilter.json #. [src.products.components.ProductListFilter.643174786] - product is visible #. defaultMessage is: @@ -6919,6 +7483,14 @@ msgctxt "description" msgid "Vouchers" msgstr "" +#: build/locale/src/components/ErrorPage/ErrorPage.json +#. [src.components.ErrorPage.3182212440] +#. defaultMessage is: +#. We've encountered a problem... +msgctxt "description" +msgid "We've encountered a problem..." +msgstr "" + #: build/locale/src/productTypes/components/ProductTypeShipping/ProductTypeShipping.json #. [src.productTypes.components.ProductTypeShipping.746695941] #. defaultMessage is: @@ -6951,6 +7523,10 @@ msgctxt "order weight range" msgid "Weight range" msgstr "" +#: build/locale/src/components/AddressEdit/AddressEdit.json +#. [src.components.AddressEdit.2965971965] +#. defaultMessage is: +#. ZIP / Postal code #: build/locale/src/siteSettings/components/SiteSettingsAddress/SiteSettingsAddress.json #. [src.siteSettings.components.SiteSettingsAddress.2965971965] #. defaultMessage is: @@ -6991,6 +7567,30 @@ msgctxt "product price" msgid "equals" msgstr "" +#: build/locale/src/components/Filter/FilterElement.json +#. [src.components.Filter.2755325844] +#. defaultMessage is: +#. from +msgctxt "description" +msgid "from" +msgstr "" + +#: build/locale/src/components/MoneyRange/MoneyRange.json +#. [src.components.MoneyRange.3729849657] - money +#. defaultMessage is: +#. from {money} +msgctxt "money" +msgid "from {money}" +msgstr "" + +#: build/locale/src/components/WeightRange/WeightRange.json +#. [src.components.WeightRange.4256193688] - weight +#. defaultMessage is: +#. from {value} {unit} +msgctxt "weight" +msgid "from {value} {unit}" +msgstr "" + #: build/locale/src/orders/components/OrderListFilter/OrderListFilter.json #. [src.orders.components.OrderListFilter.1438173764] - date is set as #. defaultMessage is: @@ -7015,6 +7615,46 @@ msgctxt "dialog header" msgid "remove Staff User" msgstr "" +#: build/locale/src/components/VisibilityCard/VisibilityCard.json +#. [src.components.VisibilityCard.1815688500] +#. defaultMessage is: +#. since {date} +msgctxt "description" +msgid "since {date}" +msgstr "" + +#: build/locale/src/components/Filter/FilterElement.json +#. [src.components.Filter.152217691] +#. defaultMessage is: +#. to +msgctxt "description" +msgid "to" +msgstr "" + +#: build/locale/src/components/MoneyRange/MoneyRange.json +#. [src.components.MoneyRange.12301532] - money +#. defaultMessage is: +#. to {money} +msgctxt "money" +msgid "to {money}" +msgstr "" + +#: build/locale/src/components/WeightRange/WeightRange.json +#. [src.components.WeightRange.264731940] - weight +#. defaultMessage is: +#. to {value} {unit} +msgctxt "weight" +msgid "to {value} {unit}" +msgstr "" + +#: build/locale/src/components/VisibilityCard/VisibilityCard.json +#. [src.components.VisibilityCard.2001551496] +#. defaultMessage is: +#. will be visible from {date} +msgctxt "description" +msgid "will be visible from {date}" +msgstr "" + #: build/locale/src/home/components/HomeProductListCard/HomeProductListCard.json #. [homeProductListCardOrders] - number of ordered products #. defaultMessage is: @@ -7055,6 +7695,22 @@ msgctxt "translation progress" msgid "{current} of {max}" msgstr "" +#: build/locale/src/components/MoneyRange/MoneyRange.json +#. [src.components.MoneyRange.1316359951] - money +#. defaultMessage is: +#. {fromMoney} - {toMoney} +msgctxt "money" +msgid "{fromMoney} - {toMoney}" +msgstr "" + +#: build/locale/src/components/WeightRange/WeightRange.json +#. [src.components.WeightRange.2892071052] - weight +#. defaultMessage is: +#. {fromValue} {fromUnit} - {toValue} {toUnit} +msgctxt "weight" +msgid "{fromValue} {fromUnit} - {toValue} {toUnit}" +msgstr "" + #: build/locale/src/customers/components/CustomerAddressListPage/CustomerAddressListPage.json #. [src.customers.components.CustomerAddressListPage.489918044] - customer details, header #. defaultMessage is: @@ -7071,6 +7727,14 @@ msgctxt "customer's address book, header" msgid "{fullName}'s Address Book" msgstr "" +#: build/locale/src/components/LanguageSwitch/LanguageSwitch.json +#. [src.components.LanguageSwitch.4150219184] - button +#. defaultMessage is: +#. {languageName} - {languageCode} +msgctxt "button" +msgid "{languageName} - {languageCode}" +msgstr "" + #: build/locale/src/translations/components/TranslationFields/TranslationFields.json #. [src.translations.components.TranslationFields.282734765] #. defaultMessage is: @@ -7079,6 +7743,22 @@ msgctxt "description" msgid "{numberOFields} Translations, {numberOfTranslatedFields} Completed" msgstr "" +#: build/locale/src/components/SeoForm/SeoForm.json +#. [src.components.SeoForm.3877274856] - character limit +#. defaultMessage is: +#. {numberOfCharacters} of {maxCharacters} characters +msgctxt "character limit" +msgid "{numberOfCharacters} of {maxCharacters} characters" +msgstr "" + +#: build/locale/src/components/ColumnPicker/ColumnPickerContent.json +#. [src.components.ColumnPicker.2715399461] - pick columns to display +#. defaultMessage is: +#. {numberOfSelected} columns selected out of {numberOfTotal} +msgctxt "pick columns to display" +msgid "{numberOfSelected} columns selected out of {numberOfTotal}" +msgstr "" + #: build/locale/src/products/components/ProductAttributes/ProductAttributes.json #. [src.products.components.ProductAttributes.1071548120] - number of product attributes #. defaultMessage is: @@ -7087,6 +7767,14 @@ msgctxt "number of product attributes" msgid "{number} Attributes" msgstr "" +#: build/locale/src/components/CountryList/CountryList.json +#. [src.components.CountryList.2460766407] - number of countries +#. defaultMessage is: +#. {number} Countries +msgctxt "number of countries" +msgid "{number} Countries" +msgstr "" + #: build/locale/src/orders/components/OrderPayment/OrderPayment.json #. [src.orders.components.OrderPayment.2183023165] - ordered products #. defaultMessage is: @@ -7094,3 +7782,11 @@ msgstr "" msgctxt "ordered products" msgid "{quantity} items" msgstr "" + +#: build/locale/src/components/Weight/Weight.json +#. [src.components.Weight.2781622322] - weight +#. defaultMessage is: +#. {value} {unit} +msgctxt "weight" +msgid "{value} {unit}" +msgstr "" diff --git a/src/components/ActionDialog/ActionDialog.tsx b/src/components/ActionDialog/ActionDialog.tsx index 3a5df3a46..9ae6807a6 100644 --- a/src/components/ActionDialog/ActionDialog.tsx +++ b/src/components/ActionDialog/ActionDialog.tsx @@ -11,8 +11,9 @@ import { } from "@material-ui/core/styles"; import classNames from "classnames"; import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; -import i18n from "../../i18n"; +import { buttonMessages } from "@saleor/intl"; import ConfirmButton, { ConfirmButtonTransitionState } from "../ConfirmButton/ConfirmButton"; @@ -50,31 +51,35 @@ const ActionDialog = withStyles(styles, { name: "ActionDialog" })( variant, onConfirm, onClose - }: ActionDialogProps) => ( - - {title} - {children} - - - - {confirmButtonLabel || - (variant === "delete" - ? i18n.t("Delete", { context: "button" }) - : i18n.t("Confirm", { context: "button" }))} - - - - ) + }: ActionDialogProps) => { + const intl = useIntl(); + + return ( + + {title} + {children} + + + + {confirmButtonLabel || + (variant === "delete" + ? intl.formatMessage(buttonMessages.delete) + : intl.formatMessage(buttonMessages.confirm))} + + + + ); + } ); ActionDialog.displayName = "ActionDialog"; export default ActionDialog; diff --git a/src/components/AddressEdit/AddressEdit.tsx b/src/components/AddressEdit/AddressEdit.tsx index 7960d3180..cd62da230 100644 --- a/src/components/AddressEdit/AddressEdit.tsx +++ b/src/components/AddressEdit/AddressEdit.tsx @@ -6,9 +6,10 @@ import { } from "@material-ui/core/styles"; import TextField from "@material-ui/core/TextField"; import React from "react"; +import { useIntl } from "react-intl"; import { AddressTypeInput } from "@saleor/customers/types"; -import i18n from "@saleor/i18n"; +import { commonMessages } from "@saleor/intl"; import { FormErrors } from "@saleor/types"; import FormSpacer from "../FormSpacer"; import SingleAutocompleteSelectField, { @@ -44,144 +45,164 @@ const AddressEdit = withStyles(styles, { name: "AddressEdit" })( errors, onChange, onCountryChange - }: AddressEditProps) => ( - <> -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - - - - -
-
- -
-
- -
-
+ }: AddressEditProps) => { + const intl = useIntl(); - -
-
- + return ( + <> +
+
+ +
+
+ +
-
- + +
+
+ +
+
+ +
-
- - ) + + + + + +
+
+ +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ + ); + } ); AddressEdit.displayName = "AddressEdit"; export default AddressEdit; diff --git a/src/components/AppLayout/AppLayout.tsx b/src/components/AppLayout/AppLayout.tsx index 68bd40eca..e1d51819c 100644 --- a/src/components/AppLayout/AppLayout.tsx +++ b/src/components/AppLayout/AppLayout.tsx @@ -17,6 +17,7 @@ import { import classNames from "classnames"; import React from "react"; import SVG from "react-inlinesvg"; +import { FormattedMessage } from "react-intl"; import { RouteComponentProps, withRouter } from "react-router"; import saleorDarkLogoSmall from "@assets/images/logo-dark-small.svg"; @@ -27,7 +28,6 @@ import useLocalStorage from "@saleor/hooks/useLocalStorage"; import useNavigator from "@saleor/hooks/useNavigator"; import useTheme from "@saleor/hooks/useTheme"; import useUser from "@saleor/hooks/useUser"; -import i18n from "@saleor/i18n"; import ArrowDropdown from "@saleor/icons/ArrowDropdown"; import Container from "../Container"; import AppActionContext from "./AppActionContext"; @@ -430,9 +430,10 @@ const AppLayout = withStyles(styles, { className={classes.userMenuItem} onClick={handleLogout} > - {i18n.t("Log out", { - context: "button" - })} + diff --git a/src/components/AssignCategoryDialog/AssignCategoryDialog.tsx b/src/components/AssignCategoryDialog/AssignCategoryDialog.tsx index b8504b729..a6e76df8a 100644 --- a/src/components/AssignCategoryDialog/AssignCategoryDialog.tsx +++ b/src/components/AssignCategoryDialog/AssignCategoryDialog.tsx @@ -11,14 +11,15 @@ import TableCell from "@material-ui/core/TableCell"; import TableRow from "@material-ui/core/TableRow"; import TextField from "@material-ui/core/TextField"; import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; import ConfirmButton, { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton"; import FormSpacer from "@saleor/components/FormSpacer"; import useSearchQuery from "@saleor/hooks/useSearchQuery"; +import { buttonMessages } from "@saleor/intl"; import { SearchCategories_categories_edges_node } from "../../containers/SearchCategories/types/SearchCategories"; -import i18n from "../../i18n"; import Checkbox from "../Checkbox"; export interface FormData { @@ -85,6 +86,7 @@ const AssignCategoriesDialog = withStyles(styles, { onFetch, onSubmit }: AssignCategoriesDialogProps) => { + const intl = useIntl(); const [query, onQueryChange] = useSearchQuery(onFetch); const [selectedCategories, setSelectedCategories] = React.useState< SearchCategories_categories_edges_node[] @@ -100,17 +102,22 @@ const AssignCategoriesDialog = withStyles(styles, { fullWidth maxWidth="sm" > - {i18n.t("Assign Categories")} + + + - {i18n.t("Assign categories", { context: "button" })} + diff --git a/src/components/AssignCollectionDialog/AssignCollectionDialog.tsx b/src/components/AssignCollectionDialog/AssignCollectionDialog.tsx index a8e316a4a..388ae5a7b 100644 --- a/src/components/AssignCollectionDialog/AssignCollectionDialog.tsx +++ b/src/components/AssignCollectionDialog/AssignCollectionDialog.tsx @@ -11,9 +11,10 @@ import TableCell from "@material-ui/core/TableCell"; import TableRow from "@material-ui/core/TableRow"; import TextField from "@material-ui/core/TextField"; import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; import useSearchQuery from "@saleor/hooks/useSearchQuery"; -import i18n from "@saleor/i18n"; +import { buttonMessages } from "@saleor/intl"; import { SearchCollections_collections_edges_node } from "../../containers/SearchCollections/types/SearchCollections"; import Checkbox from "../Checkbox"; import ConfirmButton, { @@ -85,6 +86,7 @@ const AssignCollectionDialog = withStyles(styles, { onFetch, onSubmit }: AssignCollectionDialogProps) => { + const intl = useIntl(); const [query, onQueryChange] = useSearchQuery(onFetch); const [selectedCollections, setSelectedCollections] = React.useState< SearchCollections_collections_edges_node[] @@ -100,17 +102,22 @@ const AssignCollectionDialog = withStyles(styles, { fullWidth maxWidth="sm" > - {i18n.t("Assign Collection")} + + + - {i18n.t("Assign collections", { context: "button" })} + diff --git a/src/components/AssignProductDialog/AssignProductDialog.tsx b/src/components/AssignProductDialog/AssignProductDialog.tsx index 8e3bdfddf..255741583 100644 --- a/src/components/AssignProductDialog/AssignProductDialog.tsx +++ b/src/components/AssignProductDialog/AssignProductDialog.tsx @@ -11,6 +11,7 @@ import TableCell from "@material-ui/core/TableCell"; import TableRow from "@material-ui/core/TableRow"; import TextField from "@material-ui/core/TextField"; import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; import ConfirmButton, { ConfirmButtonTransitionState @@ -18,7 +19,7 @@ import ConfirmButton, { import FormSpacer from "@saleor/components/FormSpacer"; import TableCellAvatar from "@saleor/components/TableCellAvatar"; import useSearchQuery from "@saleor/hooks/useSearchQuery"; -import i18n from "@saleor/i18n"; +import { buttonMessages } from "@saleor/intl"; import { maybe } from "@saleor/misc"; import { SearchProducts_products_edges_node } from "../../containers/SearchProducts/types/SearchProducts"; import Checkbox from "../Checkbox"; @@ -88,6 +89,7 @@ const AssignProductDialog = withStyles(styles, { onFetch, onSubmit }: AssignProductDialogProps & WithStyles) => { + const intl = useIntl(); const [query, onQueryChange] = useSearchQuery(onFetch); const [selectedProducts, setSelectedProducts] = React.useState< SearchProducts_products_edges_node[] @@ -103,21 +105,24 @@ const AssignProductDialog = withStyles(styles, { fullWidth maxWidth="sm" > - {i18n.t("Assign Product")} + + + - {i18n.t("Assign products", { context: "button" })} + diff --git a/src/components/AutocompleteSelectMenu/AutocompleteSelectMenu.tsx b/src/components/AutocompleteSelectMenu/AutocompleteSelectMenu.tsx index 20a458e5f..209128e4e 100644 --- a/src/components/AutocompleteSelectMenu/AutocompleteSelectMenu.tsx +++ b/src/components/AutocompleteSelectMenu/AutocompleteSelectMenu.tsx @@ -11,8 +11,9 @@ import TextField from "@material-ui/core/TextField"; import ArrowBack from "@material-ui/icons/ArrowBack"; import Downshift from "downshift"; import React from "react"; +import { FormattedMessage } from "react-intl"; -import i18n from "../../i18n"; +import { buttonMessages } from "@saleor/intl"; import { getMenuItemByPath, IMenu, @@ -153,7 +154,7 @@ const AutocompleteSelectMenu = withStyles(styles, { } > - {i18n.t("Back")} + )} {(menuPath.length @@ -176,7 +177,7 @@ const AutocompleteSelectMenu = withStyles(styles, { ) : ( - {i18n.t("No results")} + )} diff --git a/src/components/ColumnPicker/ColumnPickerButton.tsx b/src/components/ColumnPicker/ColumnPickerButton.tsx index bdd7dde47..b57b8991e 100644 --- a/src/components/ColumnPicker/ColumnPickerButton.tsx +++ b/src/components/ColumnPicker/ColumnPickerButton.tsx @@ -5,8 +5,7 @@ import ArrowDropDownIcon from "@material-ui/icons/ArrowDropDown"; import makeStyles from "@material-ui/styles/makeStyles"; import classNames from "classnames"; import React from "react"; - -import i18n from "@saleor/i18n"; +import { FormattedMessage } from "react-intl"; interface ColumnPickerButtonProps { active: boolean; @@ -51,9 +50,10 @@ const ColumnPickerButton: React.FC = props => { onClick={onClick} variant="outlined" > - {i18n.t("Columns", { - context: "select visible columns button" - })} + = props => { - {i18n.t( - "{{ numberOfSelected }} columns selected out of {{ numberOfTotal }}", - { - context: "pick columns to display", +
@@ -109,14 +110,14 @@ const ColumnPickerContent: React.FC = props => { >
diff --git a/src/components/ConfirmButton/ConfirmButton.tsx b/src/components/ConfirmButton/ConfirmButton.tsx index 07185213a..e105eafbc 100644 --- a/src/components/ConfirmButton/ConfirmButton.tsx +++ b/src/components/ConfirmButton/ConfirmButton.tsx @@ -8,10 +8,10 @@ import { WithStyles } from "@material-ui/core/styles"; import CheckIcon from "@material-ui/icons/Check"; +import { buttonMessages } from "@saleor/intl"; import classNames from "classnames"; import React from "react"; - -import i18n from "../../i18n"; +import { FormattedMessage } from "react-intl"; export type ConfirmButtonTransitionState = | "loading" @@ -170,14 +170,11 @@ const ConfirmButton = withStyles(styles)( displayCompletedActionState })} > - {transitionState === "error" && displayCompletedActionState - ? i18n.t("Error", { - context: "button" - }) - : children || - i18n.t("Confirm", { - context: "button" - })} + {transitionState === "error" && displayCompletedActionState ? ( + + ) : ( + children || + )} ); diff --git a/src/components/CountryList/CountryList.tsx b/src/components/CountryList/CountryList.tsx index ff0893a96..f7fe18a79 100644 --- a/src/components/CountryList/CountryList.tsx +++ b/src/components/CountryList/CountryList.tsx @@ -16,10 +16,10 @@ import ArrowDropDownIcon from "@material-ui/icons/ArrowDropDown"; import DeleteIcon from "@material-ui/icons/Delete"; import classNames from "classnames"; import React from "react"; +import { FormattedMessage } from "react-intl"; import CardTitle from "@saleor/components/CardTitle"; import Skeleton from "@saleor/components/Skeleton"; -import i18n from "../../i18n"; import { maybe, renderCollection } from "../../misc"; import { CountryFragment } from "../../taxes/types/CountryFragment"; @@ -99,7 +99,10 @@ const CountryList = withStyles(styles, { title={title} toolbar={ } /> @@ -110,10 +113,13 @@ const CountryList = withStyles(styles, { - {i18n.t("{{ number }} Countries", { - context: "number of countries", - number: maybe(() => countries.length.toString(), "...") - })} + countries.length.toString(), "...") + }} + /> = ({ onSubmit, open, tabName -}) => ( - - {{ name }} search tab?", - { - name: tabName - } - ) - }} - /> - -); +}) => { + const intl = useIntl(); + + return ( + + + {tabName} + }} + /> + + + ); +}; DeleteFilterTabDialog.displayName = "DeleteFilterTabDialog"; export default DeleteFilterTabDialog; diff --git a/src/components/ErrorMessageCard/ErrorMessageCard.tsx b/src/components/ErrorMessageCard/ErrorMessageCard.tsx index f3d4ed6ab..5912d20d4 100644 --- a/src/components/ErrorMessageCard/ErrorMessageCard.tsx +++ b/src/components/ErrorMessageCard/ErrorMessageCard.tsx @@ -2,9 +2,7 @@ import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; import Typography from "@material-ui/core/Typography"; import React from "react"; - -import i18n from "../../i18n"; - +import { FormattedMessage } from "react-intl"; interface ErrorMessageCardProps { message: string; } @@ -15,7 +13,7 @@ const ErrorMessageCard: React.StatelessComponent = ({ - {i18n.t("Error", { context: "title" })} + {message} diff --git a/src/components/ErrorPage/ErrorPage.tsx b/src/components/ErrorPage/ErrorPage.tsx index 485cc22d9..38b374c22 100644 --- a/src/components/ErrorPage/ErrorPage.tsx +++ b/src/components/ErrorPage/ErrorPage.tsx @@ -8,9 +8,9 @@ import { import Typography from "@material-ui/core/Typography"; import React from "react"; import SVG from "react-inlinesvg"; +import { FormattedMessage } from "react-intl"; import notFoundImage from "@assets/images/what.svg"; -import i18n from "../../i18n"; export interface ErrorPageProps extends WithStyles { onBack: () => void; @@ -68,14 +68,16 @@ const ErrorPage = withStyles(styles, { name: "NotFoundPage" })(
- {i18n.t("Ooops!...")} + - {i18n.t("Error")} + - {i18n.t("We've encountered a problem...")} - {i18n.t("Don't worry, everything is gonna be fine")} + + + +
@@ -85,7 +87,10 @@ const ErrorPage = withStyles(styles, { name: "NotFoundPage" })( variant="contained" onClick={onBack} > - {i18n.t("Back to home", { context: "button" })} +
diff --git a/src/components/FileUpload/FileUpload.tsx b/src/components/FileUpload/FileUpload.tsx index 6d07f8fa4..6c71f53f7 100644 --- a/src/components/FileUpload/FileUpload.tsx +++ b/src/components/FileUpload/FileUpload.tsx @@ -2,7 +2,7 @@ import Button from "@material-ui/core/Button"; import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import TextField from "@material-ui/core/TextField"; import React from "react"; -import i18n from "../../i18n"; +import { FormattedMessage } from "react-intl"; const styles = createStyles({ fileUploadField: { @@ -42,7 +42,10 @@ const FileUpload = withStyles(styles, { name: "FileUpload" })( value={value} />
) diff --git a/src/components/Filter/Filter.tsx b/src/components/Filter/Filter.tsx index fa32d49ae..a68e682df 100644 --- a/src/components/Filter/Filter.tsx +++ b/src/components/Filter/Filter.tsx @@ -13,9 +13,9 @@ import Typography from "@material-ui/core/Typography"; import ArrowDropDownIcon from "@material-ui/icons/ArrowDropDown"; import classNames from "classnames"; import React from "react"; +import { FormattedMessage } from "react-intl"; import { FilterContent } from "."; -import i18n from "../../i18n"; import { FilterContentSubmitData } from "./FilterContent"; import { IFilter } from "./types"; @@ -103,7 +103,10 @@ const Filter = withStyles(styles, { name: "Filter" })( onClick={() => setFilterMenuOpened(!isFilterMenuOpened)} > - {i18n.t("Add Filter")} + = ({ filters, onSubmit }) => { + const intl = useIntl(); const [menuValue, setMenuValue] = React.useState(""); const [filterValue, setFilterValue] = React.useState(""); const classes = useStyles({}); @@ -72,7 +73,9 @@ const FilterContent: React.FC = ({ } }} value={menus ? menus[0].value : menuValue} - placeholder={i18n.t("Select Filter...")} + placeholder={intl.formatMessage({ + defaultMessage: "Select Filter..." + })} /> {menus && menus.map( @@ -95,7 +98,9 @@ const FilterContent: React.FC = ({ ? menuValue : menus[filterItemIndex - 1].label.toString() } - placeholder={i18n.t("Select Filter...")} + placeholder={intl.formatMessage({ + defaultMessage: "Select Filter..." + })} /> ) @@ -124,7 +129,10 @@ const FilterContent: React.FC = ({ }) } > - {i18n.t("Add filter")} + )} diff --git a/src/components/Filter/FilterElement.tsx b/src/components/Filter/FilterElement.tsx index e9735d5a0..da4e1d8f6 100644 --- a/src/components/Filter/FilterElement.tsx +++ b/src/components/Filter/FilterElement.tsx @@ -2,8 +2,8 @@ import TextField from "@material-ui/core/TextField"; import Typography from "@material-ui/core/Typography"; import { makeStyles } from "@material-ui/styles"; import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; -import i18n from "../../i18n"; import Calendar from "../../icons/Calendar"; import FormSpacer from "../FormSpacer"; import PriceField from "../PriceField"; @@ -41,6 +41,7 @@ const FilterElement: React.FC = ({ onChange, value }) => { + const intl = useIntl(); const classes = useStyles({}); if (filter.data.type === FieldType.date) { @@ -62,7 +63,9 @@ const FilterElement: React.FC = ({ } else if (filter.data.type === FieldType.rangeDate) { return ( <> - {i18n.t("from")} + + + = ({ }} /> - {i18n.t("to")} + + + = ({ } else if (filter.data.type === FieldType.range) { return ( <> - {i18n.t("from")} + + + = ({ }} /> - {i18n.t("to")} + + + = ({ } else if (filter.data.type === FieldType.rangePrice) { return ( <> - {i18n.t("from")} + + + = ({ }} /> - {i18n.t("to")} + + + = ({ } }} value={value as string} - placeholder={i18n.t("Select Filter...")} + placeholder={intl.formatMessage({ + defaultMessage: "Select Filter..." + })} onChange={event => onChange(event.target.value)} /> ); diff --git a/src/components/FilterBar/FilterBar.tsx b/src/components/FilterBar/FilterBar.tsx index f5adc696d..7f81046c5 100644 --- a/src/components/FilterBar/FilterBar.tsx +++ b/src/components/FilterBar/FilterBar.tsx @@ -1,6 +1,6 @@ import React from "react"; +import { useIntl } from "react-intl"; -import i18n from "../../i18n"; import { FilterProps } from "../../types"; import Debounce from "../Debounce"; import { IFilter } from "../Filter/types"; @@ -28,6 +28,7 @@ const FilterBar: React.FC = ({ onTabChange, onFilterDelete }) => { + const intl = useIntl(); const [search, setSearch] = React.useState(initialSearch); React.useEffect(() => setSearch(initialSearch), [currentTab, initialSearch]); @@ -47,7 +48,9 @@ const FilterBar: React.FC = ({ {isCustom && ( undefined} - label={i18n.t("Custom Filter")} + label={intl.formatMessage({ + defaultMessage: "Custom Filter" + })} /> )} diff --git a/src/components/FilterCard/FilterCard.tsx b/src/components/FilterCard/FilterCard.tsx index 30d18c6a8..25d150874 100644 --- a/src/components/FilterCard/FilterCard.tsx +++ b/src/components/FilterCard/FilterCard.tsx @@ -4,8 +4,7 @@ import CardHeader from "@material-ui/core/CardHeader"; import IconButton from "@material-ui/core/IconButton"; import RefreshIcon from "@material-ui/icons/Refresh"; import React from "react"; - -import i18n from "../../i18n"; +import { useIntl } from "react-intl"; export interface FilterCardProps { handleClear(); @@ -14,20 +13,26 @@ export interface FilterCardProps { const FilterCard: React.StatelessComponent = ({ children, handleClear -}) => ( - -
- - - - } - title={i18n.t("Filters")} - /> - {children} - -
-); +}) => { + const intl = useIntl(); + + return ( + +
+ + + + } + title={intl.formatMessage({ + defaultMessage: "Filters" + })} + /> + {children} + +
+ ); +}; FilterCard.displayName = "FilterCard"; export default FilterCard; diff --git a/src/components/ImageUpload/ImageUpload.tsx b/src/components/ImageUpload/ImageUpload.tsx index 92ae65717..431b96186 100644 --- a/src/components/ImageUpload/ImageUpload.tsx +++ b/src/components/ImageUpload/ImageUpload.tsx @@ -8,8 +8,7 @@ import { fade } from "@material-ui/core/styles/colorManipulator"; import Typography from "@material-ui/core/Typography"; import classNames from "classnames"; import React from "react"; - -import i18n from "../../i18n"; +import { FormattedMessage } from "react-intl"; import ImageIcon from "../../icons/Image"; import Dropzone from "../Dropzone"; @@ -95,9 +94,10 @@ export const ImageUpload = withStyles(styles, { name: "ImageUpload" })( - {i18n.t("Drop here to upload", { - context: "image upload" - })} +
diff --git a/src/components/LanguageSwitch/LanguageSwitch.tsx b/src/components/LanguageSwitch/LanguageSwitch.tsx index c0aa61af2..fb0396797 100644 --- a/src/components/LanguageSwitch/LanguageSwitch.tsx +++ b/src/components/LanguageSwitch/LanguageSwitch.tsx @@ -15,8 +15,8 @@ import Typography from "@material-ui/core/Typography"; import ArrowDropDown from "@material-ui/icons/ArrowDropDown"; import classNames from "classnames"; import React from "react"; +import { FormattedMessage } from "react-intl"; -import i18n from "../../i18n"; import { LanguageCodeEnum } from "../../types/globalTypes"; import { ShopInfo_shop_languages } from "../Shop/types/ShopInfo"; @@ -110,11 +110,14 @@ const LanguageSwitch = withStyles(styles, { name: "LanguageSwitch" })( onLanguageChange(lang.code); }} > - {i18n.t("{{ languageName }} - {{ languageCode }}", { - context: "button", - languageCode: lang.code, - languageName: lang.language - })} + ))} diff --git a/src/components/ListField/ListField.tsx b/src/components/ListField/ListField.tsx index ff05b84b6..7dee20c3a 100644 --- a/src/components/ListField/ListField.tsx +++ b/src/components/ListField/ListField.tsx @@ -8,7 +8,8 @@ import { } from "@material-ui/core/styles"; import TextField, { StandardTextFieldProps } from "@material-ui/core/TextField"; import React from "react"; -import i18n from "../../i18n"; +import { FormattedMessage } from "react-intl"; + import Chip from "../Chip"; interface ListFieldState { @@ -105,7 +106,7 @@ const ListField = withStyles(styles)( color="primary" onClick={this.handleValueAdd} > - {i18n.t("Add", { context: "button" })} + ) }} diff --git a/src/components/MoneyRange/MoneyRange.tsx b/src/components/MoneyRange/MoneyRange.tsx index afcb8a564..0b4a6d12f 100644 --- a/src/components/MoneyRange/MoneyRange.tsx +++ b/src/components/MoneyRange/MoneyRange.tsx @@ -1,6 +1,5 @@ import React from "react"; - -import i18n from "../../i18n"; +import { useIntl } from "react-intl"; import { LocaleConsumer } from "../Locale"; import IMoney from "../Money"; @@ -18,29 +17,48 @@ const formatMoney = (money: IMoney, locale: string) => export const MoneyRange: React.StatelessComponent = ({ from, to -}) => ( - - {locale => - from && to - ? i18n.t("{{ fromMoney }} - {{ toMoney }}", { - context: "money", - fromMoney: formatMoney(from, locale), - toMoney: formatMoney(to, locale) - }) - : from && !to - ? i18n.t("from {{ money }}", { - context: "money", - money: formatMoney(from, locale) - }) - : !from && to - ? i18n.t("to {{ money }}", { - context: "money", - money: formatMoney(to, locale) - }) - : "-" - } - -); +}) => { + const intl = useIntl(); + + return ( + + {locale => + from && to + ? intl.formatMessage( + { + defaultMessage: "{fromMoney} - {toMoney}", + description: "money" + }, + { + fromMoney: formatMoney(from, locale), + toMoney: formatMoney(to, locale) + } + ) + : from && !to + ? intl.formatMessage( + { + defaultMessage: "from {money}", + description: "money" + }, + { + money: formatMoney(from, locale) + } + ) + : !from && to + ? intl.formatMessage( + { + defaultMessage: "to {money}", + description: "money" + }, + { + money: formatMoney(to, locale) + } + ) + : "-" + } + + ); +}; MoneyRange.displayName = "MoneyRange"; export default MoneyRange; diff --git a/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.tsx b/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.tsx index 66a46f145..7215ec83a 100644 --- a/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.tsx +++ b/src/components/MultiAutocompleteSelectField/MultiAutocompleteSelectField.tsx @@ -13,12 +13,12 @@ import Typography from "@material-ui/core/Typography"; import CloseIcon from "@material-ui/icons/Close"; import Downshift, { ControllerStateAndHelpers } from "downshift"; import React from "react"; +import { FormattedMessage } from "react-intl"; import { compareTwoStrings } from "string-similarity"; import { fade } from "@material-ui/core/styles/colorManipulator"; import Checkbox from "@saleor/components/Checkbox"; import Debounce, { DebounceProps } from "@saleor/components/Debounce"; -import i18n from "@saleor/i18n"; import ArrowDropdownIcon from "@saleor/icons/ArrowDropdown"; import Hr from "../Hr"; @@ -244,10 +244,13 @@ export const MultiAutocompleteSelectFieldComponent = withStyles(styles, { data-tc="multiautocomplete-select-option" > - {i18n.t("Add new value: {{ value }}", { - context: "add custom option", - value: inputValue - })} + )} @@ -259,7 +262,7 @@ export const MultiAutocompleteSelectFieldComponent = withStyles(styles, { component="div" data-tc="multiautocomplete-select-no-options" > - {i18n.t("No results found")} + ) )} diff --git a/src/components/MultiSelectField/MultiSelectField.tsx b/src/components/MultiSelectField/MultiSelectField.tsx index 5fdda787c..5bf3743c1 100644 --- a/src/components/MultiSelectField/MultiSelectField.tsx +++ b/src/components/MultiSelectField/MultiSelectField.tsx @@ -11,8 +11,8 @@ import { WithStyles } from "@material-ui/core/styles"; import React from "react"; +import { FormattedMessage } from "react-intl"; -import i18n from "../../i18n"; import Checkbox from "../Checkbox"; const styles = (theme: Theme) => @@ -110,7 +110,9 @@ export const MultiSelectField = withStyles(styles, { ); }) ) : ( - {i18n.t("No results found")} + + + )} {hint && {hint}} diff --git a/src/components/NotFoundPage/NotFoundPage.tsx b/src/components/NotFoundPage/NotFoundPage.tsx index 236e905a0..cac5306bc 100644 --- a/src/components/NotFoundPage/NotFoundPage.tsx +++ b/src/components/NotFoundPage/NotFoundPage.tsx @@ -8,9 +8,9 @@ import { import Typography from "@material-ui/core/Typography"; import React from "react"; import SVG from "react-inlinesvg"; +import { FormattedMessage } from "react-intl"; import notFoundImage from "@assets/images/not-found-404.svg"; -import i18n from "@saleor/i18n"; const styles = (theme: Theme) => createStyles({ @@ -65,12 +65,14 @@ const NotFoundPage = withStyles(styles, { name: "NotFoundPage" })(
- {i18n.t("Ooops!...")} + - {i18n.t("Something's missing")} + + + + - {i18n.t("Sorry, the page was not found")}
diff --git a/src/components/ProductList/ProductList.tsx b/src/components/ProductList/ProductList.tsx index 949cad712..32dd47362 100644 --- a/src/components/ProductList/ProductList.tsx +++ b/src/components/ProductList/ProductList.tsx @@ -10,12 +10,12 @@ import TableCell from "@material-ui/core/TableCell"; import TableFooter from "@material-ui/core/TableFooter"; import TableRow from "@material-ui/core/TableRow"; import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; import TableCellAvatar, { AVATAR_MARGIN } from "@saleor/components/TableCellAvatar"; import { ProductListColumns } from "@saleor/config"; -import i18n from "@saleor/i18n"; import { maybe, renderCollection } from "@saleor/misc"; import { ListActions, ListProps } from "@saleor/types"; import { isSelected } from "@saleor/utils/lists"; @@ -97,6 +97,7 @@ export const ProductList = withStyles(styles, { name: "ProductList" })( onUpdateListSettings, onRowClick }: ProductListProps) => { + const intl = useIntl(); const displayColumn = React.useCallback( (column: ProductListColumns) => isSelected(column, settings.columns, (a, b) => a === b), @@ -124,22 +125,28 @@ export const ProductList = withStyles(styles, { name: "ProductList" })( > - {i18n.t("Name", { context: "object" })} + {displayColumn("productType") && ( - {i18n.t("Type", { context: "object" })} + )} {displayColumn("isPublished") && ( - {i18n.t("Published", { context: "object" })} + )} {displayColumn("price") && ( - {i18n.t("Price", { context: "object" })} + )} @@ -205,11 +212,13 @@ export const ProductList = withStyles(styles, { name: "ProductList" })( ( - {i18n.t("No products found")} + ) diff --git a/src/components/RadioGroupField/RadioGroupField.tsx b/src/components/RadioGroupField/RadioGroupField.tsx index b22446312..3c97b2ef7 100644 --- a/src/components/RadioGroupField/RadioGroupField.tsx +++ b/src/components/RadioGroupField/RadioGroupField.tsx @@ -8,8 +8,7 @@ import RadioGroup from "@material-ui/core/RadioGroup"; import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import classNames from "classnames"; import React from "react"; - -import i18n from "../../i18n"; +import { FormattedMessage } from "react-intl"; const styles = createStyles({ formControl: { @@ -83,7 +82,9 @@ export const RadioGroupField = withStyles(styles, { /> )) ) : ( - {i18n.t("No results found")} + + + )} {hint && {hint}} diff --git a/src/components/RichTextEditor/ImageEntity.tsx b/src/components/RichTextEditor/ImageEntity.tsx index 4bf9721c0..d81beaaed 100644 --- a/src/components/RichTextEditor/ImageEntity.tsx +++ b/src/components/RichTextEditor/ImageEntity.tsx @@ -13,8 +13,7 @@ import { import DeleteIcon from "@material-ui/icons/Delete"; import { ContentState } from "draft-js"; import React from "react"; - -import i18n from "../../i18n"; +import { FormattedMessage } from "react-intl"; interface ImageEntityProps { children: React.ReactNode; @@ -88,7 +87,10 @@ const ImageEntity = withStyles(styles, { }} color="primary" > - {i18n.t("Replace")} + onRemove(entityKey)}> diff --git a/src/components/RichTextEditor/ImageSource.tsx b/src/components/RichTextEditor/ImageSource.tsx index d238bc09f..766681eb9 100644 --- a/src/components/RichTextEditor/ImageSource.tsx +++ b/src/components/RichTextEditor/ImageSource.tsx @@ -6,8 +6,9 @@ import DialogTitle from "@material-ui/core/DialogTitle"; import TextField from "@material-ui/core/TextField"; import { AtomicBlockUtils, EditorState, EntityInstance } from "draft-js"; import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; -import i18n from "../../i18n"; +import { buttonMessages } from "@saleor/intl"; import Form from "../Form"; interface ImageSourceProps { @@ -21,16 +22,19 @@ interface ImageSourceProps { onClose: () => void; } -class ImageSource extends React.Component { - submit = (href: string) => { - const { - editorState, - entity, - entityKey, - entityType, - onComplete - } = this.props; +const ImageSource: React.FC = ({ + editorState, + entity, + entityKey, + entityType, + onComplete, + onClose +}) => { + const intl = useIntl(); + const initial = entity ? entity.getData().href : ""; + + const handleSubmit = (href: string) => { if (href) { const content = editorState.getCurrentContent(); if (entity) { @@ -60,41 +64,44 @@ class ImageSource extends React.Component { } }; - render() { - const { entity, onClose } = this.props; - const initial = entity ? entity.getData().href : ""; + return ( + +
handleSubmit(href)} + > + {({ data, change, submit }) => ( + <> + + + + + + + + + + + + )} +
+
+ ); +}; - return ( - -
this.submit(href)} - > - {({ data, change, submit }) => ( - <> - {i18n.t("Add Image Link")} - - - - - - - - - )} -
-
- ); - } -} export default ImageSource; diff --git a/src/components/RichTextEditor/LinkEntity.tsx b/src/components/RichTextEditor/LinkEntity.tsx index ac8080b43..436d8451e 100644 --- a/src/components/RichTextEditor/LinkEntity.tsx +++ b/src/components/RichTextEditor/LinkEntity.tsx @@ -14,8 +14,9 @@ import Typography from "@material-ui/core/Typography"; import DeleteIcon from "@material-ui/icons/Delete"; import { ContentState } from "draft-js"; import React from "react"; +import { FormattedMessage } from "react-intl"; -import i18n from "../../i18n"; +import { buttonMessages } from "@saleor/intl"; import Link from "../Link"; interface LinkEntityProps { @@ -107,7 +108,7 @@ const LinkEntity = withStyles(styles, { }} color="primary" > - {i18n.t("Edit")} + onRemove(entityKey)}> diff --git a/src/components/RichTextEditor/LinkSource.tsx b/src/components/RichTextEditor/LinkSource.tsx index bbf17eda0..892cef14e 100644 --- a/src/components/RichTextEditor/LinkSource.tsx +++ b/src/components/RichTextEditor/LinkSource.tsx @@ -6,8 +6,9 @@ import DialogTitle from "@material-ui/core/DialogTitle"; import TextField from "@material-ui/core/TextField"; import { EditorState, EntityInstance, RichUtils } from "draft-js"; import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; -import i18n from "../../i18n"; +import { buttonMessages } from "@saleor/intl"; import Form from "../Form"; interface LinkSourceProps { @@ -20,10 +21,17 @@ interface LinkSourceProps { onClose: () => void; } -class LinkSource extends React.Component { - submit = (url: string) => { - const { editorState, entityType, onComplete } = this.props; +const LinkSource: React.FC = ({ + editorState, + entity, + entityType, + onComplete, + onClose +}) => { + const intl = useIntl(); + const initial = entity ? entity.getData().url : ""; + const handleSubmit = (url: string) => { if (url) { const content = editorState.getCurrentContent(); const contentWithEntity = content.createEntity( @@ -47,41 +55,44 @@ class LinkSource extends React.Component { } }; - render() { - const { entity, onClose } = this.props; - const initial = entity ? entity.getData().url : ""; + return ( + +
handleSubmit(url)} + > + {({ data, change, submit }) => ( + <> + + + + + + + + + + + + )} +
+
+ ); +}; - return ( - -
this.submit(url)} - > - {({ data, change, submit }) => ( - <> - {i18n.t("Add or Edit Link")} - - - - - - - - - )} -
-
- ); - } -} export default LinkSource; diff --git a/src/components/RowNumberSelect/RowNumberSelect.tsx b/src/components/RowNumberSelect/RowNumberSelect.tsx index 2a670e7ae..4ae050f80 100644 --- a/src/components/RowNumberSelect/RowNumberSelect.tsx +++ b/src/components/RowNumberSelect/RowNumberSelect.tsx @@ -3,8 +3,8 @@ import Select from "@material-ui/core/Select"; import { Theme } from "@material-ui/core/styles"; import { createStyles, makeStyles, useTheme } from "@material-ui/styles"; import React from "react"; +import { FormattedMessage } from "react-intl"; -import i18n from "../../i18n"; import { ListSettings } from "../../types"; const useStyles = makeStyles( @@ -51,7 +51,9 @@ const RowNumberSelect: React.FC = ({ const classes = useStyles({ theme }); return (
- {i18n.t("No of Rows:")} + + + {hint && {hint}} diff --git a/src/components/TableFilter/FilterChips.tsx b/src/components/TableFilter/FilterChips.tsx index 273829c19..176c53b44 100644 --- a/src/components/TableFilter/FilterChips.tsx +++ b/src/components/TableFilter/FilterChips.tsx @@ -6,8 +6,8 @@ import Typography from "@material-ui/core/Typography"; import ClearIcon from "@material-ui/icons/Clear"; import { createStyles, makeStyles, useTheme } from "@material-ui/styles"; import React from "react"; +import { FormattedMessage } from "react-intl"; -import i18n from "../../i18n"; import Filter, { FilterContentSubmitData, IFilter } from "../Filter"; import Hr from "../Hr"; import Link from "../Link"; @@ -163,9 +163,19 @@ export const FilterChips: React.FC = ({ ))}
{isCustomSearch ? ( - {i18n.t("Save Custom Search")} + + + ) : ( - {i18n.t("Delete Search")} + + + )} ) : ( diff --git a/src/components/TableHead/TableHead.tsx b/src/components/TableHead/TableHead.tsx index d82f71d92..9305e263f 100644 --- a/src/components/TableHead/TableHead.tsx +++ b/src/components/TableHead/TableHead.tsx @@ -13,10 +13,10 @@ import TableRow from "@material-ui/core/TableRow"; import Typography from "@material-ui/core/Typography"; import classNames from "classnames"; import React from "react"; +import { FormattedMessage } from "react-intl"; import { Node } from "../../types"; -import i18n from "../../i18n"; import Checkbox from "../Checkbox"; export interface TableHeadProps extends MuiTableHeadProps { @@ -129,9 +129,12 @@ const TableHead = withStyles(styles, {
{selected && ( - {i18n.t("Selected {{ number }} items", { - number: selected - })} + )}
diff --git a/src/components/Timeline/Timeline.tsx b/src/components/Timeline/Timeline.tsx index 61e5fd72c..2989dae10 100644 --- a/src/components/Timeline/Timeline.tsx +++ b/src/components/Timeline/Timeline.tsx @@ -11,8 +11,7 @@ import { import TextField from "@material-ui/core/TextField"; import PersonIcon from "@material-ui/icons/Person"; import React from "react"; - -import i18n from "../../i18n"; +import { FormattedMessage, useIntl } from "react-intl"; const styles = (theme: Theme) => createStyles({ @@ -70,37 +69,44 @@ export const Timeline = withStyles(styles, { name: "Timeline" })( ); export const TimelineAddNote = withStyles(styles, { name: "TimelineAddNote" })( - ({ classes, message, onChange, onSubmit }: TimelineAddNoteProps) => ( -
- - - - - - {i18n.t("Send", { - context: "add order note" - })} - - ) - }} - variant="standard" - /> - -
- ) + ({ classes, message, onChange, onSubmit }: TimelineAddNoteProps) => { + const intl = useIntl(); + + return ( +
+ + + + + + + + ) + }} + variant="standard" + /> + +
+ ); + } ); Timeline.displayName = "Timeline"; export default Timeline; diff --git a/src/components/VisibilityCard/VisibilityCard.tsx b/src/components/VisibilityCard/VisibilityCard.tsx index 6cb01c853..610e07e49 100644 --- a/src/components/VisibilityCard/VisibilityCard.tsx +++ b/src/components/VisibilityCard/VisibilityCard.tsx @@ -8,12 +8,12 @@ import { } from "@material-ui/core/styles"; import TextField from "@material-ui/core/TextField"; import React from "react"; +import { useIntl } from "react-intl"; import CardTitle from "@saleor/components/CardTitle"; import ControlledSwitch from "@saleor/components/ControlledSwitch"; import { FormSpacer } from "@saleor/components/FormSpacer"; import useDateLocalize from "@saleor/hooks/useDateLocalize"; -import i18n from "../../i18n"; import { DateContext } from "../Date/DateContext"; const styles = (theme: Theme) => @@ -54,11 +54,17 @@ export const VisibilityCard = withStyles(styles, { disabled, onChange }: VisibilityCardProps) => { + const intl = useIntl(); const localizeDate = useDateLocalize(); const dateNow = React.useContext(DateContext); return ( - +
dateNow - ? i18n.t("will be visible from {{ date }}", { - date: localizeDate(publicationDate) - }) + ? intl.formatMessage( + { + defaultMessage: "will be visible from {date}" + }, + { + date: localizeDate(publicationDate) + } + ) : null : null } @@ -94,7 +114,10 @@ export const VisibilityCard = withStyles(styles, { = ({ weight }) => - i18n.t("{{ value }} {{ unit }}", { - context: "weight", - ...weight - }); +const Weight: React.StatelessComponent = ({ weight }) => ( + +); + Weight.displayName = "Weight"; export default Weight; diff --git a/src/components/WeightRange/WeightRange.tsx b/src/components/WeightRange/WeightRange.tsx index c7a789527..eae54b19c 100644 --- a/src/components/WeightRange/WeightRange.tsx +++ b/src/components/WeightRange/WeightRange.tsx @@ -1,6 +1,6 @@ import React from "react"; +import { FormattedMessage } from "react-intl"; -import i18n from "../../i18n"; import { Weight } from "../Weight"; export interface WeightRangeProps { @@ -8,28 +8,32 @@ export interface WeightRangeProps { to?: Weight; } -const WeightRange: React.StatelessComponent = ({ - from, - to -}) => - from && to - ? i18n.t("{{ fromValue }} {{ fromUnit }} - {{ toValue }} {{ toUnit }}", { - context: "weight", +const WeightRange: React.FC = ({ from, to }) => + from && to ? ( + + ) : from && !to ? ( + + ) : !from && to ? ( + + ) : ( + - + ); WeightRange.displayName = "WeightRange"; export default WeightRange; diff --git a/src/intl.ts b/src/intl.ts index 0c0a4ddec..38883a5fd 100644 --- a/src/intl.ts +++ b/src/intl.ts @@ -66,6 +66,10 @@ export const buttonMessages = defineMessages({ defaultMessage: "Confirm", description: "button" }, + delete: { + defaultMessage: "Delete", + description: "button" + }, edit: { defaultMessage: "Edit", description: "button"