Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Polish support and translations #415

Merged
merged 1 commit into from
Jan 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion components/data/i18n/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ import i18n, { use } from "i18next"
import translationDE from "public/static/locales/de/common.json"
import translationEN from "public/static/locales/en/common.json"
import translationIT from "public/static/locales/it/common.json"
import translationPL from "public/static/locales/pl/common.json"
import { initReactI18next } from "react-i18next"

const languages = ["en", "it", "de"]
const languages = ["en", "it", "de", "pl"]

const resources = {
en: {
Expand All @@ -16,6 +17,9 @@ const resources = {
de: {
translation: translationDE,
},
pl: {
translation: translationPL,
},
}

use(initReactI18next).init({
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
"commercelayer"
],
"dependencies": {
"@commercelayer/react-components": "^4.8.5",
"@commercelayer/react-components": "^4.8.6",
"@commercelayer/sdk": "^5.26.0",
"@faker-js/faker": "^8.3.1",
"@headlessui/react": "^1.7.17",
Expand Down
8 changes: 4 additions & 4 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions public/static/locales/en/common.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{

"general": {
"title": "{{companyName}} - Checkout",
"systemError": "We're sorry but something went wrong!",
Expand Down
159 changes: 159 additions & 0 deletions public/static/locales/pl/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
{

"general": {
"title": "{{companyName}} - Checkout",
"systemError": "Przepraszamy, coś poszło nie tak!",
"retry_error_code": "Problemy z łącznością",
"retry_error_description": "Próbuję załadować stronę ponownie",
"invalid": "Zamówienie jest nieosiągalne.",
"edit": "Edytuj",
"free" : "Darmowa",
"apply": "Wprowadź",
"privacy_and_terms": "Klikając zgadzasz się na <bold><termsUrl>regulamin</termsUrl></bold> oraz <bold><privacyUrl>zasady prywatności</privacyUrl></bold>.",
"checkoutTitle": "Checkout"
},

"error": {
"general": "Błąd generalny",
"shipments": "Niektóre pozycje nie mają wybranej metody wysyłki",
"paymentMethod": "Krok płatności musi być wypełniony",
"transition": "Przejście do następnego kroku jest niedozwolone",
"payer": "Płatnik nie zatwierdził płatności",
"resourceID": "Pozycja o danym ID nie została odnaleziona"
},

"input":{
"cantBlank": "Pole jest obowiązkowe",
"mustBeValidFormat": "Błędny format wypełnienia",
"mustBeValidEmail": "Proszę podaj prawidłowy adres e-mail",
"mustBeValidCouponOrGiftCard": "Proszę podaj prawidłowy kupon zniżkowy lub kod karty podarunkowej",
"mustBeValidCoupon": "Proszę podaj prawidłowy kupon zniżkowy",
"mustBeValidGiftCard": "Proszę podaj prawidłowy kod karty podarunkowej"
},

"orderRecap": {
"order_summary": "Podsumowanie zamówienia",
"cartContains": "Twój koszyk zawiera {{count}} produkt",
"cartContains_other": "Twój koszyk zawiera {{count}} produkty",
"coupon_code": "Kupon zniżkowy",
"gift_card_code": "Kod karty podarunkowej",
"gift_card_or_coupon_code": "Kod karty podarunkowej lub kupon zniżkowy",
"quantity": "ILOŚĆ: {{count}}",
"quantity_other": "ILOŚĆ: {{count}}",
"quantity_stock": "MAGAZYN: <0/>",
"discount_amount": "Zniżka",
"adjustment_amount": "Suma korekt",
"giftcard_amount": "Karta podarunkowa",
"tax_amount": "Podatek",
"tax_included_amount": "Podatek <style>wliczony</style>",
"shipping_amount": "Wysyłka",
"payment_method_amount": "Metoda płatności",
"subtotal_amount": "Zakupy",
"total_amount": "Suma",
"notSet": "Do wyliczenia",
"returnToCart": "Wróć do koszyka",
"frequency.hourly": "Co godzinę",
"frequency.daily": "Codziennie",
"frequency.weekly": "Co tydzień",
"frequency.monthly": "Co miesiąc",
"frequency.two-months": "Co dwa miesiące",
"frequency.two-month": "Co dwa miesiące",
"frequency.three-months": "Co trzy miesiące",
"frequency.three-month": "Co trzy miesiące",
"frequency.four-months": "Co cztery miesiące",
"frequency.four-month": "Co cztery miesiące",
"frequency.six-months": "Co sześć miesięcy",
"frequency.six-month": "Co sześć miesięcy",
"frequency.yearly": "Co roku"
},

"stepCustomer": {
"title": "Klient",
"addNewAddress": "Dodaj nowy adress",
"saveAddressBook": "Zachowaj adres w swoim koncie klienta",
"continueToDelivery": "Dalej do dostawy",
"notSet": "Proszę uzupełnij dane adresowe",
"notSetNoDelivery": "Proszę uzupełnij dane adresowe",
"closeForm": "Wybierz adres"
},

"stepShipping": {
"title": "Dostawa",
"shipment": "Wysyłka <Wrap>{{current}} of {{total}}</Wrap>",
"notAvailable": "Podany adres jest poza naszą strefą dostawy. Zmień adres dostawy lub zgłoś się w celu uzyskania pomocy.",
"outOfStock": "Produkt z Twojego zamówienia nie jest już dostępny.",
"outOfStockWithCart": " Kliknij <WrapperStyle><Link>{{link}}</Link></WrapperStyle>, żeby edytować swój koszyk.",
"outOfStockLink": "tutaj",
"stockTransfer": "<0/> z <1/> produktów zostanie przetransferowanych",
"methodSelected": "Twoje zamówienie ma wybraną {{count}} metodę wysyłki",
"methodSelected_other": "Twoje zamówienie ma wybrane {{count}} metody wysyłki",
"methodUnselected": "Wybierz metodę wysyłki",
"deliveryLeadTime" : "<0/> - <1/> dni",
"externalPrice": "W następnym kroku",
"continueToPayment": "Dalej do płatności",
"notRequired": "To zamówienie nie wymaga dostawy"
},

"stepPayment": {
"title": "Płatność",
"methodUnselected": "Wybierz metodę płatności",
"creditCard": "Karta kredytowa",
"wireTransfer": "Przelew tradycyjny",
"wireTransferDescription": "Przy potwierdzeniu zamówienia otrzymasz instrukcję jak dokończyć płatność.",
"paypalDescription": "Po złożeniu zamówienia zostaniesz przekierowany na stronę PayPal, gdzie trzeba się zalogować i dokończyć płatność",
"endingIn": "<0/> numer zakończony cyframi <1/>",
"submit": "Złóż zamówienie",
"notRequired": "To zamówienie nie wymaga płatności",
"amountZero": "Suma zamówienia wynosi zero. Możesz złożyć je bez płatności.",
"saveToWallet": "Zapisz kartę do walleta",
"expires": "Wygasa",
"subscriptionWithoutCustomer": "Aby kupić subskrypcję, należy założyć konto.",
"subscriptionWithCustomer": "Podając dane swojej karty, zezwalasz firmie na obciążenie Twojej karty przyszłymi płatnościami zgodnie z jej warunkami."
},

"addressForm" : {
"customer_email" : "Twój adres e-mail",
"billing_address_title": "Adres",
"billing_address_first_name": "Imię",
"billing_address_last_name": "Nazwisko",
"billing_address_line_1": "Adres linijka 1",
"billing_address_line_2": "Adres linijka 2",
"billing_address_city": "Miasto",
"billing_address_country_code_placeholder": "Wybierz kraj",
"billing_address_country_code": "Kraj",
"billing_address_state_code": "Województwo",
"billing_address_state_code_placeholder": "Wybierz województwo",
"billing_address_zip_code": "Kod pocztowy",
"billing_address_phone": "Telefon",
"billing_address_billing_info": "Dodatkowe informacje",
"ship_to_different_address": "Wysyłka na inny adres",
"shipping_address_title": "Adres wysyłki",
"shipping_address_first_name": "Imię",
"shipping_address_last_name": "Nazwisko",
"shipping_address_line_1": "Adres linijka 1",
"shipping_address_line_2": "Adres linijka 1",
"shipping_address_city": "Miasto",
"shipping_address_country_code": "Kraj",
"shipping_address_country_code_placeholder": "Wybierz kraj",
"shipping_address_state_code": "Województwo",
"shipping_address_state_code_placeholder": "Wybierz województwo",
"shipping_address_zip_code": "Kod pocztowy",
"shipping_address_phone": "Telefon"
},

"stepComplete": {
"title": "Dziękujemy za złożenie zamówienia!",
"description": "Numer tego zamówienia to: <WrapperOrderId>#{{orderNumber}}</WrapperOrderId>",
"continue": "Wróć do zakupów",
"supportEmail": "W wypadku pytań napisz do nas na adres e-mail: <br /><WrapperStyle><WrapperEmail>{{email}}</WrapperEmail></WrapperStyle>",
"supportPhone": "W wypadku pytań zadzwoń do nas na: <br /><WrapperStyle><WrapperPhone>{{phone}}</WrapperPhone></WrapperStyle>",
"fullSupport": "W wypadku pytań napisz do nas na adres e-mail <br /><WrapperStyle><WrapperEmail>{{email}}</WrapperEmail></WrapperStyle> lub zadzwoń pod <WrapperStyle><WrapperPhone>{{phone}}</WrapperPhone></WrapperStyle>",
"ship_to": "Wyślij zamówienie do:",
"billed_to": "Wystaw rachunek dla:",
"payment": "Płatność:",
"summary_title": "Podsumowanie",
"customer_title": "Klient",
"email": "E-mail:",
"free_payment": "To zamówienie nie wymagało opłacenia."
}
}
7 changes: 5 additions & 2 deletions specs/e2e/payments-klarna.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { faker } from "@faker-js/faker"
import { euAddress } from "specs/utils/addresses"
import { euAddress2 } from "specs/utils/addresses"

import { test, expect } from "../fixtures/tokenizedPage"

Expand All @@ -21,7 +21,10 @@ test("should execute a checkout with klarna", async ({ checkoutPage }) => {
await checkoutPage.checkOrderSummary("Order Summary")

await checkoutPage.setCustomerMail()
await checkoutPage.setBillingAddress({ ...euAddress, phone: "+393293399456" })
await checkoutPage.setBillingAddress({
...euAddress2,
phone: "+393473399466",
})

await checkoutPage.checkStep("Customer", "open")

Expand Down
13 changes: 6 additions & 7 deletions specs/fixtures/CheckoutPage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -766,7 +766,7 @@ export class CheckoutPage {
.waitFor({ state: "visible" })

await klarnaIframe.getByTestId("kaf-field").focus()
await klarnaIframe.getByTestId("kaf-field").fill("33312312325")
await klarnaIframe.getByTestId("kaf-field").fill("+491711234567")

await klarnaIframe.getByTestId("kaf-button").click()
await klarnaIframe.locator("input#otp_field").focus()
Expand Down Expand Up @@ -818,7 +818,7 @@ export class CheckoutPage {
.waitFor({ state: "visible" })

await klarnaIframe.getByTestId("kaf-field").focus()
await klarnaIframe.getByTestId("kaf-field").fill("33312312325")
await klarnaIframe.getByTestId("kaf-field").fill("+491711234567")

await klarnaIframe.getByTestId("kaf-button").click()
await klarnaIframe.locator("input#otp_field").focus()
Expand Down Expand Up @@ -848,19 +848,18 @@ export class CheckoutPage {
.waitFor({ state: "visible" })

await klarnaIframe.getByTestId("kaf-field").focus()
await klarnaIframe.getByTestId("kaf-field").fill("33312312325")
await klarnaIframe.getByTestId("kaf-field").fill("0733211231")

await klarnaIframe.getByTestId("kaf-button").click()
await klarnaIframe.locator("input#otp_field").focus()
await klarnaIframe.locator("input#otp_field").type("123456")
await this.page.waitForTimeout(2000)

await this.page.waitForTimeout(5000)
const confirm = klarnaIframe.locator(
"[data-testid=confirm-and-pay]"
)

if (await confirm.isVisible()) {
confirm.click()
await confirm.click()
}

const popup = await klarnaIframe.locator(
Expand All @@ -887,7 +886,7 @@ export class CheckoutPage {
.waitFor({ state: "visible" })

await klarnaIframe.getByTestId("kaf-field").focus()
await klarnaIframe.getByTestId("kaf-field").fill("33312312325")
await klarnaIframe.getByTestId("kaf-field").fill("+491711234567")

await klarnaIframe.getByTestId("kaf-button").click()
await klarnaIframe.locator("input#otp_field").focus()
Expand Down
29 changes: 21 additions & 8 deletions specs/utils/addresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,19 @@ export const euAddress3: Partial<Address> = {
billing_info: "00CDEFGHIJKLMNOPQRSTUVWYXZ",
}

export const euAddress4: Partial<Address> = {
first_name: "John",
last_name: "Doe",
line_1: "Avenue de Paris 10",
line_2: "",
city: "Paris",
country_code: "FR",
state_code: "PR",
zip_code: "31000",
phone: "+33 022 320132010",
billing_info: "BMNDFT32F12D123W",
}

export const usAddress: Partial<Address> = {
first_name: "Tim",
last_name: "Cook",
Expand All @@ -51,15 +64,15 @@ export const usAddress: Partial<Address> = {
}

export const deAddress: Partial<Address> = {
first_name: "Steve",
last_name: "Jobs",
line_1: "Nürnberger Str. 24A",
city: "Berlin",
first_name: "Tim",
last_name: "Cook",
line_1: "Berlinstrasse Str. 23",
city: "Munich",
country_code: "DE",
state_code: "Berlin",
zip_code: "10789",
phone: "+49 30 56839568",
billing_info: "00CDEFGHIJKLMNOPQRSTUVWYXZ",
state_code: "Munich",
zip_code: "80336",
phone: "+49 89 242078610",
billing_info: "MSNREW78D12D612W",
}

export function composeForCheck(address: Partial<Address>) {
Expand Down
Loading