Skip to content

Commit de42c08

Browse files
authored
feat: localization (#471)
* feat: added locale utils * feat: localisation for jsx components * chore: lint * chore: tests fix for localisation and lint * feat: added french translation * chore: lint + prettier * chore: handle comments * chore: lint + prettier * chore: fix tests * chore: lint + prettier * chore: fix comment and added RULES.md * chore: fix comments
1 parent 5bfaada commit de42c08

27 files changed

+624
-861
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
### Rules for Adding New Fields to the Language File
2+
3+
1. **Key Naming Convention:**
4+
5+
- Use **English text** to derive the key.
6+
- The key should be **camelized** (first word lowercase, subsequent words capitalized).
7+
- Keep the key to **no more than 5 words**.
8+
- If the text in English is **shorter than 5 words**, camelize the entire phrase.
9+
- For **longer text**, use a **concise and meaningful key** (this is a soft constraint).
10+
11+
2. **Dynamic Text Placeholders:**
12+
13+
- Use `{1}`, `{2}`, etc., for dynamic placeholders in messages.
14+
- Example:
15+
- `"visitCompanionDappAndUpgrade": { "message": "Visit the [companion dapp for Starknet]({1}) and click “Upgrade”.\nThank you!" }`
16+
- Usage: `translate("visitCompanionDappAndUpgrade", "https://website.com")`
17+
18+
3. **Consistency:**
19+
- Ensure key names are meaningful and reflect the message context.
20+
- Avoid over-complicating keys; aim for clarity and simplicity.
21+
22+
---
23+
24+
These guidelines will ensure consistency and clarity when adding new fields to the language file.
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
{
2+
"locale": "en",
3+
"messages": {
4+
"accountDeploymentMandatory": {
5+
"message": "Account Deployment Mandatory!"
6+
},
7+
"accountDeploymentNotice": {
8+
"message": "The account will be deployed with this transaction."
9+
},
10+
"accountManagementIntro": {
11+
"message": "To manage your Starknet account and send and receive funds, visit the"
12+
},
13+
"accountManagementReminder": {
14+
"message": "As usual, to manage your Starknet account and send and receive funds, visit the"
15+
},
16+
"accountUpgradeMandatory": {
17+
"message": "Account Upgrade Mandatory!"
18+
},
19+
"addTokenPrompt": {
20+
"message": "Do you want to add this token?"
21+
},
22+
"address": {
23+
"message": "Address"
24+
},
25+
"amount": {
26+
"message": "Amount"
27+
},
28+
"amountWithSymbol": {
29+
"message": "Amount ({1})"
30+
},
31+
"balance": {
32+
"message": "Balance"
33+
},
34+
"baseUrl": {
35+
"message": "Base URL"
36+
},
37+
"callData": {
38+
"message": "Call Data"
39+
},
40+
"call": {
41+
"message": "Call"
42+
},
43+
"chainId": {
44+
"message": "Chain ID"
45+
},
46+
"chainName": {
47+
"message": "Chain Name"
48+
},
49+
"classHash": {
50+
"message": "Class Hash"
51+
},
52+
"companionDapp": {
53+
"message": "companion dapp for Starknet"
54+
},
55+
"compiledClassHash": {
56+
"message": "Compiled Class Hash"
57+
},
58+
"confirmPrivateKeyToDisplay": {
59+
"message": "Confirming this action will display your private key. Ensure you are in a secure environment."
60+
},
61+
"contract": {
62+
"message": "Contract"
63+
},
64+
"decimals": {
65+
"message": "Decimals"
66+
},
67+
"declareTransactionDetails": {
68+
"message": "Declare Transaction Details"
69+
},
70+
"estimatedGasFee": {
71+
"message": "Estimated Gas Fee"
72+
},
73+
"explorerUrl": {
74+
"message": "Explorer URL"
75+
},
76+
"message": {
77+
"message": "Message"
78+
},
79+
"maxFeeETH": {
80+
"message": "Max Fee (ETH)"
81+
},
82+
"name": {
83+
"message": "Name"
84+
},
85+
"network": {
86+
"message": "Network"
87+
},
88+
"networkFee": {
89+
"message": "network fee"
90+
},
91+
"recipientAddress": {
92+
"message": "Recipient Address"
93+
},
94+
"recipient": {
95+
"message": "Recipient"
96+
},
97+
"rpcUrl": {
98+
"message": "RPC URL"
99+
},
100+
"senderAddress": {
101+
"message": "Sender Address"
102+
},
103+
"signMessagePrompt": {
104+
"message": "Do you want to sign this message?"
105+
},
106+
"signTransactionPrompt": {
107+
"message": "Do you want to sign this transaction?"
108+
},
109+
"signerAddress": {
110+
"message": "Signer Address"
111+
},
112+
"signer": {
113+
"message": "Signer"
114+
},
115+
"snapIsUpToDate": {
116+
"message": "Your Starknet Snap is now up-to-date!"
117+
},
118+
"starknetPrivateKeyConfidential": {
119+
"message": "Below is your Starknet Account private key. Keep it confidential."
120+
},
121+
"starknetPrivateKey": {
122+
"message": "Starknet Account Private Key"
123+
},
124+
"switchNetworkPrompt": {
125+
"message": "Do you want to switch to this network?"
126+
},
127+
"symbol": {
128+
"message": "Symbol"
129+
},
130+
"token": {
131+
"message": "Token"
132+
},
133+
"totalFor": {
134+
"message": "Total for"
135+
},
136+
"transaction": {
137+
"message": "Transaction"
138+
},
139+
"transactions": {
140+
"message": "Transactions"
141+
},
142+
"visitCompanionDappHomePage": {
143+
"message": "Visit the [companion dapp for Starknet]({1}) to manage your account."
144+
},
145+
"visitCompanionDappAndDeploy": {
146+
"message": "Visit the [companion dapp for Starknet]({1}) to deploy your account.\nThank you!"
147+
},
148+
"visitCompanionDappAndUpgrade": {
149+
"message": "Visit the [companion dapp for Starknet]({1}) and click “Upgrade”.\nThank you!"
150+
},
151+
"walletIsCompatible": {
152+
"message": "Your MetaMask wallet is now compatible with Starknet!"
153+
}
154+
}
155+
}
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
{
2+
"locale": "fr",
3+
"messages": {
4+
"accountDeploymentMandatory": {
5+
"message": "Déploiement du compte obligatoire !"
6+
},
7+
"accountDeploymentNotice": {
8+
"message": "Le compte sera déployé avec cette transaction."
9+
},
10+
"accountManagementIntro": {
11+
"message": "Pour gérer votre compte Starknet et envoyer ou recevoir des fonds, accédez à cette page"
12+
},
13+
"accountManagementReminder": {
14+
"message": "Comme d'habitude, pour gérer votre compte Starknet et envoyer ou recevoir des fonds, accédez à cette page"
15+
},
16+
"accountUpgradeMandatory": {
17+
"message": "Mise à niveau du compte obligatoire !"
18+
},
19+
"addTokenPrompt": {
20+
"message": "Voulez-vous ajouter ce token ?"
21+
},
22+
"address": {
23+
"message": "Adresse"
24+
},
25+
"amount": {
26+
"message": "Montant"
27+
},
28+
"amountWithSymbol": {
29+
"message": "Montant ({1})"
30+
},
31+
"balance": {
32+
"message": "Solde"
33+
},
34+
"baseUrl": {
35+
"message": "URL de base"
36+
},
37+
"callData": {
38+
"message": "Données d'appel"
39+
},
40+
"call": {
41+
"message": "Appel"
42+
},
43+
"chainId": {
44+
"message": "ID de la chaîne"
45+
},
46+
"chainName": {
47+
"message": "Nom de la chaîne"
48+
},
49+
"classHash": {
50+
"message": "Hash de la classe"
51+
},
52+
"companionDapp": {
53+
"message": "dapp compagnon pour Starknet"
54+
},
55+
"compiledClassHash": {
56+
"message": "Hash de la classe compilée"
57+
},
58+
"confirmPrivateKeyToDisplay": {
59+
"message": "Confirmer cette action affichera votre clé privée. Assurez-vous d'être dans un environnement sécurisé."
60+
},
61+
"contract": {
62+
"message": "Contrat"
63+
},
64+
"decimals": {
65+
"message": "Décimales"
66+
},
67+
"declareTransactionDetails": {
68+
"message": "Détails de la transaction à déclarer"
69+
},
70+
"estimatedGasFee": {
71+
"message": "Frais de gaz estimés"
72+
},
73+
"explorerUrl": {
74+
"message": "URL de l'explorateur"
75+
},
76+
"message": {
77+
"message": "Message"
78+
},
79+
"maxFeeETH": {
80+
"message": "Frais max (ETH)"
81+
},
82+
"name": {
83+
"message": "Nom"
84+
},
85+
"network": {
86+
"message": "Réseau"
87+
},
88+
"networkFee": {
89+
"message": "frais de réseau"
90+
},
91+
"recipientAddress": {
92+
"message": "Adresse du destinataire"
93+
},
94+
"recipient": {
95+
"message": "Destinataire"
96+
},
97+
"rpcUrl": {
98+
"message": "URL RPC"
99+
},
100+
"senderAddress": {
101+
"message": "Adresse de l'expéditeur"
102+
},
103+
"signMessagePrompt": {
104+
"message": "Voulez-vous signer ce message ?"
105+
},
106+
"signTransactionPrompt": {
107+
"message": "Voulez-vous signer cette transaction ?"
108+
},
109+
"signerAddress": {
110+
"message": "Adresse du signataire"
111+
},
112+
"signer": {
113+
"message": "Signataire"
114+
},
115+
"snapIsUpToDate": {
116+
"message": "Votre Starknet Snap est maintenant à jour !"
117+
},
118+
"starknetPrivateKeyConfidential": {
119+
"message": "Voici la clé privée de votre compte Starknet. Gardez-la confidentielle."
120+
},
121+
"starknetPrivateKey": {
122+
"message": "Clé privée du compte Starknet"
123+
},
124+
"switchNetworkPrompt": {
125+
"message": "Voulez-vous changer pour ce réseau ?"
126+
},
127+
"symbol": {
128+
"message": "Symbole"
129+
},
130+
"token": {
131+
"message": "Token"
132+
},
133+
"totalFor": {
134+
"message": "Total pour"
135+
},
136+
"transaction": {
137+
"message": "Transaction"
138+
},
139+
"transactions": {
140+
"message": "Transactions"
141+
},
142+
"visitCompanionDappHomePage": {
143+
"message": "Visitez la [dapp compagnon pour Starknet]({1}) pour gérer votre compte."
144+
},
145+
"visitCompanionDappAndDeploy": {
146+
"message": "Visitez la [dapp compagnon pour Starknet]({1}) pour déployer votre compte.\nMerci !"
147+
},
148+
"visitCompanionDappAndUpgrade": {
149+
"message": "Visitez la [dapp compagnon pour Starknet]({1}) et cliquez sur “Upgrade”.\nMerci !"
150+
},
151+
"walletIsCompatible": {
152+
"message": "Votre portefeuille MetaMask est désormais compatible avec Starknet !"
153+
}
154+
}
155+
}

packages/starknet-snap/snap.manifest.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,19 @@
77
"url": "https://github.com/ConsenSys/starknet-snap.git"
88
},
99
"source": {
10-
"shasum": "uG3NeaD7Ky06SZo9Hnx1KWn5EjavmUJC5VBSY/sqctM=",
10+
"shasum": "ioF+6KhOlxdYsfladG3HE9FxV/qNm7oggLavdt1V1jg=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",
1414
"iconPath": "images/icon.svg",
1515
"packageName": "@consensys/starknet-snap",
1616
"registry": "https://registry.npmjs.org"
1717
}
18-
}
18+
},
19+
"locales": ["locales/en.json", "locales/fr.json"]
1920
},
2021
"initialPermissions": {
22+
"snap_getPreferences": {},
2123
"snap_dialog": {},
2224
"endowment:network-access": {},
2325
"snap_getBip44Entropy": [

0 commit comments

Comments
 (0)