浏览代码

feat: 引入多语言第三方包

kuns 1 月之前
父节点
当前提交
7216f9b8a6

+ 0 - 32
app/(public)/registerChooseVehiclesTwo.tsx

@@ -48,38 +48,6 @@ const RegisterChooseVehiclesTwo = () => {
     const [carModels, setCarModels] = useState<CarModel[]>([]);
     const navigation = useNavigation();
 
-    // const brandLogos = {
-    //     audi: require('../../../../../assets/audi.png'),
-    //     acura: require('../../../../../assets/acura.png'),
-    //     bmw: require('../../../../../assets/bmw.png'),
-    //     byd: require('../../../../../assets/byd.png'),
-    //     chevrolet: require('../../../../../assets/chevrolet.png'),
-    //     cadillac: require('../../../../../assets/cadillac.png'),
-    //     ford: require('../../../../../assets/ford.png'),
-    //     fiat: require('../../../../../assets/fiat.png'),
-    //     genesis: require('../../../../../assets/genesis.png'),
-    //     honda: require('../../../../../assets/honda.png'),
-    //     hyundai: require('../../../../../assets/hyundai.png'),
-    //     jaguar: require('../../../../../assets/jaguar.png'),
-    //     kia: require('../../../../../assets/kia.png'),
-    //     'mercedes-benz': require('../../../../../assets/benz.png'),
-    //     mini: require('../../../../../assets/mini.png'),
-    //     mazda: require('../../../../../assets/mazda.png'),
-    //     nissan: require('../../../../../assets/nissan.png'),
-    //     porsche: require('../../../../../assets/porsche.png'),
-    //     subaru: require('../../../../../assets/subaru.png'),
-    //     tesla: require('../../../../../assets/tesla.png'),
-    //     toyota: require('../../../../../assets/toyota.png'),
-    //     volkswagen: require('../../../../../assets/volkswagen.png'),
-    //     volvo: require('../../../../../assets/volvo.png'),
-    //     default: require('../../../../../assets/bmw.png') // Make sure to add a default logo
-    // };
-
-    // const getBrandLogo = (brand: string) => {
-    //     const logoKey = brand.toLowerCase().replace(/\s+/g, '-');
-    //     return brandLogos[logoKey] || brandLogos.default;
-    // };
-
     const renderModelItem = ({ item: model }: { item: CarModel }) => (
         <>
             <Pressable

+ 1 - 1
component/accountPages/changeCarPageComponent.tsx

@@ -1,5 +1,5 @@
 import { View, Text, ScrollView, Pressable, Alert } from 'react-native';
-import React, { useContext, useEffect, useState } from 'react';
+import React, { useContext, useEffect, useState } from 'react'; 
 import { SafeAreaView } from 'react-native-safe-area-context';
 import { router } from 'expo-router';
 import { CrossLogoSvg } from '../global/SVG';

+ 0 - 1
component/homePage/homePage.tsx

@@ -29,7 +29,6 @@ import { AuthContext } from '../../context/AuthProvider';
 import { useCallback, useContext, useEffect, useState } from 'react';
 import { authenticationService } from '../../service/authService';
 import { chargeStationService } from '../../service/chargeStationService';
-import { walletService } from '../../service/walletService';
 import useUserInfoStore from '../../providers/userinfo_store';
 import NormalInput from '../global/normal_input';
 import { notificationStorage } from '../notificationStorage';

+ 190 - 6
package-lock.json

@@ -39,6 +39,7 @@
         "expo-secure-store": "~15.0.7",
         "expo-status-bar": "~3.0.8",
         "expo-updates": "~29.0.11",
+        "i18n-js": "^4.5.1",
         "lodash": "^4.17.21",
         "nativewind": "^4.2.1",
         "prettier-plugin-tailwindcss": "^0.6.14",
@@ -48,6 +49,7 @@
         "react-native-element-dropdown": "^2.12.4",
         "react-native-gesture-handler": "~2.28.0",
         "react-native-keyboard-aware-scroll-view": "^0.9.5",
+        "react-native-localize": "^3.5.4",
         "react-native-maps": "1.20.1",
         "react-native-modal": "14.0.0-rc.1",
         "react-native-modern-datepicker": "^1.0.0-beta.91",
@@ -1631,14 +1633,16 @@
       }
     },
     "node_modules/@expo/config-plugins": {
-      "version": "54.0.1",
-      "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.1.tgz",
-      "integrity": "sha512-NyBChhiWFL6VqSgU+LzK4R1vC397tEG2XFewVt4oMr4Pnalq/mJxBANQrR+dyV1RHhSyhy06RNiJIkQyngVWeg==",
+      "version": "10.1.2",
+      "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-10.1.2.tgz",
+      "integrity": "sha512-IMYCxBOcnuFStuK0Ay+FzEIBKrwW8OVUMc65+v0+i7YFIIe8aL342l7T4F8lR4oCfhXn7d6M5QPgXvjtc/gAcw==",
       "license": "MIT",
+      "optional": true,
+      "peer": true,
       "dependencies": {
-        "@expo/config-types": "^54.0.8",
-        "@expo/json-file": "~10.0.7",
-        "@expo/plist": "^0.4.7",
+        "@expo/config-types": "^53.0.5",
+        "@expo/json-file": "~9.1.5",
+        "@expo/plist": "^0.3.5",
         "@expo/sdk-runtime-versions": "^1.0.0",
         "chalk": "^4.1.2",
         "debug": "^4.3.5",
@@ -1652,11 +1656,57 @@
         "xml2js": "0.6.0"
       }
     },
+    "node_modules/@expo/config-plugins/node_modules/@babel/code-frame": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+      "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+      "license": "MIT",
+      "optional": true,
+      "peer": true,
+      "dependencies": {
+        "@babel/highlight": "^7.10.4"
+      }
+    },
+    "node_modules/@expo/config-plugins/node_modules/@expo/config-types": {
+      "version": "53.0.5",
+      "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-53.0.5.tgz",
+      "integrity": "sha512-kqZ0w44E+HEGBjy+Lpyn0BVL5UANg/tmNixxaRMLS6nf37YsDrLk2VMAmeKMMk5CKG0NmOdVv3ngeUjRQMsy9g==",
+      "license": "MIT",
+      "optional": true,
+      "peer": true
+    },
+    "node_modules/@expo/config-plugins/node_modules/@expo/json-file": {
+      "version": "9.1.5",
+      "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.1.5.tgz",
+      "integrity": "sha512-prWBhLUlmcQtvN6Y7BpW2k9zXGd3ySa3R6rAguMJkp1z22nunLN64KYTUWfijFlprFoxm9r2VNnGkcbndAlgKA==",
+      "license": "MIT",
+      "optional": true,
+      "peer": true,
+      "dependencies": {
+        "@babel/code-frame": "~7.10.4",
+        "json5": "^2.2.3"
+      }
+    },
+    "node_modules/@expo/config-plugins/node_modules/@expo/plist": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.3.5.tgz",
+      "integrity": "sha512-9RYVU1iGyCJ7vWfg3e7c/NVyMFs8wbl+dMWZphtFtsqyN9zppGREU3ctlD3i8KUE0sCUTVnLjCWr+VeUIDep2g==",
+      "license": "MIT",
+      "optional": true,
+      "peer": true,
+      "dependencies": {
+        "@xmldom/xmldom": "^0.8.8",
+        "base64-js": "^1.2.3",
+        "xmlbuilder": "^15.1.1"
+      }
+    },
     "node_modules/@expo/config-plugins/node_modules/glob": {
       "version": "10.4.5",
       "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
       "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
       "license": "ISC",
+      "optional": true,
+      "peer": true,
       "dependencies": {
         "foreground-child": "^3.1.0",
         "jackspeak": "^3.1.2",
@@ -1677,6 +1727,8 @@
       "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
       "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
       "license": "ISC",
+      "optional": true,
+      "peer": true,
       "bin": {
         "semver": "bin/semver.js"
       },
@@ -1699,6 +1751,28 @@
         "@babel/highlight": "^7.10.4"
       }
     },
+    "node_modules/@expo/config/node_modules/@expo/config-plugins": {
+      "version": "54.0.2",
+      "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.2.tgz",
+      "integrity": "sha512-jD4qxFcURQUVsUFGMcbo63a/AnviK8WUGard+yrdQE3ZrB/aurn68SlApjirQQLEizhjI5Ar2ufqflOBlNpyPg==",
+      "license": "MIT",
+      "dependencies": {
+        "@expo/config-types": "^54.0.8",
+        "@expo/json-file": "~10.0.7",
+        "@expo/plist": "^0.4.7",
+        "@expo/sdk-runtime-versions": "^1.0.0",
+        "chalk": "^4.1.2",
+        "debug": "^4.3.5",
+        "getenv": "^2.0.0",
+        "glob": "^10.4.2",
+        "resolve-from": "^5.0.0",
+        "semver": "^7.5.4",
+        "slash": "^3.0.0",
+        "slugify": "^1.6.6",
+        "xcode": "^3.0.1",
+        "xml2js": "0.6.0"
+      }
+    },
     "node_modules/@expo/config/node_modules/glob": {
       "version": "10.4.5",
       "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
@@ -2131,6 +2205,48 @@
         "expo": "*"
       }
     },
+    "node_modules/@expo/prebuild-config/node_modules/@expo/config-plugins": {
+      "version": "54.0.2",
+      "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.2.tgz",
+      "integrity": "sha512-jD4qxFcURQUVsUFGMcbo63a/AnviK8WUGard+yrdQE3ZrB/aurn68SlApjirQQLEizhjI5Ar2ufqflOBlNpyPg==",
+      "license": "MIT",
+      "dependencies": {
+        "@expo/config-types": "^54.0.8",
+        "@expo/json-file": "~10.0.7",
+        "@expo/plist": "^0.4.7",
+        "@expo/sdk-runtime-versions": "^1.0.0",
+        "chalk": "^4.1.2",
+        "debug": "^4.3.5",
+        "getenv": "^2.0.0",
+        "glob": "^10.4.2",
+        "resolve-from": "^5.0.0",
+        "semver": "^7.5.4",
+        "slash": "^3.0.0",
+        "slugify": "^1.6.6",
+        "xcode": "^3.0.1",
+        "xml2js": "0.6.0"
+      }
+    },
+    "node_modules/@expo/prebuild-config/node_modules/glob": {
+      "version": "10.4.5",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+      "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+      "license": "ISC",
+      "dependencies": {
+        "foreground-child": "^3.1.0",
+        "jackspeak": "^3.1.2",
+        "minimatch": "^9.0.4",
+        "minipass": "^7.1.2",
+        "package-json-from-dist": "^1.0.0",
+        "path-scurry": "^1.11.1"
+      },
+      "bin": {
+        "glob": "dist/esm/bin.mjs"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
     "node_modules/@expo/prebuild-config/node_modules/semver": {
       "version": "7.7.2",
       "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
@@ -4315,6 +4431,15 @@
         "node": ">=0.6"
       }
     },
+    "node_modules/bignumber.js": {
+      "version": "9.3.1",
+      "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
+      "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
+      "license": "MIT",
+      "engines": {
+        "node": "*"
+      }
+    },
     "node_modules/binary-extensions": {
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -6159,6 +6284,28 @@
         }
       }
     },
+    "node_modules/expo/node_modules/@expo/config-plugins": {
+      "version": "54.0.2",
+      "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.2.tgz",
+      "integrity": "sha512-jD4qxFcURQUVsUFGMcbo63a/AnviK8WUGard+yrdQE3ZrB/aurn68SlApjirQQLEizhjI5Ar2ufqflOBlNpyPg==",
+      "license": "MIT",
+      "dependencies": {
+        "@expo/config-types": "^54.0.8",
+        "@expo/json-file": "~10.0.7",
+        "@expo/plist": "^0.4.7",
+        "@expo/sdk-runtime-versions": "^1.0.0",
+        "chalk": "^4.1.2",
+        "debug": "^4.3.5",
+        "getenv": "^2.0.0",
+        "glob": "^10.4.2",
+        "resolve-from": "^5.0.0",
+        "semver": "^7.5.4",
+        "slash": "^3.0.0",
+        "slugify": "^1.6.6",
+        "xcode": "^3.0.1",
+        "xml2js": "0.6.0"
+      }
+    },
     "node_modules/expo/node_modules/ci-info": {
       "version": "3.9.0",
       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
@@ -6875,6 +7022,17 @@
         "node": ">= 14"
       }
     },
+    "node_modules/i18n-js": {
+      "version": "4.5.1",
+      "resolved": "https://registry.npmjs.org/i18n-js/-/i18n-js-4.5.1.tgz",
+      "integrity": "sha512-n7jojFj1WC0tztgr0I8jqTXuIlY1xNzXnC3mjKX/YjJhimdM+jXM8vOmn9d3xQFNC6qDHJ4ovhdrGXrRXLIGkA==",
+      "license": "MIT",
+      "dependencies": {
+        "bignumber.js": "*",
+        "lodash": "*",
+        "make-plural": "*"
+      }
+    },
     "node_modules/ieee754": {
       "version": "1.2.1",
       "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@@ -8008,6 +8166,12 @@
         "yallist": "^3.0.2"
       }
     },
+    "node_modules/make-plural": {
+      "version": "7.4.0",
+      "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.4.0.tgz",
+      "integrity": "sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==",
+      "license": "Unicode-DFS-2016"
+    },
     "node_modules/makeerror": {
       "version": "1.0.12",
       "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
@@ -10095,6 +10259,26 @@
         "react-native": ">=0.48.4"
       }
     },
+    "node_modules/react-native-localize": {
+      "version": "3.5.4",
+      "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-3.5.4.tgz",
+      "integrity": "sha512-Sr0XMSh76vFxZtRznD5FE8ZZtA4Srr7+Ix4WePhoQdeiJzuJEFbiQ2Lk3JJhsTMZdsZKn3j1KUwpV3hhnm2BqA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@expo/config-plugins": "^9.0.0 || ^10.0.0",
+        "react": "*",
+        "react-native": "*",
+        "react-native-macos": "*"
+      },
+      "peerDependenciesMeta": {
+        "@expo/config-plugins": {
+          "optional": true
+        },
+        "react-native-macos": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/react-native-maps": {
       "version": "1.20.1",
       "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-1.20.1.tgz",

+ 3 - 1
package.json

@@ -41,6 +41,7 @@
     "expo-secure-store": "~15.0.7",
     "expo-status-bar": "~3.0.8",
     "expo-updates": "~29.0.11",
+    "i18n-js": "^4.5.1",
     "lodash": "^4.17.21",
     "nativewind": "^4.2.1",
     "prettier-plugin-tailwindcss": "^0.6.14",
@@ -50,6 +51,7 @@
     "react-native-element-dropdown": "^2.12.4",
     "react-native-gesture-handler": "~2.28.0",
     "react-native-keyboard-aware-scroll-view": "^0.9.5",
+    "react-native-localize": "^3.5.4",
     "react-native-maps": "1.20.1",
     "react-native-modal": "14.0.0-rc.1",
     "react-native-modern-datepicker": "^1.0.0-beta.91",
@@ -69,10 +71,10 @@
     "@types/crypto-js": "^4.2.2",
     "@types/react": "19.1.0",
     "@types/react-native-modern-datepicker": "^1.0.5",
+    "babel-preset-expo": "^54.0.1",
     "lightningcss": "^1.30.1",
     "patch-package": "^8.0.0",
     "postinstall-postinstall": "^2.1.0",
-    "babel-preset-expo": "^54.0.1",
     "tailwindcss": "^3.4.17",
     "typescript": "~5.9.2"
   },