Compare commits
593 Commits
v1.3.366
...
develop_sk
| Author | SHA1 | Date | |
|---|---|---|---|
| 513607e1ef | |||
| 6cc00ca348 | |||
| 21aa3adf7b | |||
| f6e900aaad | |||
| 41aea1d1bf | |||
| 5ed7e4013e | |||
| a4892633a3 | |||
| f73943785f | |||
| baeb3c139a | |||
| e1011688de | |||
| 4f1b1dd02f | |||
| ae176ffb6c | |||
| 2bfbac52fa | |||
| 10c9b896aa | |||
| ddb71668c4 | |||
| d3cd4adce8 | |||
| b5dfd10baa | |||
| 2e85975c41 | |||
| 8a5de7d442 | |||
| 8fd0a5243e | |||
| bdaad63b11 | |||
| 0ee37e8fda | |||
| 670e6e8b26 | |||
| 68b244a527 | |||
| 47b5e7b06e | |||
| 736854c959 | |||
| 7aef630e1b | |||
| 3eee6d663a | |||
| fc4429d828 | |||
| 9c14338c53 | |||
| 9b69c65bf8 | |||
| 398c45ade1 | |||
| ac157e8b93 | |||
| d49359bdf7 | |||
| 2ab18a1425 | |||
| c41e1ebd9d | |||
| 13af3c02a2 | |||
| 2674cf2554 | |||
| 1f107b4be7 | |||
| 74826b9acb | |||
| c122bfa637 | |||
| 462e464f8a | |||
| 7c346a118e | |||
| 01d60d2d49 | |||
| 73548e45b6 | |||
| 004a0b89a9 | |||
| 4cbaa92593 | |||
| 47a1bfb914 | |||
| 7759267d0b | |||
| a8cc945d61 | |||
| 725ef31640 | |||
| 1b70bd8b92 | |||
| 31123e503a | |||
| e8b2cf4660 | |||
| 279b329a1e | |||
| 30283fe513 | |||
| 8728c4f697 | |||
| 766dd88770 | |||
| 5118aed3ca | |||
| 987fd4770a | |||
| 3df6716abb | |||
| adf1cf3f1c | |||
| cfde51c063 | |||
| 8fd1dac254 | |||
| 13bf53e964 | |||
| 7feb282f13 | |||
| 4d60ea4535 | |||
| 393ee9d2bc | |||
| fac3c060e6 | |||
| 694df0282f | |||
| 6b65661384 | |||
| 1b611ca9de | |||
| 1d0366414c | |||
| fe13b0c2e0 | |||
| de297682bd | |||
| 2347ba871f | |||
| d18cd9645e | |||
| fbbf68c840 | |||
| ca8b26d48b | |||
| e126dd60fc | |||
| b2697eef17 | |||
| bfc6363957 | |||
| 1aea41026d | |||
| cafe132afc | |||
| 6496741144 | |||
| 22887310c0 | |||
| c4c82ea8f8 | |||
| d0b8f76303 | |||
| 4bbbac11a3 | |||
| 404ecf724f | |||
| 52f3ce64a4 | |||
| 3e15966c64 | |||
| 8a5e997262 | |||
| 9a0a407022 | |||
| 832c72df4a | |||
| 6e853024dc | |||
| 103737cec0 | |||
| 026e06a79f | |||
| 9fdf8377ee | |||
| 335f66a0b5 | |||
| f48e7c8274 | |||
| c32f052cb0 | |||
| 477f4f21be | |||
| 1a6b44ece9 | |||
| f4e8b5e5ef | |||
| f23eff1c09 | |||
| fc3f27e951 | |||
| 47ddb9b72a | |||
| 88db0e850b | |||
| 94b314ddc5 | |||
| 7fe97666e5 | |||
| 5ca0ba4a12 | |||
| 5c209b985d | |||
| 7048235138 | |||
| b099c6101e | |||
| 4a80acf9e1 | |||
| 8667b4017f | |||
| 21fbf62a8f | |||
| 9769501387 | |||
| 0b1a9b69a3 | |||
| 84be5b7617 | |||
| 9df1c3243b | |||
| 21ede72014 | |||
| 493fc19033 | |||
| f17a7feb9c | |||
| b0bd6515ac | |||
| 2bfc84e428 | |||
| a5dcaae5a8 | |||
| 395e967abe | |||
| c954ee6918 | |||
| 46303ce2b9 | |||
| 8752c8dc41 | |||
| 23a4008d2d | |||
| c6e43651e1 | |||
| c67db6e324 | |||
| 0ab9b5f03a | |||
| 79948ff405 | |||
| 862b87d5d1 | |||
| 295ce15fc4 | |||
| 5de4d4de57 | |||
| aec0bc2b18 | |||
| 93ce93bdd4 | |||
| 3957701172 | |||
| 5a12e2acb4 | |||
| adb7a25d1c | |||
| 2583396e83 | |||
| c80a5c8533 | |||
| fdd95729aa | |||
| e0bd9a678c | |||
| a508800b7c | |||
| 8ce3952a64 | |||
| fd468a60da | |||
| 917dfbba91 | |||
| 493241b8ad | |||
| a5b817ffb3 | |||
| 43c4e703b9 | |||
| 617c7ad9b6 | |||
| b06e3b61c8 | |||
| 02d395b7a4 | |||
| a5006b28fa | |||
| e57e7de6f7 | |||
| 3b12069a01 | |||
| f7199fdc98 | |||
| b8fd34c232 | |||
| 92a2407fb4 | |||
| 42d1ea52d4 | |||
| ba2eac4cee | |||
| f037cb3c28 | |||
| 7937ff5b7b | |||
| 2e3bc11563 | |||
| 26e0f4d3bb | |||
| 41c4623876 | |||
| 5e1d1bd0c1 | |||
| 139d16387c | |||
| 768f7fd38f | |||
| 4045adf0b2 | |||
| b2952b3c72 | |||
| ccad385a80 | |||
| 30cb3a7ac3 | |||
| e2dc776fd1 | |||
| c221e2cbdf | |||
| 2feb1fb2fc | |||
| 95325f3a39 | |||
| f09e0bf329 | |||
| 25ed80e4ba | |||
| 4bae1d1e98 | |||
| 5e14f217ea | |||
| 4a3a228a80 | |||
| 41fdae21f8 | |||
| 4fd5449e3e | |||
| 38391a4f12 | |||
| d4d04140ce | |||
| 2956b25d54 | |||
| 2571d95c99 | |||
| c7c1730cb0 | |||
| 87905dacb7 | |||
| 4e08f57c48 | |||
| 2ab2a48f02 | |||
| 517b6b6734 | |||
| 822bf89a2c | |||
| d3df44dd87 | |||
| 61b7041e71 | |||
| 75dbbc93d1 | |||
| 9acb5f4cce | |||
| a98fc0b905 | |||
| 1103e61152 | |||
| c033cb9608 | |||
| b48bb378ad | |||
| 954cfc6276 | |||
| 293716f146 | |||
| ce193a2195 | |||
| de6d2628f6 | |||
| dfccfa9089 | |||
| 2093784f38 | |||
| 6385a2c7b9 | |||
| c617d73bb4 | |||
| f8847ca483 | |||
| b9258830f2 | |||
| 370d10df7d | |||
| 2e9ee167b3 | |||
| 51ca6e1f23 | |||
| bf4c2b4750 | |||
| 9edb18deb5 | |||
| 9f2c049147 | |||
| c9b5de847d | |||
| 8d48068d23 | |||
| 91bbaabf1c | |||
| 11958ea87c | |||
| c0b2114683 | |||
| ceb889c3a3 | |||
| 9aad61f940 | |||
| 002c8252d6 | |||
| c76a7f0dad | |||
| 0ffde21dda | |||
| 9d2c953522 | |||
| 0520733080 | |||
| b61aceeac9 | |||
| 0105a3ca72 | |||
| 9623c542b5 | |||
| 500f705fc5 | |||
| 5d6ae85996 | |||
| 17510c03ca | |||
| 7831615b80 | |||
| 2de821804a | |||
| 58e0bdeef4 | |||
| 00a74b8a98 | |||
| 7e992183f5 | |||
| 7a446fdb52 | |||
| f6d6814e72 | |||
| c9ad04d4d9 | |||
| d9235bd81f | |||
| a55f8d1e73 | |||
| 16d62698c6 | |||
| 03ef57d75d | |||
| 12b29534f7 | |||
| f950392c22 | |||
| 06a38603f7 | |||
| 951571f95e | |||
| 7d4e18f7b1 | |||
| 7d6ade5a3b | |||
| 621838a0cb | |||
| 7bf5d9147d | |||
| c30c16897a | |||
| 5257fec08e | |||
| a6051abdf7 | |||
| d825377f39 | |||
| c229356547 | |||
| 064e5ed542 | |||
| dc31fc1f06 | |||
| 82df2f6e4b | |||
| b640d6156d | |||
| 1220653526 | |||
| a693827c79 | |||
| 9a8678057d | |||
| d4f64f37ea | |||
| 71887da5c9 | |||
| 6f9787605a | |||
| 01e7a098ba | |||
| 6a76e45e7f | |||
| 7a39446f4d | |||
| e6e17ebb89 | |||
| 9452cc2bdc | |||
| faa88e6668 | |||
| 5231e62550 | |||
| 5d40153907 | |||
| 64a5fde201 | |||
| f8b3303d0b | |||
| c30dfdc1eb | |||
| 4c9422bc5b | |||
| de73ffe64b | |||
| 78ae2c3239 | |||
| 34eabe7eee | |||
| 2b29e510ce | |||
| a94e80e670 | |||
| 0e399c5831 | |||
| 285211804b | |||
| 9af93869a8 | |||
| dac34b8824 | |||
| c26f241b2b | |||
| 5af587466c | |||
| 35f7dd38e3 | |||
|
|
1dbb7497ff | ||
|
|
6290fe36e5 | ||
|
|
14fe6223e4 | ||
|
|
9a11a5b0f7 | ||
|
|
fcfff0e590 | ||
|
|
600212aee5 | ||
|
|
879f42bd81 | ||
|
|
c66b994c12 | ||
|
|
fa18888df9 | ||
|
|
7e5970b76a | ||
|
|
79539325af | ||
|
|
dc77d6e318 | ||
|
|
9135f6f2a9 | ||
|
|
2c316d427f | ||
|
|
8a601f1596 | ||
|
|
e4649655b4 | ||
|
|
307a96d562 | ||
|
|
4b3a74cc58 | ||
|
|
8c0ae4f349 | ||
|
|
e1e29a02da | ||
|
|
5d0da71780 | ||
|
|
261a0363e5 | ||
|
|
09f75dbd4a | ||
|
|
9f9c31862e | ||
|
|
f770a11e68 | ||
|
|
ab327e1a4f | ||
|
|
130cc8f133 | ||
|
|
d31dfd509e | ||
|
|
2cc53de610 | ||
|
|
f938a17576 | ||
|
|
08b8924937 | ||
| 092a0d00b7 | |||
| 6a3992b8e2 | |||
| 0b5fb23eec | |||
| cb48492f38 | |||
| d046167518 | |||
| eeff5f0665 | |||
| da85d65fa2 | |||
| 78ad994cc4 | |||
| 48603c7daa | |||
| 4787759694 | |||
| de3722292e | |||
| 9c4cea5224 | |||
| 03c24b3c97 | |||
| 7dde0cdf8e | |||
| aa6f01ad5c | |||
| 1ee2ca5a54 | |||
| 804cdba152 | |||
| 46bec40eb7 | |||
| f42659c8ac | |||
| c1c4a4a675 | |||
| 219e0e794f | |||
| 5ddfbe46d1 | |||
| 84b821b6eb | |||
| bed58065b0 | |||
| 8e92ac6ebb | |||
| a44be677c5 | |||
| 6863f20879 | |||
| e035d5105e | |||
| 4c544a462e | |||
| e809adf98f | |||
| a83d26e368 | |||
| 8e122e5a09 | |||
| 7d4e257404 | |||
| 84ca900ddf | |||
| faca7eae3e | |||
| a053e23843 | |||
| 448268ecc7 | |||
| 3201f839eb | |||
| 3ab1e5e451 | |||
| ac0d8073ee | |||
| 47d9c4d2eb | |||
| 7a73356ed2 | |||
| 755ec4965c | |||
| b8f1c984f7 | |||
| 17e9c0e5ed | |||
| e2f8400ddc | |||
| 90f94e1a9a | |||
| 069ef1b592 | |||
| e754d008c5 | |||
| 4de271603d | |||
| 160c4d33ac | |||
| 7d27de087d | |||
| a7a70f41b1 | |||
| 06fc544f1a | |||
| f887bd37c4 | |||
| 57a171b993 | |||
| 6dc1627622 | |||
| 905368ec8d | |||
| 4a725be23f | |||
| 310062513b | |||
| cf2fd775ec | |||
| 2f9328bd33 | |||
| c7cc02c045 | |||
| b99a4a99d4 | |||
| 5b9d9f77d9 | |||
| 9ac54cc971 | |||
| 0d8e818f4d | |||
| 7cb051ed56 | |||
| f426cbb749 | |||
| 1a44e03755 | |||
| 10a67ddf93 | |||
| 52e93c7b39 | |||
| 2f08628758 | |||
| d3080bba7d | |||
| 133e151586 | |||
| ca8c07087f | |||
| abba613a4f | |||
| 9939685c94 | |||
| 94fb405eb3 | |||
| 231d2fd21d | |||
| bbfaec71c8 | |||
| c95b0b9721 | |||
| f5f52043d0 | |||
| 08d41a6925 | |||
| 25fcca811b | |||
| 869beca8f1 | |||
| 7b02bc7a8a | |||
| eed97a4825 | |||
| 2cdcd69108 | |||
|
|
2ad72c27cf | ||
|
|
d6dba6e3dd | ||
| 29fc822b91 | |||
| e9c06cc66d | |||
|
|
15adae81e8 | ||
| 79f2d95314 | |||
| 7f7bb49d8c | |||
| 47f5096a9c | |||
| 203b625ddd | |||
| d27c4e2f9f | |||
| 9b755e2993 | |||
| 443b14450b | |||
| 81b1fdd43d | |||
|
|
def413943e | ||
|
|
2100964073 | ||
| 10d4fa78fa | |||
| b6552b4802 | |||
| b2d2c75b54 | |||
| 1a67783d7a | |||
| a0895927c4 | |||
| 4e6f546019 | |||
| 34da68e16c | |||
| 2f03a98cc4 | |||
| 6ef92e2340 | |||
| 723a803e17 | |||
| 2fbb4695b4 | |||
| c84e053172 | |||
| 7ea2694878 | |||
| 66dd5de9f1 | |||
| e1bf2f2fdc | |||
| 07d20dfbf2 | |||
| 357eaac746 | |||
| e806987fa0 | |||
| 419912c590 | |||
| 84431d17c4 | |||
| 1543de142f | |||
| bf8d0511c1 | |||
| 37f4e6d78e | |||
| ea01d79bbd | |||
| d75754e14e | |||
| ea96419e05 | |||
| db2fe012d7 | |||
| 2de9d32b61 | |||
| a09237bc02 | |||
| 96367baaea | |||
| 5f079fb3d4 | |||
| 61316051de | |||
| 113803d97d | |||
| 2a89d0110c | |||
| 1784f75c47 | |||
| 07aa71c679 | |||
| 34698971af | |||
| 1217ea7d3e | |||
|
|
a106fe6bbf | ||
|
|
6af8d36184 | ||
| ce6c02b736 | |||
| 557da4c5a1 | |||
| 4c47b65b0e | |||
|
|
a4a6459d69 | ||
|
|
cace002228 | ||
| 3db24c3303 | |||
| 44cdd31b3d | |||
| de52becc21 | |||
| 1e71efc2e5 | |||
|
|
c49e7cab03 | ||
| b84dbf4e62 | |||
| e8e297d95b | |||
| 89eeb4f0b3 | |||
| 5968c4a980 | |||
| a546989a25 | |||
| 0af232e42c | |||
| 00b2d036cf | |||
| 51bc375d31 | |||
| 7e81313372 | |||
| 77c09923f2 | |||
| 942a4f3658 | |||
| 3831083f77 | |||
| 48d4081b3e | |||
| 25fb142765 | |||
| 3e2009069a | |||
| 9d8f005127 | |||
| de71435ba1 | |||
| 6a848ac23e | |||
| 3a262d80dd | |||
| df23655822 | |||
| f10351626a | |||
|
|
9e4d10e107 | ||
|
|
a091bc2869 | ||
|
|
c776965b66 | ||
|
|
977f4929c8 | ||
|
|
674eee4548 | ||
|
|
aa8e600ed1 | ||
|
|
79b7efe7da | ||
|
|
28b8ba66d1 | ||
|
|
73001530ea | ||
|
|
4eb654660c | ||
|
|
4dcbd4d447 | ||
|
|
29667873a7 | ||
|
|
5313c6ecea | ||
|
|
253e49ecd1 | ||
|
|
ce7684171b | ||
|
|
c3e7998146 | ||
|
|
8a4da1f719 | ||
|
|
6cd0bedb93 | ||
|
|
b0ba3f711a | ||
|
|
7f81827a9c | ||
|
|
f9c31f7239 | ||
|
|
1c3c61239b | ||
|
|
841ef69381 | ||
| 8478dd33d1 | |||
|
|
60a6666d22 | ||
|
|
bb1607235d | ||
|
|
07f66a5477 | ||
|
|
749f2a1919 | ||
|
|
4242ac0a80 | ||
| 5628b3f31a | |||
|
|
4ee8962824 | ||
|
|
fd249035a4 | ||
|
|
8fb7ea0fe8 | ||
| 88b66be9a1 | |||
| afcb031bd0 | |||
| a0d2bdaa7a | |||
| 0d8d5cb0c8 | |||
| 815abf9f6b | |||
| 7ca848d61b | |||
| e37415789d | |||
| 50944a082b | |||
| a259ed9dd3 | |||
| 4234464533 | |||
| 084f887e89 | |||
| 7f2d591e67 | |||
| 204affd6b1 | |||
| 2e340921c1 | |||
| 02d0bc49d3 | |||
| c9690430f7 | |||
| c4191dbc95 | |||
| 807c71b614 | |||
| 02cae612bb | |||
| cd41dd4ccf | |||
|
|
80e2b62724 | ||
| 49ed169506 | |||
|
|
80787fd0ea | ||
| c373cc402a | |||
| 47b0a18ef3 | |||
| 5864b29055 | |||
| fe82f87200 | |||
| 99813877b6 | |||
| 3552d15429 | |||
| 823b268380 | |||
| 066aff8fdf | |||
| eb801de7c3 | |||
|
|
7b235718c5 | ||
| 306b366f73 | |||
| a9450a7f7b | |||
| 59fb9384ca | |||
| e435b487a0 | |||
| 68a13c4b6c | |||
| 8060bf5cbf | |||
| 903cacab37 | |||
|
|
7f29cfcbf0 | ||
| 2d3bdd693e | |||
| 13a3ac8ab9 | |||
| 823f498622 | |||
|
|
1a389a38ff | ||
|
|
611bd04b95 | ||
| 2e2635cd95 | |||
|
|
9f4ffbe573 | ||
| 9be1f93e0e | |||
|
|
250624daef | ||
|
|
49d2797619 | ||
|
|
e22a510307 | ||
|
|
23c6430fb8 |
251
.gitea/workflows/ci.yml
Normal file
@ -0,0 +1,251 @@
|
||||
name: Flutter CI - Basic Setup
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master_sky
|
||||
pull_request:
|
||||
branches:
|
||||
- master_sky
|
||||
|
||||
jobs:
|
||||
# 基础设置任务:检出代码、提取版本号
|
||||
basic-setup:
|
||||
name: 🔧 Basic Setup
|
||||
runs-on: sky
|
||||
steps:
|
||||
# 1. 检出代码
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
# 2. 提取版本号
|
||||
- name: Extract Version
|
||||
id: version
|
||||
run: |
|
||||
# 获取最新的tag(按版本号排序,匹配vX.X.X_sky格式)
|
||||
LATEST_TAG=$(git tag --list "v*.*.*_sky" --sort=-version:refname | head -1)
|
||||
|
||||
# 如果没有找到tag,使用默认值
|
||||
if [ -z "$LATEST_TAG" ]; then
|
||||
LATEST_TAG="v1.0.0_sky"
|
||||
echo "📌 No tags found, using default: $LATEST_TAG"
|
||||
else
|
||||
echo "📌 Latest tag found: $LATEST_TAG"
|
||||
fi
|
||||
|
||||
# 提取基础版本号(去除_sky后缀)
|
||||
BASE_VERSION=$(echo "$LATEST_TAG" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -1)
|
||||
[ -z "$BASE_VERSION" ] && BASE_VERSION="v1.0.0"
|
||||
echo "📌 Base version: $BASE_VERSION"
|
||||
|
||||
# 解析版本号各部分
|
||||
MAJOR=$(echo $BASE_VERSION | cut -d'.' -f1 | sed 's/v//')
|
||||
MINOR=$(echo $BASE_VERSION | cut -d'.' -f2)
|
||||
PATCH=$(echo $BASE_VERSION | cut -d'.' -f3)
|
||||
echo "📌 Version components: Major=$MAJOR, Minor=$MINOR, Patch=$PATCH"
|
||||
|
||||
# 计算下一个版本号
|
||||
echo "📊 Calculating next version..."
|
||||
|
||||
# 获取当前提交与最新tag之间的所有提交消息
|
||||
COMMIT_MESSAGES=$(git log --oneline --format=%s $LATEST_TAG..HEAD 2>/dev/null || echo "")
|
||||
|
||||
# 统计需要递增的提交次数(过滤重复的提交消息)
|
||||
INCREMENT_COUNT=0
|
||||
if [ -n "$COMMIT_MESSAGES" ]; then
|
||||
# 使用awk过滤重复的提交消息并计数
|
||||
UNIQUE_MESSAGES=$(echo "$COMMIT_MESSAGES" | awk '!seen[$0]++')
|
||||
INCREMENT_COUNT=$(echo "$UNIQUE_MESSAGES" | wc -l)
|
||||
echo "📝 Found $INCREMENT_COUNT unique commit(s) since last tag"
|
||||
else
|
||||
echo "📝 No new commits since last tag"
|
||||
fi
|
||||
|
||||
# 计算新的版本号
|
||||
NEW_PATCH=$((PATCH + INCREMENT_COUNT))
|
||||
NEW_MINOR=$MINOR
|
||||
NEW_MAJOR=$MAJOR
|
||||
|
||||
# 处理版本号进位逻辑
|
||||
if [ $NEW_PATCH -ge 1000 ]; then
|
||||
NEW_MINOR=$((NEW_MINOR + NEW_PATCH / 1000))
|
||||
NEW_PATCH=$((NEW_PATCH % 1000))
|
||||
echo "🔄 Patch version overflow, incrementing minor version"
|
||||
fi
|
||||
|
||||
if [ $NEW_MINOR -ge 10 ]; then
|
||||
NEW_MAJOR=$((NEW_MAJOR + NEW_MINOR / 10))
|
||||
NEW_MINOR=$((NEW_MINOR % 10))
|
||||
echo "🔄 Minor version overflow, incrementing major version"
|
||||
fi
|
||||
|
||||
# 生成下一个版本号
|
||||
NEXT_VERSION="v${NEW_MAJOR}.${NEW_MINOR}.${NEW_PATCH}"
|
||||
NEXT_TAG="${NEXT_VERSION}_sky"
|
||||
|
||||
echo "🚀 Next version: $NEXT_VERSION"
|
||||
echo "🏷️ Next tag: $NEXT_TAG"
|
||||
echo "📈 Increment count: $INCREMENT_COUNT"
|
||||
|
||||
# 设置输出变量供后续任务使用(Gitea Actions格式)
|
||||
echo "NEXT_VERSION=$NEXT_VERSION" >> $GITEA_OUTPUT
|
||||
echo "NEXT_TAG=$NEXT_TAG" >> $GITEA_OUTPUT
|
||||
echo "INCREMENT_COUNT=$INCREMENT_COUNT" >> $GITEA_OUTPUT
|
||||
|
||||
# 输出版本信息
|
||||
echo "✅ Version extraction completed"
|
||||
# 5. 任务完成通知
|
||||
- name: Task Completion
|
||||
run: |
|
||||
echo "🎉 Basic CI setup completed successfully!"
|
||||
echo ""
|
||||
echo "📋 Tasks executed:"
|
||||
echo " ✅ Code checkout"
|
||||
echo " ✅ Version extraction"
|
||||
echo ""
|
||||
echo "🚀 Next steps: Building Flutter artifacts..."
|
||||
|
||||
# 构建Flutter制品任务
|
||||
build-artifacts:
|
||||
name: 🏗️ Build Flutter Artifacts
|
||||
runs-on: sky
|
||||
needs: basic-setup
|
||||
steps:
|
||||
# 1. 检出代码
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
# 4. 构建APK文件
|
||||
- name: Build APK
|
||||
run: |
|
||||
echo "🏗️ Building APK artifact..."
|
||||
|
||||
# 生成当前时间作为build-number(格式:YYYYMMDDHH)
|
||||
BUILD_NUMBER=$(date +%Y%m%d%H)
|
||||
echo "📅 Build number: $BUILD_NUMBER"
|
||||
|
||||
# 获取版本信息(从basic-setup任务传递)
|
||||
echo "🔍 Getting version info from basic-setup job..."
|
||||
|
||||
# 设置默认版本号,如果环境变量为空
|
||||
if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then
|
||||
VERSION_FOR_FILENAME="1-0-0"
|
||||
echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME"
|
||||
else
|
||||
# 格式化版本号用于文件名
|
||||
VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g')
|
||||
echo "✅ Version found: $VERSION_FOR_FILENAME"
|
||||
fi
|
||||
|
||||
# 设置APK文件名
|
||||
APK_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.apk"
|
||||
echo "📁 APK filename: $APK_FILENAME"
|
||||
|
||||
# 构建APK,使用新的构建参数
|
||||
flutter build apk --no-tree-shake-icons --release --flavor sky -t lib/main_sky_full.dart --build-number=$BUILD_NUMBER --build-name="sky-star-lock-release-$VERSION_FOR_FILENAME.apk"
|
||||
|
||||
# 重命名APK文件
|
||||
mv build/app/outputs/flutter-apk/app-sky-release.apk "$APK_FILENAME"
|
||||
|
||||
echo "✅ APK build completed: $APK_FILENAME"
|
||||
|
||||
# 5. 构建AAB文件
|
||||
- name: Build AAB
|
||||
run: |
|
||||
echo "🏗️ Building AAB artifact..."
|
||||
|
||||
# 生成当前时间作为build-number(格式:YYYYMMDDHH)
|
||||
BUILD_NUMBER=$(date +%Y%m%d%H)
|
||||
echo "📅 Build number: $BUILD_NUMBER"
|
||||
|
||||
# 获取版本信息(从basic-setup任务传递)
|
||||
echo "🔍 Getting version info from basic-setup job..."
|
||||
|
||||
# 设置默认版本号,如果环境变量为空
|
||||
if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then
|
||||
VERSION_FOR_FILENAME="1-0-0"
|
||||
echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME"
|
||||
else
|
||||
# 格式化版本号用于文件名
|
||||
VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g')
|
||||
echo "✅ Version found: $VERSION_FOR_FILENAME"
|
||||
fi
|
||||
|
||||
# 设置AAB文件名
|
||||
AAB_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.aab"
|
||||
echo "📁 AAB filename: $AAB_FILENAME"
|
||||
|
||||
# 构建AAB,使用新的构建参数
|
||||
flutter build appbundle --no-tree-shake-icons --release --flavor sky -t lib/main_sky_full.dart --build-number=$BUILD_NUMBER --build-name="sky-star-lock-release-$VERSION_FOR_FILENAME.aab"
|
||||
|
||||
# 重命名AAB文件
|
||||
mv build/app/outputs/bundle/skyRelease/app-sky-release.aab "$AAB_FILENAME"
|
||||
|
||||
echo "✅ AAB build completed: $AAB_FILENAME"
|
||||
|
||||
# 6. 构建iOS IPA文件(如果支持iOS构建)
|
||||
- name: Build iOS IPA
|
||||
if: runner.os == 'macos'
|
||||
run: |
|
||||
echo "🏗️ Building iOS IPA artifact..."
|
||||
|
||||
# 生成当前时间作为build-number(格式:YYYYMMDDHH)
|
||||
BUILD_NUMBER=$(date +%Y%m%d%H)
|
||||
echo "📅 Build number: $BUILD_NUMBER"
|
||||
|
||||
# 获取版本信息(从basic-setup任务传递)
|
||||
echo "🔍 Getting version info from basic-setup job..."
|
||||
|
||||
# 设置默认版本号,如果环境变量为空
|
||||
if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then
|
||||
VERSION_FOR_FILENAME="1-0-0"
|
||||
echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME"
|
||||
else
|
||||
# 格式化版本号用于文件名
|
||||
VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g')
|
||||
echo "✅ Version found: $VERSION_FOR_FILENAME"
|
||||
fi
|
||||
|
||||
# 设置IPA文件名
|
||||
IPA_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.ipa"
|
||||
echo "📁 IPA filename: $IPA_FILENAME"
|
||||
|
||||
# 配置iOS自动签名(CI环境使用自动签名)
|
||||
echo "🔧 Configuring iOS automatic code signing for CI environment..."
|
||||
|
||||
# 构建iOS IPA,使用自动签名模式
|
||||
flutter build ipa --no-tree-shake-icons --release --flavor sky -t lib/main_sky_full.dart --build-number=$BUILD_NUMBER --build-name="sky-star-lock-release-$VERSION_FOR_FILENAME.ipa" --codesign
|
||||
|
||||
# 重命名IPA文件
|
||||
mv build/ios/ipa/*.ipa "$IPA_FILENAME"
|
||||
|
||||
echo "✅ iOS IPA build completed: $IPA_FILENAME"
|
||||
|
||||
# 7. 上传制品
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: flutter-artifacts-release
|
||||
path: |
|
||||
sky-star-lock-release-*.apk
|
||||
sky-star-lock-release-*.aab
|
||||
sky-star-lock-release-*.ipa
|
||||
retention-days: 30
|
||||
|
||||
# 8. 构建完成通知
|
||||
- name: Build Completion
|
||||
run: |
|
||||
echo "🎉 Flutter artifacts build completed successfully!"
|
||||
echo ""
|
||||
echo "📦 Artifacts generated:"
|
||||
echo " ✅ APK: sky-star-lock-release-*.apk"
|
||||
echo " ✅ AAB: sky-star-lock-release-*.aab"
|
||||
if [ "${{ runner.os }}" == "macos" ]; then
|
||||
echo " ✅ IPA: sky-star-lock-release-*.ipa"
|
||||
fi
|
||||
echo ""
|
||||
echo "🏷️ Version: ${{ needs.basic-setup.outputs.NEXT_VERSION }}"
|
||||
echo "📁 Files available in artifacts section"
|
||||
@ -16,19 +16,19 @@ variables:
|
||||
- macos
|
||||
- flutter
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "develop"
|
||||
- if: $CI_COMMIT_BRANCH == "release"
|
||||
- if: $CI_COMMIT_BRANCH == "develop_sky"
|
||||
- if: $CI_COMMIT_BRANCH == "release_sky"
|
||||
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
||||
- if: $CI_COMMIT_BRANCH == "canary_release"
|
||||
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$/
|
||||
- if: $CI_COMMIT_BRANCH == "canary_release_sky"
|
||||
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?(_sky)?$/
|
||||
|
||||
.notify_rule:
|
||||
tags:
|
||||
- macos
|
||||
- flutter
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "develop"
|
||||
- if: $CI_COMMIT_BRANCH == "release"
|
||||
- if: $CI_COMMIT_BRANCH == "develop_sky"
|
||||
- if: $CI_COMMIT_BRANCH == "release_sky"
|
||||
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
||||
|
||||
.generate_tag_rule:
|
||||
@ -36,16 +36,16 @@ variables:
|
||||
- macos
|
||||
- flutter
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "master"
|
||||
- if: $CI_COMMIT_BRANCH == "master_sky"
|
||||
|
||||
.generate_next_version_rule:
|
||||
tags:
|
||||
- macos
|
||||
- flutter
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "develop"
|
||||
- if: $CI_COMMIT_BRANCH == "release"
|
||||
- if: $CI_COMMIT_BRANCH == "canary_release"
|
||||
- if: $CI_COMMIT_BRANCH == "develop_sky"
|
||||
- if: $CI_COMMIT_BRANCH == "release_sky"
|
||||
- if: $CI_COMMIT_BRANCH == "canary_release_sky"
|
||||
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
||||
|
||||
.print_env:
|
||||
@ -60,10 +60,20 @@ variables:
|
||||
.setup_fastlane_android:
|
||||
extends: .build_rule
|
||||
before_script:
|
||||
- export PUB_HOSTED_URL=https://pub.flutter-io.cn
|
||||
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
|
||||
- ls -li
|
||||
- export NEXT_VERSION="$(cat app_new.version)"
|
||||
# - flutter pub get
|
||||
- bundle install --gemfile android/Gemfile --quiet
|
||||
- export PATH="/opt/homebrew/bin:$PATH"
|
||||
- eval "$(rbenv init -)"
|
||||
- rbenv global 2.6.10 # 你实际用的 Ruby 版本
|
||||
- ruby -v
|
||||
- which ruby
|
||||
- gem env
|
||||
- bundle config mirror.https://rubygems.org https://mirrors.aliyun.com/rubygems/
|
||||
- bundle install --gemfile android/Gemfile --path vendor/bundle_android --quiet
|
||||
- flutter clean
|
||||
cache:
|
||||
paths:
|
||||
- app_new.version
|
||||
@ -71,10 +81,19 @@ variables:
|
||||
.setup_fastlane_ios:
|
||||
extends: .build_rule
|
||||
before_script:
|
||||
- export PUB_HOSTED_URL=https://pub.flutter-io.cn
|
||||
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
|
||||
- ls -li
|
||||
- export NEXT_VERSION="$(cat app_new.version)"
|
||||
# - flutter pub get
|
||||
- bundle install --gemfile ios/Gemfile --quiet
|
||||
- export PATH="/opt/homebrew/bin:$PATH"
|
||||
- eval "$(rbenv init -)"
|
||||
- rbenv global 2.6.10 # 你实际用的 Ruby 版本
|
||||
- ruby -v
|
||||
- which ruby
|
||||
- gem env
|
||||
- bundle config mirror.https://rubygems.org https://mirrors.aliyun.com/rubygems/
|
||||
- bundle install --gemfile ios/Gemfile --path vendor/bundle_ios --quiet
|
||||
- flutter clean
|
||||
cache:
|
||||
paths:
|
||||
- app_new.version
|
||||
@ -92,7 +111,6 @@ generate_git_tag:
|
||||
stage: generate_tag_or_version
|
||||
extends: .generate_tag_rule
|
||||
before_script:
|
||||
- bash pre_build.sh xhj
|
||||
- bash pre_build.sh sky
|
||||
- project_url=$(echo $CI_PROJECT_URL | sed 's/http:\/\///')
|
||||
- echo "project_url:$project_url"
|
||||
@ -149,16 +167,10 @@ create-release:
|
||||
- export StarLock_VERSION=${CI_COMMIT_TAG#*-}
|
||||
- echo "Uploading StarLock-${StarLock_VERSION} packages to
|
||||
${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/StarLock-${StarLock_VERSION}-*"
|
||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-xhj-release-${CI_COMMIT_TAG}.apk
|
||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.apk"'
|
||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-xhj_bundle-release-${CI_COMMIT_TAG}.aab
|
||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj_bundle-release-${CI_COMMIT_TAG}.aab"'
|
||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.apk
|
||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.apk"'
|
||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.aab
|
||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.aab"'
|
||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-xhj-release-${CI_COMMIT_TAG}.ipa
|
||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.ipa"'
|
||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-sky-release-${CI_COMMIT_TAG}.ipa
|
||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.ipa"'
|
||||
release:
|
||||
@ -168,21 +180,12 @@ create-release:
|
||||
ref: '$CI_COMMIT_TAG'
|
||||
assets:
|
||||
links:
|
||||
- name: 'xhj apk binary package'
|
||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.apk'
|
||||
link_type: 'package'
|
||||
- name: 'xhj bundle binary package'
|
||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj_bundle-release-${CI_COMMIT_TAG}.aab'
|
||||
link_type: 'package'
|
||||
- name: 'sky apk binary package'
|
||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.apk'
|
||||
link_type: 'package'
|
||||
- name: 'sky bundle binary package'
|
||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.aab'
|
||||
link_type: 'package'
|
||||
- name: 'xhj ipa binary package'
|
||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.ipa'
|
||||
link_type: 'package'
|
||||
- name: 'sky ipa binary package'
|
||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.ipa'
|
||||
link_type: 'package'
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# 星锁APP
|
||||
|
||||
测试ci
|
||||
星云项目组旗下的智能锁应用,其中锁相关数据接入星云平台,业务数据接入星锁自有后台。
|
||||
|
||||
基于Flutter技术架构,支持Android和iOS平台。
|
||||
@ -61,7 +61,7 @@ keytool -list -v -keystore android/app/sky.jks
|
||||
```
|
||||
|
||||
输入密码(在android/app/build.gradle:38可以看到)
|
||||
|
||||
测试ci
|
||||
一般需要的是:证书指纹-SHA1 看起来像 95:6B:***********(共59个字符)
|
||||
|
||||
## 编译
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "fastlane"
|
||||
|
||||
gem 'nkf', '0.2.0'
|
||||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
||||
|
||||
@ -9,21 +9,23 @@ GEM
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
artifactory (3.0.17)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.979.0)
|
||||
aws-sdk-core (3.209.1)
|
||||
aws-eventstream (1.3.2)
|
||||
aws-partitions (1.1107.0)
|
||||
aws-sdk-core (3.224.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-partitions (~> 1, >= 1.992.0)
|
||||
aws-sigv4 (~> 1.9)
|
||||
base64
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.94.0)
|
||||
aws-sdk-core (~> 3, >= 3.207.0)
|
||||
logger
|
||||
aws-sdk-kms (1.101.0)
|
||||
aws-sdk-core (~> 3, >= 3.216.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.166.0)
|
||||
aws-sdk-core (~> 3, >= 3.207.0)
|
||||
aws-sdk-s3 (1.186.1)
|
||||
aws-sdk-core (~> 3, >= 3.216.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.10.0)
|
||||
aws-sigv4 (1.11.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
base64 (0.2.0)
|
||||
@ -33,7 +35,7 @@ GEM
|
||||
commander (4.6.0)
|
||||
highline (~> 2.0.0)
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.6.5)
|
||||
digest-crc (0.7.0)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
@ -59,8 +61,8 @@ GEM
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.4)
|
||||
multipart-post (~> 2)
|
||||
faraday-multipart (1.1.0)
|
||||
multipart-post (~> 2.0)
|
||||
faraday-net_http (1.0.2)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
@ -68,8 +70,8 @@ GEM
|
||||
faraday-retry (1.0.3)
|
||||
faraday_middleware (1.2.1)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.3.1)
|
||||
fastlane (2.222.0)
|
||||
fastimage (2.4.0)
|
||||
fastlane (2.227.2)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
@ -85,6 +87,7 @@ GEM
|
||||
faraday-cookie_jar (~> 0.0.6)
|
||||
faraday_middleware (~> 1.0)
|
||||
fastimage (>= 2.1.0, < 3.0.0)
|
||||
fastlane-sirp (>= 1.0.0)
|
||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||
google-apis-androidpublisher_v3 (~> 0.3)
|
||||
google-apis-playcustomapp_v1 (~> 0.1)
|
||||
@ -108,9 +111,11 @@ GEM
|
||||
tty-spinner (>= 0.8.0, < 1.0.0)
|
||||
word_wrap (~> 1.0.0)
|
||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty (~> 0.4.1)
|
||||
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
||||
fastlane-plugin-pgyer (0.2.9)
|
||||
fastlane-sirp (1.0.0)
|
||||
sysrandom (~> 1.0)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.54.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
@ -149,23 +154,26 @@ GEM
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (>= 0.16, < 2.a)
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.7)
|
||||
http-cookie (1.0.8)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
httpclient (2.9.0)
|
||||
mutex_m
|
||||
jmespath (1.6.2)
|
||||
json (2.7.2)
|
||||
jwt (2.9.1)
|
||||
json (2.7.6)
|
||||
jwt (2.10.1)
|
||||
base64
|
||||
logger (1.7.0)
|
||||
mini_magick (4.13.2)
|
||||
mini_mime (1.1.5)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.4.1)
|
||||
nanaimo (0.3.0)
|
||||
mutex_m (0.3.0)
|
||||
nanaimo (0.4.0)
|
||||
naturally (2.2.1)
|
||||
nkf (0.2.0)
|
||||
optparse (0.5.0)
|
||||
optparse (0.6.0)
|
||||
os (1.1.4)
|
||||
plist (3.7.1)
|
||||
plist (3.7.2)
|
||||
public_suffix (5.1.1)
|
||||
rake (13.2.1)
|
||||
representable (3.2.0)
|
||||
@ -173,10 +181,10 @@ GEM
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.3.7)
|
||||
rouge (2.0.7)
|
||||
rexml (3.4.1)
|
||||
rouge (3.28.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
rubyzip (2.4.1)
|
||||
security (0.1.5)
|
||||
signet (0.18.0)
|
||||
addressable (~> 2.8)
|
||||
@ -186,6 +194,7 @@ GEM
|
||||
simctl (1.6.10)
|
||||
CFPropertyList
|
||||
naturally
|
||||
sysrandom (1.0.5)
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
@ -198,15 +207,15 @@ GEM
|
||||
unf (0.2.0)
|
||||
unicode-display_width (2.6.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.25.0)
|
||||
xcodeproj (1.27.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (>= 3.3.2, < 4.0)
|
||||
xcpretty (0.3.0)
|
||||
rouge (~> 2.0.7)
|
||||
nanaimo (~> 0.4.0)
|
||||
rexml (>= 3.3.6, < 4.0)
|
||||
xcpretty (0.4.1)
|
||||
rouge (~> 3.28.0)
|
||||
xcpretty-travis-formatter (1.0.1)
|
||||
xcpretty (~> 0.2, >= 0.0.7)
|
||||
|
||||
@ -216,6 +225,7 @@ PLATFORMS
|
||||
DEPENDENCIES
|
||||
fastlane
|
||||
fastlane-plugin-pgyer
|
||||
nkf (= 0.2.0)
|
||||
|
||||
BUNDLED WITH
|
||||
1.17.2
|
||||
|
||||
@ -119,9 +119,9 @@ android {
|
||||
resValue "string", "app_name", "TTLock Pro"
|
||||
manifestPlaceholders = [
|
||||
JPUSH_PKGNAME : "com.skychip.lock",
|
||||
JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey
|
||||
JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey
|
||||
JPUSH_CHANNEL : "flutter_channel",
|
||||
XIAOMI_APPID : "MI-2882303761520287291",
|
||||
XIAOMI_APPID : "MI-2882303761520287291",
|
||||
XIAOMI_APPKEY : "MI-5352028744291",
|
||||
OPPO_APPKEY : "OP-ccae67a4a8c1470a8350b0d6a89f8105",
|
||||
OPPO_APPID : "OP-31586713",
|
||||
@ -174,9 +174,9 @@ android {
|
||||
signingConfig signingConfigs.xhj_bundle
|
||||
resValue "string", "app_name", "Star Lock"
|
||||
manifestPlaceholders = [
|
||||
JPUSH_PKGNAME : "ltd.xhjcn.lock",
|
||||
JPUSH_APPKEY : "5ccdb9b8d3faaae66ba5d02e",
|
||||
JPUSH_CHANNEL : "flutter_channel",
|
||||
JPUSH_PKGNAME: "ltd.xhjcn.lock",
|
||||
JPUSH_APPKEY : "5ccdb9b8d3faaae66ba5d02e",
|
||||
JPUSH_CHANNEL: "flutter_channel",
|
||||
]
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro'
|
||||
}
|
||||
@ -226,7 +226,7 @@ android {
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
|
||||
minSdkVersion 25
|
||||
targetSdkVersion 34
|
||||
targetSdkVersion 35
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
@ -328,7 +328,7 @@ dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
// implementation('com.amap.api:location:5.6.0')
|
||||
// implementation('com.amap.api:3dmap:8.1.0')
|
||||
implementation('com.amap.api:3dmap-location-search:latest.integration')
|
||||
// implementation('com.amap.api:3dmap-location-search:latest.integration')
|
||||
|
||||
implementation 'cn.jiguang.sdk:jpush:5.2.3'
|
||||
// 接入华为厂商
|
||||
@ -358,8 +358,14 @@ dependencies {
|
||||
implementation 'com.umeng.umsdk:asms:1.8.5'
|
||||
//</cn>
|
||||
//<com>
|
||||
implementation 'cn.jiguang.sdk.plugin:fcm:5.2.3'
|
||||
implementation 'com.google.firebase:firebase-messaging:23.0.5'
|
||||
// implementation 'cn.jiguang.sdk.plugin:fcm:5.2.3'
|
||||
// implementation 'com.google.firebase:firebase-messaging:23.0.5'
|
||||
//</com>
|
||||
|
||||
//FCM云消息与极光FCM插件
|
||||
implementation 'com.google.firebase:firebase-messaging:23.2.1'
|
||||
implementation 'cn.jiguang.sdk.plugin:fcm:5.2.2'
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -92,6 +92,22 @@
|
||||
-dontwarn cn.jiguang.**
|
||||
-keep class cn.jiguang.** { *; }
|
||||
|
||||
-dontwarn cn.com.chinatelecom.**
|
||||
-keep class cn.com.chinatelecom.** {*;}
|
||||
-dontwarn com.ct.**
|
||||
-keep class com.ct.** {*;}
|
||||
-dontwarn a.a.**
|
||||
-keep class a.a.** {*;}
|
||||
-dontwarn com.cmic.**
|
||||
-keep class com.cmic.** {*;}
|
||||
-dontwarn com.unicom.**
|
||||
-keep class com.unicom.** {*;}
|
||||
-dontwarn com.sdk.**
|
||||
-keep class com.sdk.** {*;}
|
||||
|
||||
-dontwarn com.sdk.**
|
||||
-keep class com.sdk.** {*;}
|
||||
|
||||
-dontwarn com.google.**
|
||||
-keep class com.google.gson.** {*;}
|
||||
-keep class com.google.protobuf.** {*;}
|
||||
|
||||
@ -92,6 +92,22 @@
|
||||
-dontwarn cn.jiguang.**
|
||||
-keep class cn.jiguang.** { *; }
|
||||
|
||||
-dontwarn cn.com.chinatelecom.**
|
||||
-keep class cn.com.chinatelecom.** {*;}
|
||||
-dontwarn com.ct.**
|
||||
-keep class com.ct.** {*;}
|
||||
-dontwarn a.a.**
|
||||
-keep class a.a.** {*;}
|
||||
-dontwarn com.cmic.**
|
||||
-keep class com.cmic.** {*;}
|
||||
-dontwarn com.unicom.**
|
||||
-keep class com.unicom.** {*;}
|
||||
-dontwarn com.sdk.**
|
||||
-keep class com.sdk.** {*;}
|
||||
|
||||
-dontwarn com.sdk.**
|
||||
-keep class com.sdk.** {*;}
|
||||
|
||||
-dontwarn com.google.**
|
||||
-keep class com.google.gson.** {*;}
|
||||
-keep class com.google.protobuf.** {*;}
|
||||
|
||||
21
android/app/proguard-rules.pro
vendored
@ -92,6 +92,27 @@
|
||||
-dontwarn cn.jiguang.**
|
||||
-keep class cn.jiguang.** { *; }
|
||||
|
||||
-dontwarn cn.jpush.**
|
||||
-keep class cn.jpush.** {*;}
|
||||
-dontwarn cn.jiguang.**
|
||||
-keep class cn.jiguang.** {*;}
|
||||
|
||||
-dontwarn cn.com.chinatelecom.**
|
||||
-keep class cn.com.chinatelecom.** {*;}
|
||||
-dontwarn com.ct.**
|
||||
-keep class com.ct.** {*;}
|
||||
-dontwarn a.a.**
|
||||
-keep class a.a.** {*;}
|
||||
-dontwarn com.cmic.**
|
||||
-keep class com.cmic.** {*;}
|
||||
-dontwarn com.unicom.**
|
||||
-keep class com.unicom.** {*;}
|
||||
-dontwarn com.sdk.**
|
||||
-keep class com.sdk.** {*;}
|
||||
|
||||
-dontwarn com.sdk.**
|
||||
-keep class com.sdk.** {*;}
|
||||
|
||||
-dontwarn com.google.**
|
||||
-keep class com.google.gson.** {*;}
|
||||
-keep class com.google.protobuf.** {*;}
|
||||
|
||||
@ -29,6 +29,8 @@
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||
<!--允许读设备日志,用于问题排查-->
|
||||
<uses-permission android:name="android.permission.READ_LOGS" />
|
||||
<!--联系人-->
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
|
||||
<!--相机-->
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
|
||||
@ -2,11 +2,13 @@ package com.skychip.lock
|
||||
|
||||
import io.flutter.app.FlutterApplication
|
||||
import android.util.Log
|
||||
import cn.jiguang.api.utils.JCollectionAuth;
|
||||
|
||||
class App : FlutterApplication() {
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
Log.d("MyApplication", "Application has started")
|
||||
JCollectionAuth.setAuth(getApplicationContext(), false);
|
||||
}
|
||||
}
|
||||
BIN
android/app/src/main/res/drawable/check.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
android/app/src/main/res/drawable/icon_left_grey.png
Normal file
|
After Width: | Height: | Size: 214 B |
5
android/app/src/main/res/drawable/log_btn_background.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- 设置背景颜色为透明 -->
|
||||
<solid android:color="@android:color/transparent"/>
|
||||
</shape>
|
||||
BIN
android/app/src/main/res/drawable/sky_login_btn_normal.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
android/app/src/main/res/drawable/uncheck.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
android/app/src/main/res/drawable/xhj_login_btn_normal.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
3
android/app/src/main/res/raw/shrink_keep.xml
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:keep="@drawable/sky_login_btn_normal,@drawable/xhj_login_btn_normal,@drawable/icon_left_grey,@drawable/check,@drawable/uncheck"/>
|
||||
@ -9,7 +9,7 @@
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4todo",
|
||||
"android_client_info": {
|
||||
"package_name": "com.xhjcn.lock"
|
||||
"package_name": "com.xhjcn.lock.pre"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
@ -28,7 +28,7 @@
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4todo",
|
||||
"android_client_info": {
|
||||
"package_name": "com.xhjcn.lock.local"
|
||||
"package_name": "com.xhjcn.lock.pre"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
|
||||
@ -8,25 +8,21 @@ export ENV_BUILD_WORKSPACE=${CI_PROJECT_DIR}
|
||||
echo "GITLAB_WORKSPACE: ${CI_PROJECT_DIR}"
|
||||
cd ${CI_PROJECT_DIR}/android
|
||||
echo "ENV_BUILD_TAG:${ENV_BUILD_TAG},ENV_BUILD_BRANCH:${ENV_BUILD_BRANCH}"
|
||||
regex='^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$'
|
||||
if [[ "${ENV_BUILD_BRANCH}" == "canary_release" ]]; then
|
||||
# 只支持 v1.2.3_sky 这种tag格式
|
||||
regex='^v[0-9]+\.[0-9]+\.[0-9]+_sky$'
|
||||
if [[ "${ENV_BUILD_BRANCH}" == "canary_release_sky" ]]; then
|
||||
echo "===build canary_release: ${NEXT_VERSION}"
|
||||
export ENV_BUILD_TAG=${NEXT_VERSION}
|
||||
bundle exec fastlane release_apk flavor:xhj --verbose
|
||||
bundle exec fastlane release_apk flavor:sky --verbose
|
||||
elif [[ $ENV_BUILD_TAG =~ $regex ]]; then
|
||||
echo "===build release===$ENV_BUILD_TAG"
|
||||
bundle exec fastlane release_apk flavor:xhj --verbose
|
||||
bundle exec fastlane release_apk flavor:sky --verbose
|
||||
bundle exec fastlane release_bundle flavor:xhj_bundle --verbose
|
||||
bundle exec fastlane release_bundle flavor:sky --verbose
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "develop" ]]; then
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "develop_sky" ]]; then
|
||||
echo "===build dev===${NEXT_VERSION}"
|
||||
bundle exec fastlane beta flavor:xhj env:dev --verbose
|
||||
bundle exec fastlane beta flavor:sky env:dev --verbose
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "release" ]] || [[ "${ENV_BUILD_BRANCH}" == "feat_devops" ]] ; then
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "release_sky" || "${ENV_BUILD_BRANCH}" == "feat_devops_sky" ]] ; then
|
||||
echo "===build pre===${NEXT_VERSION}"
|
||||
bundle exec fastlane beta flavor:xhj env:pre --verbose
|
||||
bundle exec fastlane beta flavor:sky env:pre --verbose
|
||||
fi
|
||||
exit 0
|
||||
@ -44,10 +44,6 @@ platform :android do
|
||||
print_header '🏁 Before All'
|
||||
print_log $current_branch
|
||||
print_log $current_tag
|
||||
print_log $path_file_preview_apk_default
|
||||
print_log $path_file_release_apk_default
|
||||
print_log $path_file_preview_apk_copy
|
||||
print_log $path_file_release_apk_copy
|
||||
Dir.chdir "../.." do
|
||||
sh('pwd')
|
||||
end
|
||||
@ -55,11 +51,9 @@ platform :android do
|
||||
|
||||
desc "Submit a new Beta Build to Pgy Beta"
|
||||
lane :beta do |options|
|
||||
flavor = options[:flavor]
|
||||
env = options[:env]
|
||||
UI.user_error!("flavor is required") unless flavor
|
||||
UI.user_error!("env is required") unless env
|
||||
print_log "build #{flavor} on #{env}"
|
||||
print_log "build sky on #{env}"
|
||||
build_number = Time.now.strftime("%Y%m%d%H")
|
||||
print_log "BuildNo #{build_number}"
|
||||
build_version = $next_version
|
||||
@ -69,11 +63,12 @@ platform :android do
|
||||
print_log "last_git_commit_short_hash #{short_hash}"
|
||||
remove_zone_pre_build(zone:"com")
|
||||
Dir.chdir "../.." do
|
||||
sh("flutter","clean")
|
||||
sh("flutter","pub","get")
|
||||
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}_#{env}", "-t", "lib/main_#{flavor}_#{env}.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "sky_#{env}", "-t", "lib/main_sky_#{env}.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
end
|
||||
old_file_path = File.join($path_apk_output_dir, "app-#{flavor}_#{env}-release.apk")
|
||||
new_file_path = File.join($path_apk_output_dir, "starlock-#{flavor}-preview-#{build_version}.apk")
|
||||
old_file_path = File.join($path_apk_output_dir, "app-sky_#{env}-release.apk")
|
||||
new_file_path = File.join($path_apk_output_dir, "starlock-sky-preview-#{build_version}.apk")
|
||||
File.rename(old_file_path, new_file_path)
|
||||
logs = changelog_from_git_commits(
|
||||
pretty: '- %s (%cn)',
|
||||
@ -85,9 +80,7 @@ platform :android do
|
||||
|
||||
desc "Build & upload a new version to Gitlab Release"
|
||||
lane :release_apk do |options|
|
||||
flavor = options[:flavor]
|
||||
UI.user_error!("flavor is required") unless flavor
|
||||
print_log "build flavor for: #{flavor}"
|
||||
print_log "build sky"
|
||||
build_number = Time.now.strftime("%Y%m%d%H")
|
||||
print_log "BuildNo #{build_number}"
|
||||
build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0]
|
||||
@ -98,18 +91,16 @@ platform :android do
|
||||
remove_zone_pre_build(zone:"com")
|
||||
Dir.chdir "../.." do
|
||||
sh("flutter","pub","get")
|
||||
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}", "-t", "lib/main_#{flavor}_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "sky", "-t", "lib/main_sky_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
end
|
||||
old_apk_file_path = File.join($path_apk_output_dir, "app-#{flavor}-release.apk")
|
||||
new_apk_file_path = File.join($path_apk_output_dir, "starlock-#{flavor}-release-"+$current_tag+".apk")
|
||||
old_apk_file_path = File.join($path_apk_output_dir, "app-sky-release.apk")
|
||||
new_apk_file_path = File.join($path_apk_output_dir, "starlock-sky-release-"+$current_tag+".apk")
|
||||
File.rename(old_apk_file_path, new_apk_file_path)
|
||||
end
|
||||
|
||||
desc "Build & upload a new version to Gitlab Release"
|
||||
lane :release_bundle do |options|
|
||||
flavor = options[:flavor]
|
||||
UI.user_error!("flavor is required") unless flavor
|
||||
print_log "build flavor for: #{flavor}"
|
||||
print_log "build sky"
|
||||
build_number = Time.now.strftime("%Y%m%d%H")
|
||||
print_log "BuildNo #{build_number}"
|
||||
build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0]
|
||||
@ -120,10 +111,10 @@ platform :android do
|
||||
remove_zone_pre_build(zone:"cn")
|
||||
Dir.chdir "../.." do
|
||||
sh("flutter","pub","get")
|
||||
sh("flutter", "build", "appbundle", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}", "-t", "lib/main_#{flavor}_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
sh("flutter", "build", "appbundle", "--no-tree-shake-icons", "--release", "--flavor", "sky", "-t", "lib/main_sky_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
end
|
||||
old_bundle_file_path = File.join($path_bundle_output_dir , "/#{flavor}Release/app-#{flavor}-release.aab")
|
||||
new_bundle_file_path = File.join($path_bundle_output_dir , "/#{flavor}Release/starlock-#{flavor}-release-"+$current_tag+".aab")
|
||||
old_bundle_file_path = File.join($path_bundle_output_dir , "/skyRelease/app-sky-release.aab")
|
||||
new_bundle_file_path = File.join($path_bundle_output_dir , "/skyRelease/starlock-sky-release-"+$current_tag+".aab")
|
||||
File.rename(old_bundle_file_path, new_bundle_file_path)
|
||||
sh('cp',new_bundle_file_path,$path_apk_output_dir)
|
||||
end
|
||||
|
||||
@ -1,86 +1,87 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<title>play</title>
|
||||
</head>
|
||||
<style>
|
||||
html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden; /* 防止滚动条出现 */
|
||||
overflow: hidden;
|
||||
/* 防止滚动条出现 */
|
||||
}
|
||||
|
||||
body {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: white;
|
||||
overflow: hidden; /* 防止滚动条出现 */
|
||||
overflow: hidden;
|
||||
/* 防止滚动条出现 */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#player {
|
||||
object-fit:cover;
|
||||
height: 56vh;
|
||||
transform: rotate(-90deg);
|
||||
object-fit: cover;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
|
||||
<video autoplay muted poster="images/loader-thumb.jpg"
|
||||
id="player">
|
||||
</video>
|
||||
<script src="jmuxer.min.js"></script>
|
||||
<script>
|
||||
<video autoplay muted poster="images/loader-thumb.jpg" id="player">
|
||||
</video>
|
||||
<script src="jmuxer.min.js"></script>
|
||||
<script>
|
||||
|
||||
if (typeof JMuxer === 'undefined') {
|
||||
console.error("JMuxer is not defined. Check if jmuxer.min.js is loaded correctly.");
|
||||
} else {
|
||||
console.log("JMuxer loaded successfully.");
|
||||
}
|
||||
let jmuxer;
|
||||
window.onload = function() {
|
||||
try {
|
||||
jmuxer = new JMuxer({
|
||||
node: 'player',
|
||||
mode: 'video',
|
||||
debug: false,
|
||||
webgl: true, // 启用WebGL加速
|
||||
webglOptions: {
|
||||
preserveDrawingBuffer: false,
|
||||
antialias: false
|
||||
},
|
||||
flushingTime: 0, // 禁用自动刷新
|
||||
clearBuffer: false, // 保留解码缓存
|
||||
fps:20,
|
||||
onReady: () => {
|
||||
console.log('播放器初始化完成');
|
||||
// 通知Flutter端准备就绪
|
||||
window.Flutter.postMessage('ready');
|
||||
}
|
||||
});
|
||||
jmuxer.reset();
|
||||
console.log("JMuxer initialized.");
|
||||
} catch (e) {
|
||||
console.error("Error initializing JMuxer:", e);
|
||||
if (typeof JMuxer === 'undefined') {
|
||||
console.error("JMuxer is not defined. Check if jmuxer.min.js is loaded correctly.");
|
||||
} else {
|
||||
console.log("JMuxer loaded successfully.");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// Feed data from Flutter
|
||||
function feedDataFromFlutter(data) {
|
||||
const buffer = new Uint8Array(data);
|
||||
jmuxer.feed({
|
||||
video: buffer,
|
||||
|
||||
let jmuxer;
|
||||
window.onload = function () {
|
||||
try {
|
||||
jmuxer = new JMuxer({
|
||||
node: 'player',
|
||||
mode: 'video',
|
||||
debug: false,
|
||||
readfpsfromtrack: true,
|
||||
flushingTime: 0, // 立即刷新
|
||||
clearBuffer: true, // 丢弃延迟帧
|
||||
fps: 25, // 强制指定帧率
|
||||
onReady: () => {
|
||||
console.log('播放器初始化完成');
|
||||
// 通知Flutter端准备就绪
|
||||
window.Flutter.postMessage('ready');
|
||||
},
|
||||
onMissingVideoFrames: (missingFrames) => {
|
||||
// console.log('Missing video frames:', missingFrames);
|
||||
},
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("Error initializing JMuxer:", e);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// Feed data from Flutter
|
||||
function feedDataFromFlutter(data) {
|
||||
const buffer = new Uint8Array(data);
|
||||
jmuxer.feed({
|
||||
video: buffer,
|
||||
duration: 40 // 每帧持续时间40ms(25fps)
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Optional: notify Flutter
|
||||
@ -92,11 +93,27 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Function to return to Flutter page
|
||||
function returnToFlutter() {
|
||||
notifyFlutter("Returning to Flutter page");
|
||||
}
|
||||
</script>
|
||||
// Function to return to Flutter page
|
||||
function returnToFlutter() {
|
||||
notifyFlutter("Returning to Flutter page");
|
||||
}
|
||||
|
||||
// 添加清理方法
|
||||
function cleanupJMuxer() {
|
||||
if (jmuxer) {
|
||||
try {
|
||||
jmuxer.destroy();
|
||||
jmuxer = null;
|
||||
console.log('JMuxer cleaned up successfully');
|
||||
window.Flutter.postMessage('cleanup_complete');
|
||||
} catch (e) {
|
||||
console.error('Error cleaning up JMuxer:', e);
|
||||
window.Flutter.postMessage('cleanup_error');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</html>
|
||||
BIN
images/guide/1.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
images/guide/2.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
images/guide/3.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
images/guide/4.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
images/main/addFingerprint/0.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
images/main/addFingerprint/1.jpg
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
images/main/addFingerprint/2.jpg
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
images/main/addFingerprint/3.jpg
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
images/main/addFingerprint/4.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
images/main/addFingerprint/5.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
images/main/addFingerprint/6.jpg
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
images/other/2.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
images/other/ai.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
images/other/matter.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
images/other/tuya.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
images/sky_login_btn_normal.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
images/xhj_login_btn_normal.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
@ -3,5 +3,6 @@ source "https://rubygems.org"
|
||||
gem "fastlane"
|
||||
gem 'cocoapods', '1.14.3'
|
||||
gem 'public_suffix', '~> 4.0'
|
||||
gem 'nkf', '0.2.0'
|
||||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
||||
|
||||
@ -282,6 +282,7 @@ DEPENDENCIES
|
||||
cocoapods (= 1.14.3)
|
||||
fastlane
|
||||
fastlane-plugin-pgyer
|
||||
nkf (= 0.2.0)
|
||||
public_suffix (~> 4.0)
|
||||
|
||||
BUNDLED WITH
|
||||
|
||||
31
ios/LCKBridge.swift
Normal file
@ -0,0 +1,31 @@
|
||||
import Foundation
|
||||
import UIKit
|
||||
import LiveCommunicationKit
|
||||
|
||||
@objc class LCKBridge: NSObject {
|
||||
@objc static func presentCallInterfaceFromRootVC(_ rootVC: UIViewController, callerName: String) {
|
||||
if #available(iOS 17.4, *) {
|
||||
// 配置ConversationManager
|
||||
let config = ConversationManager.Configuration(
|
||||
ringtoneName: "notes_of_the_optimistic",
|
||||
iconTemplateImageData: UIImage(named: "AppIcon")?.pngData(),
|
||||
maximumConversationGroups: 1,
|
||||
maximumConversationsPerConversationGroup: 1,
|
||||
includesConversationInRecents: false,
|
||||
supportsVideo: false,
|
||||
supportedHandleTypes: [.generic, .phoneNumber, .emailAddress]
|
||||
)
|
||||
let manager = ConversationManager(configuration: config)
|
||||
let local = Handle(type: .generic, value: callerName, displayName: callerName)
|
||||
let update = Conversation.Update(localMember: local, members: [local], activeRemoteMembers: [local])
|
||||
Task {
|
||||
do {
|
||||
try await manager.reportNewIncomingConversation(uuid: UUID(), update: update)
|
||||
print("成功报告新来电")
|
||||
} catch {
|
||||
print("报告新来电失败: \(error.localizedDescription)")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
170
ios/Podfile.lock
@ -1,6 +1,4 @@
|
||||
PODS:
|
||||
- aj_captcha_flutter (0.0.1):
|
||||
- Flutter
|
||||
- AlicloudPush (1.9.9.8):
|
||||
- AlicloudSender
|
||||
- AlicloudUT
|
||||
@ -15,17 +13,6 @@ PODS:
|
||||
- AlicloudUTDID
|
||||
- aliyun_face_plugin (0.0.1):
|
||||
- Flutter
|
||||
- AMap3DMap (10.0.700):
|
||||
- AMapFoundation (>= 1.8.0)
|
||||
- amap_flutter_location (0.0.1):
|
||||
- AMapLocation
|
||||
- Flutter
|
||||
- amap_flutter_map (0.0.1):
|
||||
- AMap3DMap
|
||||
- Flutter
|
||||
- AMapFoundation (1.8.2)
|
||||
- AMapLocation (2.10.0):
|
||||
- AMapFoundation (>= 1.8.0)
|
||||
- app_settings (5.1.1):
|
||||
- Flutter
|
||||
- audio_session (0.0.1):
|
||||
@ -40,6 +27,7 @@ PODS:
|
||||
- connectivity_plus (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- CryptoSwift (1.8.4)
|
||||
- device_info_plus (0.0.1):
|
||||
- Flutter
|
||||
- DKImagePickerController/Core (4.3.9):
|
||||
@ -74,8 +62,6 @@ PODS:
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- EMASRest (11.1.1.2)
|
||||
- fast_rsa (0.6.0):
|
||||
- Flutter
|
||||
- file_picker (0.0.1):
|
||||
- DKImagePickerController/PhotoGallery
|
||||
- Flutter
|
||||
@ -123,11 +109,16 @@ PODS:
|
||||
- GoogleUtilities/UserDefaults (~> 8.0)
|
||||
- PromisesObjC (~> 2.4)
|
||||
- Flutter (1.0.0)
|
||||
- flutter_app_badger (1.3.0):
|
||||
- Flutter
|
||||
- flutter_blue_plus (0.0.1):
|
||||
- Flutter
|
||||
- flutter_bugly (0.0.1):
|
||||
- Bugly (= 2.6.1)
|
||||
- Flutter
|
||||
- flutter_callkit_incoming (0.0.1):
|
||||
- CryptoSwift
|
||||
- Flutter
|
||||
- flutter_local_notifications (0.0.1):
|
||||
- Flutter
|
||||
- flutter_native_contact_picker (0.0.1):
|
||||
@ -146,6 +137,8 @@ PODS:
|
||||
- fluwx/pay (0.0.1):
|
||||
- Flutter
|
||||
- WechatOpenSDK-XCFramework (~> 2.0.4)
|
||||
- gallery_saver (0.0.1):
|
||||
- Flutter
|
||||
- google_maps_flutter_ios (0.0.1):
|
||||
- Flutter
|
||||
- GoogleMaps (< 9.0)
|
||||
@ -215,6 +208,24 @@ PODS:
|
||||
- JPush (= 5.3.0)
|
||||
- just_audio (0.0.1):
|
||||
- Flutter
|
||||
- JVerification (3.2.4):
|
||||
- JCore (>= 2.1.6)
|
||||
- jverify (0.0.1):
|
||||
- Flutter
|
||||
- JCore (>= 4.6.2)
|
||||
- JVerification (= 3.2.4)
|
||||
- libwebp (1.3.2):
|
||||
- libwebp/demux (= 1.3.2)
|
||||
- libwebp/mux (= 1.3.2)
|
||||
- libwebp/sharpyuv (= 1.3.2)
|
||||
- libwebp/webp (= 1.3.2)
|
||||
- libwebp/demux (1.3.2):
|
||||
- libwebp/webp
|
||||
- libwebp/mux (1.3.2):
|
||||
- libwebp/demux
|
||||
- libwebp/sharpyuv (1.3.2)
|
||||
- libwebp/webp (1.3.2):
|
||||
- libwebp/sharpyuv
|
||||
- nanopb (3.30910.0):
|
||||
- nanopb/decode (= 3.30910.0)
|
||||
- nanopb/encode (= 3.30910.0)
|
||||
@ -254,19 +265,21 @@ PODS:
|
||||
- UMDevice
|
||||
- url_launcher_ios (0.0.1):
|
||||
- Flutter
|
||||
- video_decode_plugin (0.0.1):
|
||||
- Flutter
|
||||
- video_player_avfoundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- video_thumbnail (0.0.1):
|
||||
- Flutter
|
||||
- libwebp
|
||||
- webview_flutter_wkwebview (0.0.1):
|
||||
- Flutter
|
||||
- WechatOpenSDK-XCFramework (2.0.4)
|
||||
|
||||
DEPENDENCIES:
|
||||
- aj_captcha_flutter (from `.symlinks/plugins/aj_captcha_flutter/ios`)
|
||||
- AlicloudPush (~> 1.9.9)
|
||||
- aliyun_face_plugin (from `.symlinks/plugins/aliyun_face_plugin/ios`)
|
||||
- amap_flutter_location (from `.symlinks/plugins/amap_flutter_location/ios`)
|
||||
- amap_flutter_map (from `.symlinks/plugins/amap_flutter_map/ios`)
|
||||
- app_settings (from `.symlinks/plugins/app_settings/ios`)
|
||||
- audio_session (from `.symlinks/plugins/audio_session/ios`)
|
||||
- audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`)
|
||||
@ -274,25 +287,28 @@ DEPENDENCIES:
|
||||
- camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`)
|
||||
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
|
||||
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
|
||||
- fast_rsa (from `.symlinks/plugins/fast_rsa/ios`)
|
||||
- file_picker (from `.symlinks/plugins/file_picker/ios`)
|
||||
- firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`)
|
||||
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||
- Flutter (from `Flutter`)
|
||||
- flutter_app_badger (from `.symlinks/plugins/flutter_app_badger/ios`)
|
||||
- flutter_blue_plus (from `.symlinks/plugins/flutter_blue_plus/ios`)
|
||||
- flutter_bugly (from `.symlinks/plugins/flutter_bugly/ios`)
|
||||
- flutter_callkit_incoming (from `.symlinks/plugins/flutter_callkit_incoming/ios`)
|
||||
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
||||
- flutter_native_contact_picker (from `.symlinks/plugins/flutter_native_contact_picker/ios`)
|
||||
- flutter_pcm_sound (from `.symlinks/plugins/flutter_pcm_sound/ios`)
|
||||
- flutter_voice_processor (from `.symlinks/plugins/flutter_voice_processor/ios`)
|
||||
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
|
||||
- fluwx (from `.symlinks/plugins/fluwx/ios`)
|
||||
- gallery_saver (from `.symlinks/plugins/gallery_saver/ios`)
|
||||
- google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`)
|
||||
- image_gallery_saver (from `.symlinks/plugins/image_gallery_saver/ios`)
|
||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||
- JPush
|
||||
- jpush_flutter (from `.symlinks/plugins/jpush_flutter/ios`)
|
||||
- just_audio (from `.symlinks/plugins/just_audio/ios`)
|
||||
- jverify (from `.symlinks/plugins/jverify/ios`)
|
||||
- network_info_plus (from `.symlinks/plugins/network_info_plus/ios`)
|
||||
- open_filex (from `.symlinks/plugins/open_filex/ios`)
|
||||
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||
@ -305,7 +321,9 @@ DEPENDENCIES:
|
||||
- UMDevice
|
||||
- umeng_common_sdk (from `.symlinks/plugins/umeng_common_sdk/ios`)
|
||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||
- video_decode_plugin (from `.symlinks/plugins/video_decode_plugin/ios`)
|
||||
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
|
||||
- video_thumbnail (from `.symlinks/plugins/video_thumbnail/ios`)
|
||||
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
|
||||
|
||||
SPEC REPOS:
|
||||
@ -317,10 +335,8 @@ SPEC REPOS:
|
||||
- AlicloudUtils
|
||||
- EMASRest
|
||||
https://github.com/CocoaPods/Specs.git:
|
||||
- AMap3DMap
|
||||
- AMapFoundation
|
||||
- AMapLocation
|
||||
- Bugly
|
||||
- CryptoSwift
|
||||
- DKImagePickerController
|
||||
- DKPhotoGallery
|
||||
- Firebase
|
||||
@ -334,6 +350,8 @@ SPEC REPOS:
|
||||
- ios-voice-processor
|
||||
- JCore
|
||||
- JPush
|
||||
- JVerification
|
||||
- libwebp
|
||||
- nanopb
|
||||
- PromisesObjC
|
||||
- SDWebImage
|
||||
@ -344,14 +362,8 @@ SPEC REPOS:
|
||||
- WechatOpenSDK-XCFramework
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
aj_captcha_flutter:
|
||||
:path: ".symlinks/plugins/aj_captcha_flutter/ios"
|
||||
aliyun_face_plugin:
|
||||
:path: ".symlinks/plugins/aliyun_face_plugin/ios"
|
||||
amap_flutter_location:
|
||||
:path: ".symlinks/plugins/amap_flutter_location/ios"
|
||||
amap_flutter_map:
|
||||
:path: ".symlinks/plugins/amap_flutter_map/ios"
|
||||
app_settings:
|
||||
:path: ".symlinks/plugins/app_settings/ios"
|
||||
audio_session:
|
||||
@ -366,8 +378,6 @@ EXTERNAL SOURCES:
|
||||
:path: ".symlinks/plugins/connectivity_plus/darwin"
|
||||
device_info_plus:
|
||||
:path: ".symlinks/plugins/device_info_plus/ios"
|
||||
fast_rsa:
|
||||
:path: ".symlinks/plugins/fast_rsa/ios"
|
||||
file_picker:
|
||||
:path: ".symlinks/plugins/file_picker/ios"
|
||||
firebase_analytics:
|
||||
@ -376,10 +386,14 @@ EXTERNAL SOURCES:
|
||||
:path: ".symlinks/plugins/firebase_core/ios"
|
||||
Flutter:
|
||||
:path: Flutter
|
||||
flutter_app_badger:
|
||||
:path: ".symlinks/plugins/flutter_app_badger/ios"
|
||||
flutter_blue_plus:
|
||||
:path: ".symlinks/plugins/flutter_blue_plus/ios"
|
||||
flutter_bugly:
|
||||
:path: ".symlinks/plugins/flutter_bugly/ios"
|
||||
flutter_callkit_incoming:
|
||||
:path: ".symlinks/plugins/flutter_callkit_incoming/ios"
|
||||
flutter_local_notifications:
|
||||
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
||||
flutter_native_contact_picker:
|
||||
@ -392,6 +406,8 @@ EXTERNAL SOURCES:
|
||||
:path: ".symlinks/plugins/fluttertoast/ios"
|
||||
fluwx:
|
||||
:path: ".symlinks/plugins/fluwx/ios"
|
||||
gallery_saver:
|
||||
:path: ".symlinks/plugins/gallery_saver/ios"
|
||||
google_maps_flutter_ios:
|
||||
:path: ".symlinks/plugins/google_maps_flutter_ios/ios"
|
||||
image_gallery_saver:
|
||||
@ -402,6 +418,8 @@ EXTERNAL SOURCES:
|
||||
:path: ".symlinks/plugins/jpush_flutter/ios"
|
||||
just_audio:
|
||||
:path: ".symlinks/plugins/just_audio/ios"
|
||||
jverify:
|
||||
:path: ".symlinks/plugins/jverify/ios"
|
||||
network_info_plus:
|
||||
:path: ".symlinks/plugins/network_info_plus/ios"
|
||||
open_filex:
|
||||
@ -422,83 +440,89 @@ EXTERNAL SOURCES:
|
||||
:path: ".symlinks/plugins/umeng_common_sdk/ios"
|
||||
url_launcher_ios:
|
||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||
video_decode_plugin:
|
||||
:path: ".symlinks/plugins/video_decode_plugin/ios"
|
||||
video_player_avfoundation:
|
||||
:path: ".symlinks/plugins/video_player_avfoundation/darwin"
|
||||
video_thumbnail:
|
||||
:path: ".symlinks/plugins/video_thumbnail/ios"
|
||||
webview_flutter_wkwebview:
|
||||
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
aj_captcha_flutter: dd7af1aa064bdd621ae335b819bab07309c3c023
|
||||
AlicloudPush: 88529c9b796e4ece0601de0867b30359f55b61f7
|
||||
AlicloudSender: 1f468b6bd962a099ffc19d45e3608b0fe98f259d
|
||||
AlicloudUT: 6d1cf30d57d096b7e9bb4b069dd0ba6ad59a3338
|
||||
AlicloudUTDID: 4e9d44c2fd704b3508069c38eaec9d6a759e702c
|
||||
AlicloudUtils: 2a78de434a8b2dc99e408c4d6220e654076d9ef0
|
||||
aliyun_face_plugin: 7a90b6526c5acea616062e809699294c782c3eb8
|
||||
AMap3DMap: 6ee456d7ba946ebbad580a343b74ffa8e9936175
|
||||
amap_flutter_location: 44ff5beb64f42e0bf5feb402fe299dac0013af6f
|
||||
amap_flutter_map: 979e54d227cedac6c7504a2151bfbf3bcf96760a
|
||||
AMapFoundation: 9885c48fc3a78fdfb84a0299a2293e56ea3c9fec
|
||||
AMapLocation: 5248aec2455ebb5d104b367813c946430a2ee033
|
||||
app_settings: 017320c6a680cdc94c799949d95b84cb69389ebc
|
||||
audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207
|
||||
audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40
|
||||
auto_orientation: 102ed811a5938d52c86520ddd7ecd3a126b5d39d
|
||||
aliyun_face_plugin: 8b3b7961de363c53d841d3b484506e85bdcfb756
|
||||
app_settings: 5127ae0678de1dcc19f2293271c51d37c89428b2
|
||||
audio_session: f08db0697111ac84ba46191b55488c0563bb29c6
|
||||
audioplayers_darwin: ccf9c770ee768abb07e26d90af093f7bab1c12ab
|
||||
auto_orientation: a1600c9ed72e6e96982fb4e1214463343342432a
|
||||
Bugly: 217ac2ce5f0f2626d43dbaa4f70764c953a26a31
|
||||
camera_avfoundation: dd002b0330f4981e1bbcb46ae9b62829237459a4
|
||||
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
|
||||
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
|
||||
camera_avfoundation: 04b44aeb14070126c6529e5ab82cc7c9fca107cf
|
||||
connectivity_plus: 3f6c9057f4cd64198dc826edfb0542892f825343
|
||||
CryptoSwift: e64e11850ede528a02a0f3e768cec8e9d92ecb90
|
||||
device_info_plus: d668d0dcad87727e865495c472b911b15d7ee26a
|
||||
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
|
||||
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
|
||||
EMASRest: 8df6f87836767a9415ad5cc4af739bc9d215b475
|
||||
fast_rsa: a1fed69b074093d2e2e3fefae6b821a071649d4c
|
||||
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
|
||||
file_picker: 5f42b9d5580e30b57b4863f9d94b448016b702e5
|
||||
Firebase: 9f574c08c2396885b5e7e100ed4293d956218af9
|
||||
firebase_analytics: 1a66fe8d4375eccff44671ea37897683a78b2675
|
||||
firebase_core: ceec591a66629daaee82d3321551692c4a871493
|
||||
firebase_analytics: 2090f32a7f5364b03cdf11aa7e904f4610309563
|
||||
firebase_core: 53cecb83c72fea329b267bb0accb06a33e9f036a
|
||||
FirebaseAnalytics: 27eb78b97880ea4a004839b9bac0b58880f5a92a
|
||||
FirebaseCore: 3cf438f431f18c12cdf2aaf64434648b63f7e383
|
||||
FirebaseCoreInternal: d6c17dafc8dc33614733a8b52df78fcb4394c881
|
||||
FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
|
||||
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||
flutter_blue_plus: 4837da7d00cf5d441fdd6635b3a57f936778ea96
|
||||
flutter_bugly: bf35df32a9c5d50b8aacdd35bd8ddc5b55150dae
|
||||
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
|
||||
flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907
|
||||
flutter_pcm_sound: de0572ca4f99091cc2abfcc31601b8a4ddd33c0e
|
||||
flutter_voice_processor: 2b89b93d69b02227ae3fd58589ee0bcfa3ca2a82
|
||||
fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c
|
||||
fluwx: c18fd6c16b03a2187cd07d6e48e32a7801962849
|
||||
google_maps_flutter_ios: f135b968a67c05679e0a53538e900b5c174b0d99
|
||||
flutter_app_badger: 16b371e989d04cd265df85be2c3851b49cb68d18
|
||||
flutter_blue_plus: e5808fc4e5ebc58bb911635f8fdaf5e2b4da2754
|
||||
flutter_bugly: a77131ff7b385a481c594830dc89aa53e8e7fbee
|
||||
flutter_callkit_incoming: cb8138af67cda6dd981f7101a5d709003af21502
|
||||
flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100
|
||||
flutter_native_contact_picker: ebff97ae8c8110e9de4590d6e363f974dca52a8c
|
||||
flutter_pcm_sound: e9c2f6ce580eefcab2af46763f0354484d5c4ac8
|
||||
flutter_voice_processor: a4e08ad27a55554d962a71033461e32638cee3f6
|
||||
fluttertoast: 76fea30fcf04176325f6864c87306927bd7d2038
|
||||
fluwx: 6bf9c5a3a99ad31b0de137dd92370a0d10a60f4b
|
||||
gallery_saver: 1d68d1818df11b1afa84a97d1a530463753e92e3
|
||||
google_maps_flutter_ios: e6aba27b584112778b931f1116527f78c9dba99b
|
||||
GoogleAppMeasurement: 6e49ffac7d3f2c3ded9cc663f912a13b67bbd0de
|
||||
GoogleMaps: 20d7b12be49a14287f797e88e0e31bc4156aaeb4
|
||||
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
|
||||
image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb
|
||||
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
|
||||
image_gallery_saver: 14711d79da40581063e8842a11acf1969d781ed7
|
||||
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
|
||||
ios-voice-processor: 8e32d7f980a06d392d128ef1cd19cf6ddcaca3c1
|
||||
JCore: 024c73b04e110b496e93d8c127ea9cd1ed934e4c
|
||||
JPush: b71f497a3c1b825c7843fd97f290b05d5cd75f2e
|
||||
jpush_flutter: c87be254790933c0363684169ef9d3d279a5adc5
|
||||
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
||||
jpush_flutter: 81be43c2095cac5c2ac45e673e26c83230304015
|
||||
just_audio: 6c031bb61297cf218b4462be616638e81c058e97
|
||||
JVerification: 0774807f44dd788c78d50303a14e133735807856
|
||||
jverify: 59d8e9a5835616c1deed9cf67dbd9679aa1ca244
|
||||
libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
|
||||
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
|
||||
network_info_plus: 6d0c3eb8367b8164fa3fb0c19875e3f59d49697f
|
||||
open_filex: 6e26e659846ec990262224a12ef1c528bb4edbe4
|
||||
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
|
||||
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
||||
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
|
||||
network_info_plus: b6c3b27559bf719cc53ef571a947b3ac4629754c
|
||||
open_filex: 432f3cd11432da3e39f47fcc0df2b1603854eff1
|
||||
package_info_plus: ae4a63389b62b5be8544b36bfc5b069617938813
|
||||
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
|
||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||
SDWebImage: dfe95b2466a9823cf9f0c6d01217c06550d7b29a
|
||||
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
|
||||
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
|
||||
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
|
||||
sqflite: c35dad70033b8862124f8337cc994a809fcd9fa3
|
||||
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
||||
system_settings: 8f5cdbfa72c677fc8d665b863bcc20d393d87e9d
|
||||
system_settings: 0afa5deab4239f6b9325f54aba2d3b0932bcf23d
|
||||
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
|
||||
UMCommon: 8b4cd0423297c39bca6eea1ec896558b40e5bcf7
|
||||
UMDevice: dcdf7ec167387837559d149fbc7d793d984faf82
|
||||
umeng_common_sdk: a8abd7f86dfd013dbbeeae587ee143760c6582f2
|
||||
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
|
||||
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
|
||||
webview_flutter_wkwebview: 2a23822e9039b7b1bc52e5add778e5d89ad488d1
|
||||
umeng_common_sdk: 095b63e6f83b71548725a7c03a6c17b23be6674b
|
||||
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
|
||||
video_decode_plugin: 07649b4703fdf618daf7000af58f3b251c3e280f
|
||||
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
|
||||
video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140
|
||||
webview_flutter_wkwebview: 45a041c7831641076618876de3ba75c712860c6b
|
||||
WechatOpenSDK-XCFramework: 36fb2bea0754266c17184adf4963d7e6ff98b69f
|
||||
|
||||
PODFILE CHECKSUM: 728f9c851a19709391c77c54ed3556e484b54db6
|
||||
|
||||
4
ios/Runner-Bridging-Header.h
Normal file
@ -0,0 +1,4 @@
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
044929092E13AE5D0062AC4D /* LCKBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044929082E13AE5D0062AC4D /* LCKBridge.swift */; };
|
||||
04717D692D1B97E100089BD3 /* InfoPlist_sky.strings in Resources */ = {isa = PBXBuildFile; fileRef = 04717D672D1B97E100089BD3 /* InfoPlist_sky.strings */; };
|
||||
04717D6D2D1B983300089BD3 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 04717D6B2D1B983200089BD3 /* InfoPlist.strings */; };
|
||||
04717D712D1B9B5A00089BD3 /* InfoPlist_xhj.strings in Resources */ = {isa = PBXBuildFile; fileRef = 04717D6F2D1B9B5A00089BD3 /* InfoPlist_xhj.strings */; };
|
||||
@ -100,6 +101,8 @@
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0420903B2C0EEAA50073E654 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = "<group>"; };
|
||||
044929082E13AE5D0062AC4D /* LCKBridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LCKBridge.swift; sourceTree = "<group>"; };
|
||||
0449290A2E13AE5F0062AC4D /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
04717D682D1B97E100089BD3 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist_sky.strings"; sourceTree = "<group>"; };
|
||||
04717D6A2D1B97E800089BD3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist_sky.strings; sourceTree = "<group>"; };
|
||||
04717D6C2D1B983200089BD3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
@ -462,6 +465,7 @@
|
||||
97C146E51CF9000F007C117D = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
044929082E13AE5D0062AC4D /* LCKBridge.swift */,
|
||||
82F1ED1B2BE8BA8E00265D59 /* BioAuthEngine.bundle */,
|
||||
82F1ED192BE8BA7D00265D59 /* OCRXMedia.bundle */,
|
||||
82F1ED172BE8BA6900265D59 /* APBToygerFacadeSuitable.bundle */,
|
||||
@ -476,6 +480,7 @@
|
||||
7EA577AFEEE10224BA96C569 /* preLaunchScreen.storyboard */,
|
||||
9A03C622761920C324D80733 /* skyLaunchScreen.storyboard */,
|
||||
6A6F5C86239927252C06A16A /* xhjLaunchScreen.storyboard */,
|
||||
0449290A2E13AE5F0062AC4D /* Runner-Bridging-Header.h */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
@ -606,7 +611,7 @@
|
||||
TargetAttributes = {
|
||||
97C146ED1CF9000F007C117D = {
|
||||
CreatedOnToolsVersion = 7.3.1;
|
||||
LastSwiftMigration = 1430;
|
||||
LastSwiftMigration = 1630;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -793,10 +798,14 @@
|
||||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "[CP] Copy Pods Resources";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
|
||||
@ -809,6 +818,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
044929092E13AE5D0062AC4D /* LCKBridge.swift in Sources */,
|
||||
8297E49B2AE7974700E886FA /* AppDelegate.m in Sources */,
|
||||
8297E4102AE75AC500E886FA /* XSFlutterManager.m in Sources */,
|
||||
97C146F31CF9000F007C117D /* main.m in Sources */,
|
||||
@ -1073,6 +1083,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 4A63B2C308CB401731950EC8 /* Pods-Runner.debug-sky.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-sky.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
@ -1092,6 +1103,8 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Debug-sky";
|
||||
@ -1171,6 +1184,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 22D858E988707FF26E068457 /* Pods-Runner.debug-xhj.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-xhj.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
@ -1190,6 +1204,8 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Debug-xhj";
|
||||
@ -1198,12 +1214,14 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 16A83D21DFB231D8453DC681 /* Pods-Runner.release-sky.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-sky.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = NAQ5PL2DYC;
|
||||
GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "";
|
||||
INFOPLIST_FILE = Runner/info_sky.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@ -1216,6 +1234,8 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Release-sky";
|
||||
@ -1224,6 +1244,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = CDC2B8ED804B514A774F187D /* Pods-Runner.release-xhj.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-xhj.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
@ -1243,6 +1264,8 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Release-xhj";
|
||||
@ -1470,6 +1493,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 72E2A6A227EA101C0167D322 /* Pods-Runner.debug-local.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerDebug-dev.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
@ -1489,6 +1513,9 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Debug-local";
|
||||
@ -1568,6 +1595,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D697F91E8405773AB9A5881E /* Pods-Runner.pre-release-sky.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-sky.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
@ -1587,6 +1615,8 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Pre-release-sky";
|
||||
@ -1666,6 +1696,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 126D1370182AB44291C67A10 /* Pods-Runner.dev-release-sky.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-sky.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
@ -1685,6 +1716,8 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Dev-release-sky";
|
||||
@ -1764,6 +1797,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 789004F1B475B44713E199BC /* Pods-Runner.pre-release-xhj.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-xhj.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
@ -1783,6 +1817,8 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Pre-release-xhj";
|
||||
@ -1862,6 +1898,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = ED3A443EA1439FD0FB4BCF80 /* Pods-Runner.dev-release-xhj.xcconfig */;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-xhj.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
@ -1881,6 +1918,8 @@
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 6.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = "Dev-release-xhj";
|
||||
|
||||
@ -3,13 +3,20 @@
|
||||
#import "GeneratedPluginRegistrant.h"
|
||||
#import "CommonDefine.h"
|
||||
#import "XSFlutterManager.h"
|
||||
#import "Runner-Swift.h"
|
||||
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
#import <PushKit/PushKit.h>
|
||||
#import <CallKit/CallKit.h>
|
||||
// #import <UMCommon/UMCommon.h>
|
||||
|
||||
|
||||
@interface AppDelegate()
|
||||
@interface AppDelegate()<PKPushRegistryDelegate, CXProviderDelegate>
|
||||
@property (nonatomic, strong) FlutterMethodChannel *methodChannel;
|
||||
@property (nonatomic, strong) CXProvider *callKitProvider;
|
||||
@property (nonatomic, copy) NSString *pendingCallKitEvent; // 缓存未处理的CallKit事件
|
||||
@property (nonatomic, strong) NSUUID *lastCallUUID;
|
||||
@property (nonatomic, copy) NSString *voipTokenString; // + 新增:缓存VoIP Token
|
||||
|
||||
@end
|
||||
|
||||
@ -34,11 +41,60 @@
|
||||
}
|
||||
[JPUSHService registerForRemoteNotificationConfig:entity delegate:self];
|
||||
|
||||
// 注册VoIP推送
|
||||
PKPushRegistry *voipRegistry = [[PKPushRegistry alloc] initWithQueue:dispatch_get_main_queue()];
|
||||
voipRegistry.delegate = self;
|
||||
voipRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP];
|
||||
|
||||
XSFlutterManager *VC = [[XSFlutterManager alloc] init];
|
||||
self.window.rootViewController = VC;
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
// 初始化FlutterMethodChannel
|
||||
FlutterViewController *controller = (FlutterViewController *)self.window.rootViewController;
|
||||
self.methodChannel = [FlutterMethodChannel methodChannelWithName:@"com.starlock/callkit" binaryMessenger:controller.binaryMessenger];
|
||||
// 注册拉取pending事件方法
|
||||
__weak typeof(self) weakSelf = self;
|
||||
[self.methodChannel setMethodCallHandler:^(FlutterMethodCall *call, FlutterResult result) {
|
||||
if ([call.method isEqualToString:@"get_pending_event"]) {
|
||||
if (weakSelf.pendingCallKitEvent) {
|
||||
result(weakSelf.pendingCallKitEvent);
|
||||
weakSelf.pendingCallKitEvent = nil;
|
||||
} else {
|
||||
result(nil);
|
||||
}
|
||||
} else if ([call.method isEqualToString:@"end_call"]) {
|
||||
NSLog(@"[CallKit] 收到Flutter端结束通话请求");
|
||||
// 结束CallKit通话
|
||||
// 这里只能结束最近一次来电,需保存UUID
|
||||
if (weakSelf.lastCallUUID) {
|
||||
CXCallEndedReason reason = CXCallEndedReasonRemoteEnded;
|
||||
[weakSelf.callKitProvider reportCallWithUUID:weakSelf.lastCallUUID endedAtDate:[NSDate date] reason:reason];
|
||||
weakSelf.lastCallUUID = nil;
|
||||
result(@"ok");
|
||||
} else {
|
||||
NSLog(@"[CallKit] 无有效UUID,无法结束通话");
|
||||
result(@"no_call");
|
||||
}
|
||||
} else if ([call.method isEqualToString:@"get_voip_token"]) { // + 新增
|
||||
if (weakSelf.voipTokenString) {
|
||||
result(weakSelf.voipTokenString);
|
||||
} else {
|
||||
result(nil);
|
||||
}
|
||||
} else {
|
||||
result(FlutterMethodNotImplemented);
|
||||
}
|
||||
}];
|
||||
// 初始化CallKit Provider(仅国外包)
|
||||
#if USE_CALLKIT
|
||||
CXProviderConfiguration *providerConfiguration = [[CXProviderConfiguration alloc] initWithLocalizedName:@"来电"];
|
||||
providerConfiguration.supportsVideo = NO;
|
||||
providerConfiguration.maximumCallsPerCallGroup = 1;
|
||||
self.callKitProvider = [[CXProvider alloc] initWithConfiguration:providerConfiguration];
|
||||
[self.callKitProvider setDelegate:self queue:nil];
|
||||
#endif
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
@ -168,6 +224,73 @@
|
||||
[JPUSHService handleRemoteNotification:userInfo];
|
||||
}
|
||||
|
||||
#pragma mark - PKPushRegistryDelegate
|
||||
// 获取VoIP Token
|
||||
- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(PKPushType)type {
|
||||
if ([type isEqualToString:PKPushTypeVoIP]) {
|
||||
const unsigned char *tokenBytes = credentials.token.bytes;
|
||||
NSMutableString *tokenString = [NSMutableString string];
|
||||
for (NSInteger i = 0; i < credentials.token.length; i++) {
|
||||
[tokenString appendFormat:@"%02x", tokenBytes[i]];
|
||||
}
|
||||
NSLog(@"[VoIP] didUpdatePushCredentials, token: %@", tokenString);
|
||||
self.voipTokenString = tokenString; // + 缓存token
|
||||
if (self.methodChannel) {
|
||||
[self.methodChannel invokeMethod:@"voip_token" arguments:tokenString];
|
||||
}
|
||||
// 若Flutter未ready,Flutter端可通过get_voip_token拉取
|
||||
}
|
||||
}
|
||||
// 收到VoIP推送
|
||||
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type withCompletionHandler:(void (^)(void))completion {
|
||||
if ([type isEqualToString:PKPushTypeVoIP]) {
|
||||
NSLog(@"[VoIP] didReceiveIncomingPushWithPayload: %@", payload.dictionaryPayload);
|
||||
#if USE_CALLKIT
|
||||
// 国外环境,直接用CallKit弹窗
|
||||
NSString *callerName = @"来电"; // 可根据payload内容自定义
|
||||
// 复用已初始化的provider
|
||||
CXCallUpdate *update = [[CXCallUpdate alloc] init];
|
||||
update.remoteHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:callerName];
|
||||
update.hasVideo = NO;
|
||||
NSUUID *callUUID = [NSUUID UUID];
|
||||
self.lastCallUUID = callUUID;
|
||||
[self.callKitProvider reportNewIncomingCallWithUUID:callUUID update:update completion:^(NSError * _Nullable error) {
|
||||
if (error) {
|
||||
NSLog(@"CallKit error: %@", error);
|
||||
}
|
||||
}];
|
||||
#else
|
||||
// 国内环境,使用LiveCommunicationKit弹窗
|
||||
UIViewController *rootVC = [UIApplication sharedApplication].delegate.window.rootViewController;
|
||||
NSString *callerName = @"来电"; // 可根据payload内容自定义
|
||||
[LCKBridge presentCallInterfaceFromRootVC:rootVC callerName:callerName];
|
||||
#endif
|
||||
}
|
||||
if (completion) {
|
||||
completion();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - CXProviderDelegate
|
||||
// 用户点击"接听"
|
||||
- (void)provider:(CXProvider *)provider performAnswerCallAction:(CXAnswerCallAction *)action {
|
||||
NSLog(@"[CallKit] 用户接听来电");
|
||||
if (self.methodChannel) {
|
||||
[self.methodChannel invokeMethod:@"callkit_answered" arguments:nil];
|
||||
} else {
|
||||
self.pendingCallKitEvent = @"callkit_answered";
|
||||
}
|
||||
[action fulfill];
|
||||
}
|
||||
// 用户点击"拒绝"或挂断
|
||||
- (void)provider:(CXProvider *)provider performEndCallAction:(CXEndCallAction *)action {
|
||||
NSLog(@"[CallKit] 用户拒绝/挂断来电");
|
||||
if (self.methodChannel) {
|
||||
[self.methodChannel invokeMethod:@"callkit_declined" arguments:nil];
|
||||
} else {
|
||||
self.pendingCallKitEvent = @"callkit_declined";
|
||||
}
|
||||
[action fulfill];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
21
ios/Runner/Assets.xcassets/check.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "check.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
ios/Runner/Assets.xcassets/check.imageset/check.png
vendored
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
21
ios/Runner/Assets.xcassets/icon_left_grey.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "icon_left_grey.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
ios/Runner/Assets.xcassets/icon_left_grey.imageset/icon_left_grey.png
vendored
Normal file
|
After Width: | Height: | Size: 214 B |
21
ios/Runner/Assets.xcassets/sky_login_btn_normal.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "sky_login_btn_normal.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
ios/Runner/Assets.xcassets/sky_login_btn_normal.imageset/sky_login_btn_normal.png
vendored
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
21
ios/Runner/Assets.xcassets/sky_login_btn_press.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "sky_login_btn_press.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
ios/Runner/Assets.xcassets/sky_login_btn_press.imageset/sky_login_btn_press.png
vendored
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
21
ios/Runner/Assets.xcassets/uncheck.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "uncheck.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
ios/Runner/Assets.xcassets/uncheck.imageset/uncheck.png
vendored
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
21
ios/Runner/Assets.xcassets/xhj_login_btn_normal.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "xhj_login_btn_normal.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
ios/Runner/Assets.xcassets/xhj_login_btn_normal.imageset/xhj_login_btn_normal.png
vendored
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
21
ios/Runner/Assets.xcassets/xhj_login_btn_press.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "xhj_login_btn_press.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
ios/Runner/Assets.xcassets/xhj_login_btn_press.imageset/xhj_login_btn_press.png
vendored
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
@ -2,8 +2,6 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
@ -53,6 +51,8 @@
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
<string>weixin</string>
|
||||
@ -108,6 +108,7 @@
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>remote-notification</string>
|
||||
<string>voip</string>
|
||||
</array>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
|
||||
60
ios/Runner/LCKBridge.swift
Normal file
@ -0,0 +1,60 @@
|
||||
import Foundation
|
||||
import UIKit
|
||||
#if USE_CALLKIT
|
||||
import CallKit
|
||||
#endif
|
||||
import LiveCommunicationKit
|
||||
|
||||
@objc(LCKBridge)
|
||||
class LCKBridge: NSObject {
|
||||
// CallKit来电弹窗
|
||||
@objc(presentCallInterfaceWithCallKit:)
|
||||
class func presentCallInterfaceWithCallKit(_ callerName: NSString) {
|
||||
#if USE_CALLKIT
|
||||
let providerConfiguration = CXProviderConfiguration(localizedName: callerName as String)
|
||||
providerConfiguration.supportsVideo = false
|
||||
providerConfiguration.maximumCallsPerCallGroup = 1
|
||||
let provider = CXProvider(configuration: providerConfiguration)
|
||||
let update = CXCallUpdate()
|
||||
update.remoteHandle = CXHandle(type: .generic, value: callerName as String)
|
||||
update.hasVideo = false
|
||||
provider.setDelegate(nil, queue: nil)
|
||||
provider.reportNewIncomingCall(with: UUID(), update: update) { error in
|
||||
if let error = error {
|
||||
print("CallKit来电弹窗失败: \(error.localizedDescription)")
|
||||
} else {
|
||||
print("CallKit来电弹窗成功")
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
// LiveCommunicationKit来电弹窗
|
||||
@objc(presentCallInterfaceFromRootVC:callerName:)
|
||||
class func presentCallInterfaceFromRootVC(_ rootVC: UIViewController, callerName: NSString) {
|
||||
#if !USE_CALLKIT
|
||||
if #available(iOS 17.4, *) {
|
||||
// 配置ConversationManager
|
||||
let config = ConversationManager.Configuration(
|
||||
ringtoneName: "notes_of_the_optimistic",
|
||||
iconTemplateImageData: UIImage(named: "AppIcon")?.pngData(),
|
||||
maximumConversationGroups: 1,
|
||||
maximumConversationsPerConversationGroup: 1,
|
||||
includesConversationInRecents: false,
|
||||
supportsVideo: false,
|
||||
supportedHandleTypes: [.generic, .phoneNumber, .emailAddress]
|
||||
)
|
||||
let manager = ConversationManager(configuration: config)
|
||||
let local = Handle(type: .generic, value: callerName as String, displayName: callerName as String)
|
||||
let update = Conversation.Update(localMember: local, members: [local], activeRemoteMembers: [local])
|
||||
Task {
|
||||
do {
|
||||
try await manager.reportNewIncomingConversation(uuid: UUID(), update: update)
|
||||
print("成功报告新来电")
|
||||
} catch {
|
||||
print("报告新来电失败: \(error.localizedDescription)")
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>aps-environment</key>
|
||||
<string>development</string>
|
||||
<string>production</string>
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
<string>applinks:lock.skychip.top</string>
|
||||
|
||||
@ -2,8 +2,6 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
@ -53,6 +51,8 @@
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
<string>weixin</string>
|
||||
@ -86,6 +86,8 @@
|
||||
<string>应用请求相机,以便于拍摄照片,用于头像上传及人脸认证</string>
|
||||
<key>NSContactsUsageDescription</key>
|
||||
<string>Reason we need access to the contact list</string>
|
||||
<key>NSFileProtectionKey</key>
|
||||
<string>NSFileProtectionCompleteUntilFirstUserAuthentication</string>
|
||||
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
|
||||
<string>我们需要访问您的位置信息,以便更加精准的扫描到所在位置的蓝牙锁设备</string>
|
||||
<key>NSLocationAlwaysUsageDescription</key>
|
||||
@ -106,7 +108,10 @@
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>remote-notification</string>
|
||||
<string>voip</string>
|
||||
</array>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>skyLaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
@ -123,10 +128,6 @@
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>NSFileProtectionKey</key>
|
||||
<string>NSFileProtectionCompleteUntilFirstUserAuthentication</string>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
<key>io.flutter.embedded_views_preview</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@ -2,8 +2,6 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
@ -53,6 +51,8 @@
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
<string>weixin</string>
|
||||
@ -108,6 +108,7 @@
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>remote-notification</string>
|
||||
<string>voip</string>
|
||||
</array>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
|
||||
13
ios/build.sh
@ -9,23 +9,20 @@ echo "GITLAB_WORKSPACE: ${CI_PROJECT_DIR}"
|
||||
cd ${CI_PROJECT_DIR}/ios
|
||||
#bundle exec pod install
|
||||
echo "ENV_BUILD_TAG:${ENV_BUILD_TAG},ENV_BUILD_BRANCH:${ENV_BUILD_BRANCH}"
|
||||
regex='^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$'
|
||||
if [[ "${ENV_BUILD_BRANCH}" == "canary_release" ]]; then
|
||||
# 只支持 v1.2.3_sky 这种tag格式
|
||||
regex='^v[0-9]+\.[0-9]+\.[0-9]+_sky$'
|
||||
if [[ "${ENV_BUILD_BRANCH}" == "canary_release_sky" ]]; then
|
||||
echo "===build canary_release: ${NEXT_VERSION}"
|
||||
export ENV_BUILD_TAG=${NEXT_VERSION}
|
||||
bundle exec fastlane release_ipa flavor:xhj --verbose
|
||||
bundle exec fastlane release_ipa flavor:sky --verbose
|
||||
elif [[ $ENV_BUILD_TAG =~ $regex ]]; then
|
||||
echo "===build release===$ENV_BUILD_TAG"
|
||||
bundle exec fastlane release_ipa flavor:xhj --verbose
|
||||
bundle exec fastlane release_ipa flavor:sky --verbose
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "develop" ]]; then
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "develop_sky" ]]; then
|
||||
echo "===build dev===${NEXT_VERSION}"
|
||||
bundle exec fastlane beta flavor:xhj env:Dev --verbose
|
||||
bundle exec fastlane beta flavor:sky env:Dev --verbose
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "release" ]] || [[ "${ENV_BUILD_BRANCH}" == "feat_devops" ]] ; then
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "release_sky" || "${ENV_BUILD_BRANCH}" == "feat_devops_sky" ]] ; then
|
||||
echo "===build pre===${NEXT_VERSION}"
|
||||
bundle exec fastlane beta flavor:xhj env:Pre --verbose
|
||||
bundle exec fastlane beta flavor:sky env:Pre --verbose
|
||||
fi
|
||||
exit 0
|
||||
@ -17,22 +17,13 @@ default_platform(:ios)
|
||||
|
||||
# setup_travis
|
||||
|
||||
# --- xhj Const ---
|
||||
$signing_identity_xhj_distribution = 'iPhone Distribution: Shenzhen Xinhongjia Electronics Co., Ltd. (P8997RW3V8)'
|
||||
$app_identifier = 'xhj'
|
||||
$provisioning_name_adhoc = 'StarApt Project Mobile Ad Hoc'
|
||||
$provisioning_name_distribution = 'StarApt Project Mobile Distribution'
|
||||
$gym_config_sky_preview = 'Preview-xhj'
|
||||
$gym_config_sky_release = 'Release'
|
||||
|
||||
# --- sky Const ---
|
||||
$signing_identity_sky_distribution = 'iPhone Distribution: Shenzhen Xinhongjia Electronics Co., Ltd. (P8997RW3V8)'
|
||||
$signing_identity_distribution = 'iPhone Distribution: Shenzhen Xinhongjia Electronics Co., Ltd. (P8997RW3V8)'
|
||||
$app_identifier = 'sky'
|
||||
$provisioning_name_adhoc = 'StarApt Project Mobile Ad Hoc'
|
||||
$provisioning_name_distribution = 'StarApt Project Mobile Distribution'
|
||||
$gym_config_sky_preview = 'Preview-sky'
|
||||
$gym_config_sky_release = 'Release'
|
||||
|
||||
$gym_config_preview = 'Preview-sky'
|
||||
$gym_config_release = 'Release'
|
||||
|
||||
# --- common Const ---
|
||||
$match_type_adhoc = 'adhoc'
|
||||
@ -72,34 +63,32 @@ platform :ios do
|
||||
|
||||
desc "Build & Deliver to Pgy"
|
||||
lane :beta do |options|
|
||||
flavor = options[:flavor]
|
||||
env = options[:env]
|
||||
UI.user_error!("flavor is required") unless flavor
|
||||
UI.user_error!("env is required") unless env
|
||||
print_log "build #{flavor} on #{env}"
|
||||
print_log "build sky on #{env}"
|
||||
build_number = Time.now.strftime("%Y%m%d%H%M")
|
||||
print_log "Build Commits #{build_number}"
|
||||
build_version = $next_version # Time.now.strftime("%Y%m%d%H%M%S")
|
||||
build_version = $next_version
|
||||
print_log "build_version #{build_version}"
|
||||
commit_hash = last_git_commit
|
||||
short_hash = commit_hash[:abbreviated_commit_hash]
|
||||
print_log "last_git_commit_short_hash #{short_hash}"
|
||||
remove_zone_pre_build(zone:"com")
|
||||
Dir.chdir "../.." do
|
||||
sh("flutter","clean")
|
||||
sh("flutter","pub","get")
|
||||
end
|
||||
Dir.chdir ".." do
|
||||
sh("bundle", "exec" ,"pod", "install")
|
||||
sh("pod", "install")
|
||||
end
|
||||
Dir.chdir "../.." do
|
||||
sh("flutter", "build", "ios", "--no-tree-shake-icons", "--no-codesign", "--release", "--flavor", "#{flavor}", "-t", "lib/main_#{flavor}_#{env}.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
sh("flutter", "build", "ios", "--no-tree-shake-icons", "--no-codesign", "--release", "--flavor", "sky", "-t", "lib/main_sky_#{env}.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
end
|
||||
#set_bundle_short_version('./Runner/Info.plist', $current_branch)
|
||||
gym_scheme_preview="#{flavor}"
|
||||
gym_scheme_preview="sky"
|
||||
print_log "gym_scheme_preview #{gym_scheme_preview}"
|
||||
gym_configuration = "#{env}-release-#{flavor}"
|
||||
gym_configuration = "#{env}-release-sky"
|
||||
print_log "gym_configuration #{gym_configuration}"
|
||||
ipa_default_filename = "starlock-#{flavor}-preview-#{build_version}.ipa"
|
||||
ipa_default_filename = "starlock-sky-preview-#{build_version}.ipa"
|
||||
print_log "ipa_default_filename #{ipa_default_filename}"
|
||||
gym(
|
||||
scheme: gym_scheme_preview,
|
||||
@ -108,12 +97,11 @@ platform :ios do
|
||||
output_directory: $path_ipa_output_dir,
|
||||
output_name: ipa_default_filename,
|
||||
export_method: "ad-hoc",
|
||||
xcargs: "GCC_PREPROCESSOR_DEFINITIONS='USE_CALLKIT=1 $(inherited)'",
|
||||
export_options: {
|
||||
provisioningProfiles: {
|
||||
"com.xhjcn.lock.dev" => "Adhoc_com.xhjcn.lock.dev.mobileprovision",
|
||||
"com.xhjcn.lock.pre" => "Adhoc_com.xhjcn.lock.pre.mobileprovision",
|
||||
"com.skychip.lock.dev" => "Adhoc_com.skychip.lock.dev.mobileprovision",
|
||||
"com.skychip.lock.pre" => "Adhoc_com.skychip.lock.pre.mobileprovision",
|
||||
"com.skychip.lock.pre" => "Adhoc_com.skychip.lock.pre.mobileprovision"
|
||||
}
|
||||
}
|
||||
)
|
||||
@ -127,9 +115,7 @@ platform :ios do
|
||||
|
||||
desc "Build & Deliver to App Store Connect"
|
||||
lane :release_ipa do |options|
|
||||
flavor = options[:flavor]
|
||||
UI.user_error!("flavor is required") unless flavor
|
||||
print_log "build flavor: #{flavor}"
|
||||
print_log "build sky"
|
||||
build_number = Time.now.strftime("%Y%m%d%H%M")
|
||||
print_log "Build Commits #{build_number}"
|
||||
build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0]
|
||||
@ -142,16 +128,16 @@ platform :ios do
|
||||
sh("flutter","pub","get")
|
||||
end
|
||||
Dir.chdir ".." do
|
||||
sh("bundle", "exec" ,"pod", "install")
|
||||
sh("pod", "install")
|
||||
end
|
||||
Dir.chdir "../.." do
|
||||
sh("flutter", "build", "ios", "--no-tree-shake-icons", "--no-codesign", "--release", "--flavor", "#{flavor}", "-t", "lib/main_#{flavor}_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
sh("flutter", "build", "ios", "--no-tree-shake-icons", "--no-codesign", "--release", "--flavor", "sky", "-t", "lib/main_sky_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||
end
|
||||
gym_scheme_release="#{flavor}"
|
||||
gym_scheme_release="sky"
|
||||
print_log "gym_scheme_release #{gym_scheme_release}"
|
||||
gym_configuration = "Release-#{flavor}"
|
||||
gym_configuration = "Release-sky"
|
||||
print_log "gym_configuration #{gym_configuration}"
|
||||
ipa_default_filename = "starlock-#{flavor}-release-"+$current_tag+".ipa"
|
||||
ipa_default_filename = "starlock-sky-release-"+$current_tag+".ipa"
|
||||
print_log "ipa_default_filename #{ipa_default_filename}"
|
||||
gym(
|
||||
scheme: gym_scheme_release,
|
||||
@ -160,14 +146,14 @@ platform :ios do
|
||||
output_directory: $path_ipa_output_dir,
|
||||
output_name: ipa_default_filename,
|
||||
export_method: "app-store",
|
||||
xcargs: "GCC_PREPROCESSOR_DEFINITIONS='USE_CALLKIT=1 $(inherited)'",
|
||||
export_options: {
|
||||
provisioningProfiles: {
|
||||
"com.xhjcn.lock" => "Appstore_com.xhjcn.lock.mobileprovision",
|
||||
"com.skychip.lock" => "Appstore_com.skychip.lock.mobileprovision",
|
||||
"com.skychip.lock" => "Appstore_com.skychip.lock.mobileprovision"
|
||||
}
|
||||
}
|
||||
)
|
||||
auth_key_prefix=flavor.upcase
|
||||
auth_key_prefix="SKY"
|
||||
print_log "auth_key_prefix #{auth_key_prefix}"
|
||||
api_key = app_store_connect_api_key(
|
||||
key_id: ENV["#{auth_key_prefix}_APPLE_AUTH_KEY_ID"],
|
||||
|
||||
2328
lan/lan_ar.json
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "След нулиране, метакарпалните вени на ключалката ще бъдат изтрити. Сигурен ли сте, че искате да се възстанови?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Активирайте функцията за дистанционно отключване на ключалката в приложението (тази функция е изключена по подразбиране). Ако тази опция не е налице, заключването няма да поддържа Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Инсталирайте приложението Google Home и щракнете върху бутона плюс в горния ляв ъгъл",
|
||||
"暂无最新记录": "В момента няма най-новите налични записи",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Моля, превключете телефона си на 2.4G WiFi за ръчно свързване"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Моля, превключете телефона си на 2.4G WiFi за ръчно свързване",
|
||||
"语音包设置": "Настройки на гласовите пакети",
|
||||
"第三方平台设置": "Настройки на платформи на трети страни",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Заключване на настройките на гласовия пакет",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Мъжки глас",
|
||||
"女声": "Женски глас",
|
||||
"您的图像和视频数据仅保留": "Данните ви за изображения и видеоклипове се запазват само",
|
||||
"后图像和视频数据将会失效,开通": "След това данните за изображението и видеото ще бъдат невалидни и активирани",
|
||||
"云存会员": "Членство в Cloud Storage",
|
||||
"服务,图像视频信息随心存!": "Информацията за обслужване, изображения и видео са във вашето сърце!",
|
||||
"图像": "изображение",
|
||||
"视频": "Видео",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "В момента страната не поддържа регистрация на код за потвърждение на мобилен телефон, моля, използвайте имейл адреса си, за да се регистрирате",
|
||||
"注:": "примечание:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Его необходимо использовать один раз в течение 24 часов с момента начала, иначе он будет недействительным.",
|
||||
"这是单次密码,只能使用一次": "Это однократный пароль, который можно использовать только один раз.",
|
||||
"您好": "Здравствуйте",
|
||||
"您的开门密码是": "Ваш пароль",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "При открытии замка сначала активируйте клавиатуру замка, затем введите пароль, чтобы закончить #, # клавиша в правом нижнем углу клавиатуры, возможно, другие значки"
|
||||
}
|
||||
@ -83,8 +83,8 @@
|
||||
"上班时间": "সিস্টেম",
|
||||
"下班时间": "ক্লাসিং",
|
||||
"本周": "ইঙ্গোনেক",
|
||||
"单休": "এক-ডে-ওয়েওয়েন্ডName",
|
||||
"双休": "টেটো-ডেওওয়েলেন্ডName",
|
||||
"单休": "এক-ডে-ওয়েওয়েন্ড",
|
||||
"双休": "টেটো-ডেওওয়েলেন্ড",
|
||||
"单双休": "এক-টেটো-ডে-ওওয়েডেন্ড",
|
||||
"年": "ইয়ার",
|
||||
"月": "থ",
|
||||
@ -104,7 +104,7 @@
|
||||
"门磁": "ডোরনেসিসর",
|
||||
"自动闭锁": "স্বয়ংক্রিয় লক",
|
||||
"锁声音": "লক",
|
||||
"防撬报警": "ওয়েটperalertGenericName",
|
||||
"防撬报警": "ওয়েটperalertGeneric",
|
||||
"重置键": "ইউনিটন",
|
||||
"锁时间": "লকক",
|
||||
"诊断": "অ্যারিওনস",
|
||||
@ -237,7 +237,7 @@
|
||||
"搜索所有类型的锁": "স্যাকানাল্ডসপিসফক্স",
|
||||
"门锁": "ডোর-লক",
|
||||
"挂锁": "আনলক",
|
||||
"保险箱锁": "মাইন্টfelockGenericName",
|
||||
"保险箱锁": "মাইন্টfelockGeneric",
|
||||
"智能门禁": "লিজেন্টেসেস কন্ট্রোল",
|
||||
"车位锁": "কিকিংলক",
|
||||
"摸亮触摸屏": "টুকরাইকিউট্ট",
|
||||
@ -343,7 +343,7 @@
|
||||
"卡": "বিকশিত",
|
||||
"指纹": "ডিগ্রিমপ্রিন",
|
||||
"人脸": "ফেস",
|
||||
"配件商城": "লককName",
|
||||
"配件商城": "লকক",
|
||||
"公司名称": "অ্যাকম্পেনিনাম",
|
||||
"请输入公司名字": "কনস্টার অ্যাকম্পেনিনাম",
|
||||
"提示": "চিন্ট",
|
||||
@ -579,7 +579,7 @@
|
||||
"请输入wifi名称": "ক্যাপিলাইজ",
|
||||
"虹膜": "নিয়",
|
||||
"手掌": "Pp",
|
||||
"商城": "XmallName",
|
||||
"商城": "Xmall",
|
||||
"我的": "My",
|
||||
"微信公众号推送": "ইয়াক",
|
||||
"蓝牙": "নিকট্রিয়াথ",
|
||||
@ -710,7 +710,7 @@
|
||||
"传输期间请勿离开当前页面": "নির্দিষ্ট নেতৃত্বাধীন",
|
||||
"机型": "ডাইলস",
|
||||
"硬件版本": "ডার্ওয়ারভেন্স",
|
||||
"固件版本": "FmwareversionName",
|
||||
"固件版本": "Fmwareversion",
|
||||
"手动升级": "ধুয়াল ফলাগ্রাড",
|
||||
"设备连接中...": "প্রাচীন...",
|
||||
"未避免异常情况,请在门打开时升级": "সাউন oidযোগ্য exceptionstionsণনশনস, ক্যাপিলাইস",
|
||||
@ -897,7 +897,7 @@
|
||||
"配网成功": "নকর্ক ওয়ার্ক",
|
||||
"配网失败": "নবক ওয়ার্ক",
|
||||
"该锁的无线键盘都将被删除": "অলসবিহীন",
|
||||
"实时画面": "রিয়েল-টাইমপেসিচারName",
|
||||
"实时画面": "রিয়েল-টাইমপেসিচার",
|
||||
"适合门口较为安全的环境。": "ভিডিওটেবল ফরফরাসী ইলেই মাইউইভেনমেন্টের দরজা।",
|
||||
"仅发生特定事件才录像,并可查看实时画面。": "কেবলমাত্র আলোচনার কোর্সডন্ডথের রিয়েল-টাইমপিসিচার হয়ত।",
|
||||
"一般情况下,满电可使用7-8个月": "আন্ডারমালবিক",
|
||||
@ -996,7 +996,7 @@
|
||||
"类型:自定义-永久": "টাইপ:",
|
||||
"实时播放": "রিয়েল-টাইমপিপ্লেব্যাক",
|
||||
"点击对讲": "ক্লিক্টোকম",
|
||||
"长按开锁": "লংপ্রেসtocunlockGenericName",
|
||||
"长按开锁": "লংপ্রেসtocunlockGeneric",
|
||||
"接听失败": "ডিফাইরেডটুআনসাইওয়ার",
|
||||
"请在锁设置中开启远程开锁": "ক্যাপিলাইজ এসব... ...সংকলকিং",
|
||||
"接听": "অ্যানসাওয়ার",
|
||||
@ -1015,7 +1015,7 @@
|
||||
"呼叫提醒": "ক্যান্সাল",
|
||||
"收到来自": "আইভেদ্রোম",
|
||||
"锁的呼叫": "লোককল",
|
||||
"加载数据中": "ব্লুডিং-ডাটাName",
|
||||
"加载数据中": "ব্লুডিং-ডাটা",
|
||||
"搜索所有锁类型": "কোআরসার্লককপিস",
|
||||
"锁电量更新时间": "লক",
|
||||
"1月": "জিনা",
|
||||
@ -1031,7 +1031,7 @@
|
||||
"11月": "নভ",
|
||||
"12月": "ব্লিক",
|
||||
"热门城市": "আই",
|
||||
"导出锁数据": "পোর্টlockdataName",
|
||||
"导出锁数据": "পোর্টlockdata",
|
||||
"一键开锁": "এক-চ্যাক্লাক",
|
||||
"已开通": "উত্স",
|
||||
"编辑员工": "এডিটওফ",
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "ব্যান্ডোটারআইসেট, হাসিপাল রিরিইনস্ফথেলকবইল্ডজেডড।?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. অ্যাপে লকের রিমোট আনলকিং ফাংশন সক্ষম করুন (এই ফাংশনটি ডিফল্টরূপে বন্ধ রয়েছে)। যদি এই বিকল্পটি উপলভ্য না হয় তবে লকটি গুগল হোম সমর্থন করবে না",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "গুগল হোম অ্যাপ্লিকেশনটি ইনস্টল করুন এবং উপরের বাম কোণে প্লাস বোতামটি ক্লিক করুন",
|
||||
"暂无最新记录": "বর্তমানে কোনও সাম্প্রতিকতম রেকর্ড সুলভ নেই",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "ম্যানুয়াল সংযোগের জন্য দয়া করে আপনার ফোনটি 2.4 জি ওয়াইফাইতে স্যুইচ করুন"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "ম্যানুয়াল সংযোগের জন্য দয়া করে আপনার ফোনটি 2.4 জি ওয়াইফাইতে স্যুইচ করুন",
|
||||
"语音包设置": "ভয়েস প্যাকেজ সেটিংস",
|
||||
"第三方平台设置": "তৃতীয় পক্ষের প্ল্যাটফর্ম সেটিংস",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "ভয়েস প্যাকেজ সেটিংস লক করুন",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "পুরুষের কণ্ঠ",
|
||||
"女声": "নারী কণ্ঠ",
|
||||
"您的图像和视频数据仅保留": "আপনার চিত্র এবং ভিডিও ডেটা কেবল ধরে রাখা হয়",
|
||||
"后图像和视频数据将会失效,开通": "এর পরে, চিত্র এবং ভিডিও ডেটা অবৈধ এবং সক্রিয় হবে",
|
||||
"云存会员": "ক্লাউড স্টোরেজ সদস্যতা",
|
||||
"服务,图像视频信息随心存!": "পরিষেবা, চিত্র এবং ভিডিও তথ্য আপনার হৃদয়ে!",
|
||||
"图像": "প্রতিচ্ছবি",
|
||||
"视频": "ভিডিও",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "বর্তমানে, দেশটি মোবাইল ফোন যাচাইকরণ কোড নিবন্ধন সমর্থন করে না, নিবন্ধন করতে দয়া করে আপনার ইমেল ঠিকানা ব্যবহার করুন",
|
||||
"注:": "নোট:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "শুরু করার সময় 24 ঘন্টার মধ্যে একবার ব্যবহার করা প্রয়োজন, অন্যথায় এটি শেষ হবে",
|
||||
"这是单次密码,只能使用一次": "এটি একক পাসওয়ার্ড, শুধুমাত্র একবার ব্যবহার করা যায়।",
|
||||
"您好": "হ্যালো!",
|
||||
"您的开门密码是": "আপনার দরজা খোলার পাসওয়ার্ড",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "লক খোলার সময়, প্রথমে লক কীবোর্ড সক্রিয় করুন, তারপর পাসওয়ার্ড টাইপ করুন, যা # সংখ্যা দিয়ে শেষ হয়, # সংখ্যা কী কীবোর্ডের নিচের"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po resetování budou metakarpální žíly zámku odstraněny. Jste si jistý, že chcete resetovat?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Povolte funkci dálkového odemykání zámku v APP (tato funkce je ve výchozím nastavení vypnutá). Pokud tato možnost není k dispozici, zámek nebude podporovat Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Nainstalujte aplikaci Google Home a klikněte na tlačítko plus v levém horním rohu",
|
||||
"暂无最新记录": "Momentálně nejsou k dispozici žádné nejnovější záznamy",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Přepněte prosím svůj telefon na 2.4G WiFi pro ruční připojení"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Přepněte prosím svůj telefon na 2.4G WiFi pro ruční připojení",
|
||||
"语音包设置": "Nastavení hlasového balíčku",
|
||||
"第三方平台设置": "Nastavení platformy třetích stran",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Zamknout nastavení hlasového balíčku",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Mužský hlas",
|
||||
"女声": "Ženský hlas",
|
||||
"您的图像和视频数据仅保留": "Uchovávají se pouze vaše obrazová data a data videí",
|
||||
"后图像和视频数据将会失效,开通": "Poté budou obrazová a video data neplatná a aktivovaná",
|
||||
"云存会员": "Členství v cloudovém úložišti",
|
||||
"服务,图像视频信息随心存!": "Servis, obrazové a video informace jsou na prvním místě!",
|
||||
"图像": "obraz",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "V současné době země nepodporuje registraci ověřovacího kódu mobilního telefonu, k registraci použijte prosím svou e-mailovou adresu",
|
||||
"注:": "Poznámka:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Je nutné použít jednou do 24 hodin od začátku, jinak vyprší.",
|
||||
"这是单次密码,只能使用一次": "Jedná se o jednorázové heslo, které lze použít pouze jednou.",
|
||||
"您好": "Dobrý den.",
|
||||
"您的开门密码是": "Vaše otevírací heslo je",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Při odemknutí nejprve aktivujte klávesnici pro zamyknutí a potom zadejte heslo, které končí číslem # a číslo # je v pravém dolním rohu klávesnice, může být další ikona"
|
||||
}
|
||||
@ -63,7 +63,7 @@
|
||||
"授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人": "Den autoriserede administrator har flertal tilladelse til at betjene denne lås.",
|
||||
"功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。": "Denne funktion giver dig mulighed for at låse Smart Lock fjernbetjening via en Gateway. Denne funktion kan kun slås til eller fra via Bluetooth.",
|
||||
"排列方式": "Listetype",
|
||||
"早到榜": "Tidlig listeName",
|
||||
"早到榜": "Tidlig liste",
|
||||
"迟到榜": "Forsinkede lister",
|
||||
"当前模式": "Nuværende tilstand",
|
||||
"勤奋榜": "Arbejdshård liste:",
|
||||
@ -116,7 +116,7 @@
|
||||
"微信二维码": "Lås op QR- kode",
|
||||
"拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边": "Folk med elektroniske nøgler kan åbne døren ved at scanne denne QR-kode gennem WeChat. QR-koden for hver lås er anderledes. Du kan udskrive det ud og indsætte det ved siden af den tilsvarende lås",
|
||||
"锁编号": "Låsnummer",
|
||||
"电量": "BatteriName",
|
||||
"电量": "Batteri",
|
||||
"锁分组": "Lås gruppen",
|
||||
"选择分组": "Vælg gruppe",
|
||||
"创建新分组": "Opret en gruppe",
|
||||
@ -157,7 +157,7 @@
|
||||
"选择锁类型": "Vælg låstype",
|
||||
"NFC无源锁": "NFC Passiv lås",
|
||||
"添加设备": "Tilføj enhed",
|
||||
"网关": "GatewayName",
|
||||
"网关": "Gateway",
|
||||
"客服": "Kundeservice:",
|
||||
"设置": "Indstillinger",
|
||||
"更多设置": "Mere sæt",
|
||||
@ -185,7 +185,7 @@
|
||||
"删除账号": "Slet konto",
|
||||
"个人信息": "Kontoinformation",
|
||||
"头像": "Avatar",
|
||||
"昵称": "NickNameName",
|
||||
"昵称": "NickName",
|
||||
"请输入昵称": "Indtast venligst dit kaldenavn",
|
||||
"修改昵称": "Omdøb",
|
||||
"修改账号": "Redigér konto",
|
||||
@ -213,10 +213,10 @@
|
||||
"网关连接的锁": "Lås forbundet til denne Gateway",
|
||||
"信号强": "Stærk",
|
||||
"选择网关类型": "Vælg gateway- type",
|
||||
"添加网关": "Tilføj gatewayName",
|
||||
"添加网关": "Tilføj gateway",
|
||||
"重新通电": "Tilslut kraften",
|
||||
"指示灯": "Indikator Lys",
|
||||
"选择网关": "Vælg gatewayName",
|
||||
"选择网关": "Vælg gateway",
|
||||
"不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G understøttes ikke, Vælg et WiFi på 2.4G.",
|
||||
"WiFi密码": "WiFi- adgangskort",
|
||||
"请输入WiFi密码": "Indtast WiFi- adgangskode",
|
||||
@ -245,7 +245,7 @@
|
||||
"附近的锁": "Nærlig låse",
|
||||
"如需修改名字请重新命名,点击确定添加锁": "Hvis du vil ændre navnet, skal du omdøbe, klikke på OK for at tilføje låse",
|
||||
"添加锁时,手机必须在锁旁边": "Når du tilføjer en lås, skal telefonen være ved siden af låsen",
|
||||
"登录": "LoginName",
|
||||
"登录": "Login",
|
||||
"注册": "Registrer",
|
||||
"我已阅读并同意": "Jeg har læst og indvilliget",
|
||||
"验证码": "Kode",
|
||||
@ -305,7 +305,7 @@
|
||||
"胁迫卡": "Stresskort",
|
||||
"员工是否有密码": "Har allerede adgangskode",
|
||||
"员工是否有卡": "Har allerede kort",
|
||||
"员工是否有指纹": "Sæt fingeraftrykket alleredeName",
|
||||
"员工是否有指纹": "Sæt fingeraftrykket allerede",
|
||||
"获取钥匙": "Hent nøgle",
|
||||
"获取卡": "Hent kort",
|
||||
"获取指纹": "Hent fingeraftryk",
|
||||
@ -316,11 +316,11 @@
|
||||
"开门器": "Døråbnere",
|
||||
"面容开锁": "Ansigt åbnes",
|
||||
"开门方向设置": "Åbningsvejssæt",
|
||||
"电机功率设置": "Indstilling af MotorPowerName",
|
||||
"电机功率设置": "Indstilling af MotorPower",
|
||||
"开锁时是否需联网": "Hvis Internet er påkrævet ved oplåsning",
|
||||
"选择要加入分组的锁": "Vælg lockS der skal tilføjes til denne gruppe.",
|
||||
"锁数量": "Låstællinger",
|
||||
"小米IOT平台": "Xiaomi IOT-platformName",
|
||||
"小米IOT平台": "Xiaomi IOT-platform",
|
||||
"面容开锁设置": "Ansigtet låser op sæt",
|
||||
"感应距离": "Følelsesafstand",
|
||||
"防误开": "Forhindre forkert åbning",
|
||||
@ -365,7 +365,7 @@
|
||||
"员工是否有人脸": "Om medarbejderen har et ansigt",
|
||||
"同时删除员工钥匙": "Slet hans/ hendes ekey",
|
||||
"删除": "Slet",
|
||||
"确定要删除员工吗?": "Slet denne medarbejderName",
|
||||
"确定要删除员工吗?": "Slet denne medarbejder",
|
||||
"月统计": "Månedlig statistik",
|
||||
"迟到": "Forsinker",
|
||||
"早退": "Forsvind tidligt",
|
||||
@ -519,7 +519,7 @@
|
||||
"网络访问失败,请检查网络是否正常": "Forespørgsel mislykkedes.Netværk utilgængelig, Kontroller og tilslut din enhed til 3G/4G/WIFI",
|
||||
"清空": "Ryd",
|
||||
"是否清空?": "Forstået?",
|
||||
"消息详情": "Brev- infoName",
|
||||
"消息详情": "Brev- info",
|
||||
"创建时间": "Oprettelsestid",
|
||||
"管理员详情": "Oplysninger om administrator",
|
||||
"当被胁迫要求强行开锁时,使用胁迫卡会触发报警,报警信息会推送给管理员,该功能需要锁联网。": "Hvis nogen tvinger dig til at åbne døren, kan du bruge dette kort. Alarmen vil blive sendt til administratorerne. For at bruge denne funktion, skal du sørge for din lås er online.",
|
||||
@ -691,7 +691,7 @@
|
||||
"请输入身份证号和真实姓名": "Indtast venligst dit ID- nummer og rigtige navn.",
|
||||
"点击返回设备配对": "Tryk på Tilbage til enhedsparing",
|
||||
"无法连接?尝试升级": "Kan ikke forbinde?",
|
||||
"固件升级提示": "Prompt for opgradering af FirmwareName",
|
||||
"固件升级提示": "Prompt for opgradering af Firmware",
|
||||
"请先获取固件文件到手机本地,再选择升级": "Få venligst firmware-filen til den lokale telefon først, og vælg derefter Opgrader",
|
||||
"固件升级中": "Firmwaren bliver opgraderet",
|
||||
"取消升级": "Annullér opgraderingen",
|
||||
@ -703,7 +703,7 @@
|
||||
"传输中": "I transit",
|
||||
"发送人": "Udstedt af:",
|
||||
"发送时间": "Udstedt tid",
|
||||
"钥匙详情": "Ekey- infoName",
|
||||
"钥匙详情": "Ekey- info",
|
||||
"姓名": "Navn",
|
||||
"发送": "Send",
|
||||
"请确认姓名全名和身份证号码是否正确": "Bekræft venligst, at det fulde navn og ID-nummer er korrekt.",
|
||||
@ -834,7 +834,7 @@
|
||||
"微信": "WeChat",
|
||||
"朋友圈": "Øjeblikker",
|
||||
"QQ": "QQ",
|
||||
"QQ空间": "QQZoneName",
|
||||
"QQ空间": "QQZone",
|
||||
"微博": "Weibo Formand",
|
||||
"FaceBook": "Facebook",
|
||||
"链接": "Tilknytning",
|
||||
@ -872,7 +872,7 @@
|
||||
"再返回一次退出": "Afslut igen.",
|
||||
"请先添加锁": "Tilføj venligst låsen først.",
|
||||
"可视对讲": "Visuel interkom.",
|
||||
"详细日志": "Detaljeret log logName",
|
||||
"详细日志": "Detaljeret log log",
|
||||
"已复制到剪切板": "Kopieret",
|
||||
"拍照": "Fotografi",
|
||||
"从相册选择": "Vælg mellem albumet",
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Efter nulstilling, de metacarpal vener i låsen vil blive slettet. Er du sikker på at du vil nulstille?",
|
||||
@ -1097,7 +1100,7 @@
|
||||
"支持的国家值": "USA, Canada, Storbritannien, Australien, Indien, Tyskland, Frankrig, Italien, Spanien, Japan.",
|
||||
"操作流程": "Driftsprocesser",
|
||||
"操作流程值": "1 Tilføj en lås og gateway med Smart lås APP\n\n2 Aktiver den fjernlåsefunktion af låsen i APP (denne funktion er slukket som standard). Hvis du ikke har denne indstilling, understøtter låsen ikke Alexa\n\n3 Tilføj færdigheder til Alexa og autorisere dem med Smart lås APP konto og adgangskode. Når godkendelsen er vellykket, kan du opdage enheder under kontoen\n\n4 Find låsen i Alexa-appen, tænd stemme oplåsfunktionen og indstille adgangskoden for sproget.\n\n5 Låsen kan betjenes gennem Alexa",
|
||||
"Google Home": "Google-hjemName",
|
||||
"Google Home": "Google-hjem",
|
||||
"Action name": "Handlingsnavn",
|
||||
"ScienerSmart": "ScienerSmart",
|
||||
"支持的语言": "Understøttede sprog",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Aktiver fjernoplåsningsfunktionen for låsen i APP'en (denne funktion er slået fra som standard). Hvis denne mulighed ikke er tilgængelig, understøtter låsen ikke Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Installer Google Home-appen, og klik på plusknappen i øverste venstre hjørne",
|
||||
"暂无最新记录": "Der er i øjeblikket ingen nyeste optegnelser tilgængelige",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Skift venligst din telefon til 2.4G WiFi for manuel forbindelse"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Skift venligst din telefon til 2.4G WiFi for manuel forbindelse",
|
||||
"语音包设置": "Indstillinger af stemmepakke",
|
||||
"第三方平台设置": "Indstillinger af tredjepartsplatforme",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Lås stemmepakkeindstillinger",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Mandlige stemmer",
|
||||
"女声": "Kvindelige stemmer",
|
||||
"您的图像和视频数据仅保留": "Dine billed- og videodata opbevares kun",
|
||||
"后图像和视频数据将会失效,开通": "Derefter vil billed- og videodataene være ugyldige og aktiveret",
|
||||
"云存会员": "Medlemskab af Cloud Storage",
|
||||
"服务,图像视频信息随心存!": "Service-, billed- og videoinformation er i dit hjerte!",
|
||||
"图像": "billede",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "I øjeblikket understøtter landet ikke registrering af mobiltelefonbekræftelseskode, brug venligst din e-mailadresse til at tilmelde dig",
|
||||
"注:": "Bemærk:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Bruges én gang inden for 24 timer, ellers udløber",
|
||||
"这是单次密码,只能使用一次": "Det er en enkelt adgangskode. Du kan kun bruge den én gang.",
|
||||
"您好": "Goddag.",
|
||||
"您的开门密码是": "Din adgangskode er",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Når du låser op, skal du først aktivere lås tastaturet, og derefter indtaste adgangskoden, der slutter med #nummer, #nummer i nederste højre hjørne af tastaturet, der kan være andre ikoner"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Nach dem Zurücksetzen werden die Mittelhand adern des Schlosses gelöscht. Sind Sie sicher, dass Sie zurücksetzen wollen?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Entsichern in einer APP, die ein schloss öffnet (standard abschalten) Wenn diese option nicht verfügbar ist, wird das schloss google nicht unterstützen",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Installiert die google-app und klicken auf den knopf hinzufügen in der oberen linken ecke",
|
||||
"暂无最新记录": "Wir haben keine neuen daten",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Wenn manuelle verbindung hergestellt wird, schalten sie das handy auf 2,4 G WiFi"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Wenn manuelle verbindung hergestellt wird, schalten sie das handy auf 2,4 G WiFi",
|
||||
"语音包设置": "Sprachpaketeinstellungen",
|
||||
"第三方平台设置": "Einstellungen von Drittanbieterplattformen",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Sperren von Sprachpaketeinstellungen",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Männliche Stimme",
|
||||
"女声": "Frauenstimme",
|
||||
"您的图像和视频数据仅保留": "Ihre Bild- und Videodaten werden nur dann aufbewahrt",
|
||||
"后图像和视频数据将会失效,开通": "Danach sind die Bild- und Videodaten ungültig und aktiviert",
|
||||
"云存会员": "Cloud-Speicher-Mitgliedschaft",
|
||||
"服务,图像视频信息随心存!": "Service-, Bild- und Videoinformationen liegen Ihnen am Herzen!",
|
||||
"图像": "Bild",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Derzeit unterstützt das Land die Registrierung von Verifizierungscodes für Mobiltelefone nicht, bitte verwenden Sie Ihre E-Mail-Adresse, um sich zu registrieren",
|
||||
"注:": "Hinweis:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Muss innerhalb von 24 Stunden nach Startzeit einmal verwendet werden, sonst läuft es ab",
|
||||
"这是单次密码,只能使用一次": "Dies ist ein Einmal-Passwort und kann nur einmal verwendet werden",
|
||||
"您好": "Hallo",
|
||||
"您的开门密码是": "Ihr Türöffnungscode lautet",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Zum Entriegeln zuerst die Schloss-Tastatur aktivieren, dann das Passwort eingeben und mit # beenden. Die #-Taste befindet sich in der rechten unteren Ecke der Tastatur und kann ein anderes Symbol haben"
|
||||
}
|
||||
@ -97,7 +97,7 @@
|
||||
"日榜": "Καθημερινά",
|
||||
"月榜": "Μηνιαία",
|
||||
"考勤记录": "Καταγραφή",
|
||||
"假日信息": "Πληροφορίες διακοπώνName",
|
||||
"假日信息": "Πληροφορίες διακοπών",
|
||||
"基本信息": "Βασικά",
|
||||
"无线键盘": "Ασύρματο πληκτρολόγιο",
|
||||
"选择无线键盘": "Προσθήκη πληκτρολόγιου",
|
||||
@ -185,7 +185,7 @@
|
||||
"删除账号": "Διαγραφή λογαριασμού",
|
||||
"个人信息": "Πληροφορίες λογαριασμού",
|
||||
"头像": "Άβαταρ",
|
||||
"昵称": "NickNameName",
|
||||
"昵称": "NickName",
|
||||
"请输入昵称": "Παρακαλώ εισάγετε το ψευδώνυμό σας",
|
||||
"修改昵称": "Μετονομασία",
|
||||
"修改账号": "Επεξεργασία λογαριασμού",
|
||||
@ -693,7 +693,7 @@
|
||||
"无法连接?尝试升级": "Δεν μπορείτε να συνδεθείτε;",
|
||||
"固件升级提示": "Προτεινόμενη αναβάθμιση του Firmware",
|
||||
"请先获取固件文件到手机本地,再选择升级": "Παρακαλώ αποκτήστε πρώτα το αρχείο firmware στο τοπικό τηλέφωνο και στη συνέχεια επιλέξτε Αναβάθμιση",
|
||||
"固件升级中": "Το firmware αναβαθμίζεταιName",
|
||||
"固件升级中": "Το firmware αναβαθμίζεται",
|
||||
"取消升级": "Ακύρωση της αναβάθμισης",
|
||||
"固件传输中": "Άρθρο 10",
|
||||
"关闭": "Κλείσιμο",
|
||||
@ -834,7 +834,7 @@
|
||||
"微信": "WeChat",
|
||||
"朋友圈": "Στιγμές",
|
||||
"QQ": "QQ",
|
||||
"QQ空间": "QQZoneName",
|
||||
"QQ空间": "QQZone",
|
||||
"微博": "Γουίβο",
|
||||
"FaceBook": "Βιβλίο Facebook",
|
||||
"链接": "Δεσμός",
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Μετά την επαναφορά, οι μετακάρπιες φλέβες της κλειδαριάς θα διαγραφούν. Είστε σίγουροι ότι θέλετε να επαναφέρετε;",
|
||||
@ -1097,12 +1100,12 @@
|
||||
"支持的国家值": "ΗΠΑ, Καναδάς, Ηνωμένο Βασίλειο, Αυστραλία, Ινδία, Γερμανία, Γαλλία, Ιταλία, Ισπανία, Ιαπωνία",
|
||||
"操作流程": "Διαδικασία λειτουργίας",
|
||||
"操作流程值": "1 Προσθέστε μια κλειδαριά και πύλη με την Smart κλειδαριά APP\n\n2 Ενεργοποιήστε τη λειτουργία απομακρυσμένου ξεκλειδώματος της κλειδαριάς στο APP (αυτή η συνάρτηση είναι απενεργοποιημένη από προεπιλογή). Αν δεν έχετε αυτή την επιλογή, η κλειδαριά δεν υποστηρίζει Alexa\n\n3 Προσθέστε τις δεξιότητες στην Alexa και να τις εξουσιοδοτήσετε με το λογαριασμό και τον κωδικό πρόσβασης Smart. Μετά την επιτυχία της εξουσιοδότησης, μπορείτε να ανακαλύψετε συσκευές κάτω από τον λογαριασμό\n\n4 Εντοπίστε την κλειδαριά στην εφαρμογή Alexa, ενεργοποιήστε τη λειτουργία φωνής ξεκλειδώματος, και να ορίσετε τον κωδικό πρόσβασης γλώσσας\n\n5 Η κλειδαριά μπορεί να λειτουργήσει μέσω Alexa",
|
||||
"Google Home": "Σπίτι του GoogleName",
|
||||
"Google Home": "Σπίτι του Google",
|
||||
"Action name": "Όνομα ενέργειας",
|
||||
"ScienerSmart": "ΕπιστήμοναςSmart",
|
||||
"支持的语言": "Υποστηριζόμενες γλώσσες",
|
||||
"英语": "Αγγλική",
|
||||
"Google Home操作流程的值": "1. Χρησιμοποιήστε το Smart Lock APP για να προσθέσετε κλειδαριές και πύλες\n\n2. Ενεργοποιήστε τη λειτουργία απομακρυσμένου ξεκλειδώματος της κλειδαριάς στο APP (αυτή η λειτουργία είναι απενεργοποιημένη από προεπιλογή). Χωρίς αυτή την επιλογή, η κλειδαριά δεν υποστηρίζει το Google HomeName\n\n3. Εγκαταστήστε το Google Home APP και κάντε κλικ στο \" \" πλήκτρο στην επάνω αριστερή γωνία\n\n4. Στη σελίδα Ρυθμίσεις, επιλέξτε \"Εργασία με Google\"\n\n5. Αναζητήστε το \"ScienerSmart\" και να χρησιμοποιήσετε τον έξυπνο λογαριασμό και τον κωδικό πρόσβασης για να εξουσιοδοτήσει",
|
||||
"Google Home操作流程的值": "1. Χρησιμοποιήστε το Smart Lock APP για να προσθέσετε κλειδαριές και πύλες\n\n2. Ενεργοποιήστε τη λειτουργία απομακρυσμένου ξεκλειδώματος της κλειδαριάς στο APP (αυτή η λειτουργία είναι απενεργοποιημένη από προεπιλογή). Χωρίς αυτή την επιλογή, η κλειδαριά δεν υποστηρίζει το Google Home\n\n3. Εγκαταστήστε το Google Home APP και κάντε κλικ στο \" \" πλήκτρο στην επάνω αριστερή γωνία\n\n4. Στη σελίδα Ρυθμίσεις, επιλέξτε \"Εργασία με Google\"\n\n5. Αναζητήστε το \"ScienerSmart\" και να χρησιμοποιήσετε τον έξυπνο λογαριασμό και τον κωδικό πρόσβασης για να εξουσιοδοτήσει",
|
||||
"密码需至少包含数字/字母/字符中的2种组合": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 2 από τα ακόλουθα: αριθμούς, γράμματα και ειδικούς χαρακτήρες.",
|
||||
"已开锁": "Ξεκλείδωμα",
|
||||
"已闭锁": "Κλειδωμένο",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Ενεργοποιήστε τη λειτουργία απομακρυσμένου ξεκλειδώματος της κλειδαριάς στην εφαρμογή (αυτή η λειτουργία είναι απενεργοποιημένη από προεπιλογή). Εάν αυτή η επιλογή δεν είναι διαθέσιμη, το κλείδωμα δεν θα υποστηρίζει το Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Εγκαταστήστε την εφαρμογή Google Home και κάντε κλικ στο κουμπί συν στην επάνω αριστερή γωνία",
|
||||
"暂无最新记录": "Προς το παρόν δεν υπάρχουν διαθέσιμες τελευταίες εγγραφές",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Αλλάξτε το τηλέφωνό σας σε 2.4G WiFi για χειροκίνητη σύνδεση"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Αλλάξτε το τηλέφωνό σας σε 2.4G WiFi για χειροκίνητη σύνδεση",
|
||||
"语音包设置": "Ρυθμίσεις πακέτου φωνής",
|
||||
"第三方平台设置": "Ρυθμίσεις πλατφόρμας τρίτων",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Ρυθμίσεις κλειδώματος πακέτου φωνής",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Ανδρική φωνή",
|
||||
"女声": "Γυναικεία φωνή",
|
||||
"您的图像和视频数据仅保留": "Τα δεδομένα εικόνας και βίντεο διατηρούνται μόνο",
|
||||
"后图像和视频数据将会失效,开通": "Μετά από αυτό, τα δεδομένα εικόνας και βίντεο θα είναι άκυρα και θα ενεργοποιηθούν",
|
||||
"云存会员": "Συνδρομή Cloud Storage",
|
||||
"服务,图像视频信息随心存!": "Οι πληροφορίες εξυπηρέτησης, εικόνας και βίντεο είναι στην καρδιά σας!",
|
||||
"图像": "εικόνα",
|
||||
"视频": "Βίντεο",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Προς το παρόν, η χώρα δεν υποστηρίζει την εγγραφή κωδικού επαλήθευσης κινητού τηλεφώνου, χρησιμοποιήστε τη διεύθυνση email σας για να εγγραφείτε",
|
||||
"注:": "Σημείωση:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Πρέπει να χρησιμοποιηθεί μία φορά εντός 24 ωρών από την ώρα έναρξης, διαφορετικά θα λήξει",
|
||||
"这是单次密码,只能使用一次": "Είναι ένας μοναδικός κωδικός πρόσβασης. Μπορεί να χρησιμοποιηθεί μόνο μία φορά.",
|
||||
"您好": "Γεια σας.",
|
||||
"您的开门密码是": "Ο κωδικός σας είναι",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Όταν ξεκλειδώσετε, ενεργοποιήστε το πληκτρολόγιο κλειδαριού και πληκτρολογήστε τον κωδικό πρόσβασης, ο οποίος τελειώνει με το νούμερο # και το νούμερο # είναι στην κάτω δεξιά γωνία του πληκτρολόγιου, μπορεί να είναι ένα άλλο εικονίδιο"
|
||||
}
|
||||
2345
lan/lan_en.json
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Después del reinicio, se eliminarán las venas metacarpiales de la cerradura. ¿Está seguro de que desea restablecer?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Habilitar la función de desbloqueo remoto del bloqueo en la aplicación (esta función se desactiva por defecto). Si esta opción no está disponible, el bloqueo no será compatible con Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Instale la aplicación de Google Home y haga clic en el botón más en la esquina superior izquierda",
|
||||
"暂无最新记录": "Actualmente no hay registros más recientes disponibles",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Por favor cambia tu teléfono a 2.4G WiFi para la conexión manual"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Por favor cambia tu teléfono a 2.4G WiFi para la conexión manual",
|
||||
"语音包设置": "Configuración del paquete de voz",
|
||||
"第三方平台设置": "Configuración de la Plataforma de terceros",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Configuración del paquete de voz de bloqueo",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Voz masculina",
|
||||
"女声": "Voz femenina",
|
||||
"您的图像和视频数据仅保留": "Solo se conservan los datos de imagen y vídeo",
|
||||
"后图像和视频数据将会失效,开通": "Después de eso, los datos de imagen y video no serán válidos y se activarán",
|
||||
"云存会员": "Membresía de almacenamiento en la nube",
|
||||
"服务,图像视频信息随心存!": "¡La información de servicio, imagen y video está en su corazón!",
|
||||
"图像": "imagen",
|
||||
"视频": "Vídeo",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Actualmente, el país no admite el registro de códigos de verificación de teléfonos móviles, utilice su dirección de correo electrónico para registrarse",
|
||||
"注:": "Nota:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Debe usarse una vez dentro de las 24 horas de inicio, de lo contrario caducará.",
|
||||
"这是单次密码,只能使用一次": "Esta es una contraseña única y solo se puede usar una vez.",
|
||||
"您好": "Hola",
|
||||
"您的开门密码是": "Su contraseña de apertura es",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Al abrir la cerradura, primero active el teclado de la cerradura e introduzca la contraseña para terminar con el número, la tecla de número está en la esquina inferior derecha del teclado, puede ser otro icono"
|
||||
}
|
||||
@ -55,7 +55,7 @@
|
||||
"密码详情": "Parooli infoComment",
|
||||
"修改密码": "Parooli muutmine",
|
||||
"添加虹膜": "Lisa Iiris",
|
||||
"添加门磁": "UksessensorName",
|
||||
"添加门磁": "Uksessensor",
|
||||
"添加无线键盘": "Juhtmeta klaviatuuri",
|
||||
"添加手掌": "Lisa palmi",
|
||||
"请输入员工账号": "Sisesta töötaja konto",
|
||||
@ -101,7 +101,7 @@
|
||||
"基本信息": "Põhimõtted",
|
||||
"无线键盘": "Juhtmeta klaviatuuri",
|
||||
"选择无线键盘": "Lisa klaviatuuri",
|
||||
"门磁": "UksessensorName",
|
||||
"门磁": "Uksessensor",
|
||||
"自动闭锁": "Automaatne lukustamine",
|
||||
"锁声音": "Heli lukustamine",
|
||||
"防撬报警": "Häire Tamperi",
|
||||
@ -185,7 +185,7 @@
|
||||
"删除账号": "Kustuta konto",
|
||||
"个人信息": "Konto teave",
|
||||
"头像": "Avatar",
|
||||
"昵称": "NikNameName",
|
||||
"昵称": "NikName",
|
||||
"请输入昵称": "Palun sisesta oma hüüdnimi.",
|
||||
"修改昵称": "Nimeta ümber",
|
||||
"修改账号": "Redigeeri konto",
|
||||
@ -503,8 +503,8 @@
|
||||
"您的钥匙已冻结": "Sinu võti on külmutatud",
|
||||
"您的钥匙已过期": "Sinu võti aegus",
|
||||
"常开模式开启": "Lukk on läbisõidurežiimis",
|
||||
"超级管理员": "Super adminName",
|
||||
"授权管理员": "Lubatud adminName",
|
||||
"超级管理员": "Super admin",
|
||||
"授权管理员": "Lubatud admin",
|
||||
"普通用户": "Tavaline kasutaja",
|
||||
"余": "Saldos",
|
||||
"天": "Päev",
|
||||
@ -558,7 +558,7 @@
|
||||
"密码生成后,请在当日23:59前使用,否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。": "Pärast parooli loomist palun kasutage seda enne 23:59 samal päeval, vastasel juhul on see kehtetu pärast kella 0. Selge koodi kasutatakse kõigi loodud paroolide tühjendamiseks täna enne kella 0.",
|
||||
"密码生成后,请在当日23:59前使用,否则过0点后失效。": "Pärast parooli loomist palun kasutage seda enne 23:59 samal päeval, vastasel juhul on see kehtetu pärast kella 0.",
|
||||
"清空密码底部提示": "Parool kehtib kuni 23:59 tühjendamise päeval",
|
||||
"相机": "KaameraName",
|
||||
"相机": "Kaamera",
|
||||
"相册": "Fotod",
|
||||
"读写": "Säilitamine",
|
||||
"定位": "Asukoht",
|
||||
@ -582,7 +582,7 @@
|
||||
"商城": "Kaubamaja",
|
||||
"我的": "Minu",
|
||||
"微信公众号推送": "Jutt avalik konto",
|
||||
"蓝牙": "BluetoothName",
|
||||
"蓝牙": "Bluetooth",
|
||||
"需要访问蓝牙权限才能使用添加钥匙功能的位置信息": "Juurdepääs Bluetooth-i õigustele on vaja, et kasutada asukoha lisamise funktsiooni asukoha teavet",
|
||||
"请输入Email": "Sisesta oma e- postil",
|
||||
"请输入手机号": "Sisesta oma telefoninumber",
|
||||
@ -604,7 +604,7 @@
|
||||
"家人": "Pereliigem",
|
||||
"保存": "Salvesta",
|
||||
"APP推送": "APP lükkamine",
|
||||
"管理员": "AdministraatorName",
|
||||
"管理员": "Administraator",
|
||||
"未启用": "Pole lubatud",
|
||||
"已启用": "Lubatud",
|
||||
"省电模式": "Energiasäästu režiim",
|
||||
@ -613,7 +613,7 @@
|
||||
"自定义模式": "Kohandatud režiim",
|
||||
"猫眼设置": "Kassilmade seadmine",
|
||||
"猫眼工作模式": "Kassilmade töörežiim",
|
||||
"自动亮屏": "Automaatne erekraanName",
|
||||
"自动亮屏": "Automaatne erekraan",
|
||||
"亮屏持续时间": "Ekraan õigel ajal",
|
||||
"逗留警告": "Hoiatus.",
|
||||
"异常警告": "Ebatavaline hoiatus.",
|
||||
@ -745,7 +745,7 @@
|
||||
"为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "Oluliste uuenduste saamiseks klõpsake \"OK\" ja lubage teated seaded.",
|
||||
"开启后,可通过长按锁上的设置键重新上电,用APP重新添加": "Pärast sisselülitamist saad uuesti sisse vajutada klahvi lukk ja lisada see uuesti APP abil",
|
||||
"已有": "Praegune",
|
||||
"新增": "UusName",
|
||||
"新增": "Uus",
|
||||
"账号格式错误": "Halb vormingus",
|
||||
"接收者信息为空": "Saaja teave on tühi",
|
||||
"请输入时间(秒)": "Palun sisesta kellaaeg (sek)",
|
||||
@ -770,7 +770,7 @@
|
||||
"转移成功": "Ülekandmine",
|
||||
"该已锁被删除": "Lukustatud on kustutatud",
|
||||
"授权管理员只能查看和管理自己下发的钥匙、密码等权限": "Volitatud admin saab hallata ainult salakoode,ekeys ja etccreated ise.",
|
||||
"添加授权管理员": "Loo adminName",
|
||||
"添加授权管理员": "Loo admin",
|
||||
"导出记录": "Eksporditeenused",
|
||||
"选择时间段": "Vali ajavahemik",
|
||||
"导出": "Eksport",
|
||||
@ -834,7 +834,7 @@
|
||||
"微信": "WeChat",
|
||||
"朋友圈": "Hetked",
|
||||
"QQ": "QQ",
|
||||
"QQ空间": "QQZoneName",
|
||||
"QQ空间": "QQZone",
|
||||
"微博": "WeiboComment",
|
||||
"FaceBook": "FaceBook",
|
||||
"链接": "Lingi",
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Pärast lähtestamist kustutatakse luku metakarpaalveenid. Kas tõesti soovid lähtestada?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Lubage rakenduses APP luku kaugavamise funktsioon (see funktsioon on vaikimisi välja lülitatud). Kui see valik pole saadaval, ei toeta lukk Google Home'i",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Installige rakendus Google Home ja klõpsake vasakus ülanurgas plussnuppu",
|
||||
"暂无最新记录": "Praegu pole uusimaid andmeid saadaval",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Käsitsi ühendamiseks lülitage telefon 2.4G WiFi-le"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Käsitsi ühendamiseks lülitage telefon 2.4G WiFi-le",
|
||||
"语音包设置": "Häälepaketi seadistused",
|
||||
"第三方平台设置": "Kolmanda osapoole platvormi seaded",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Lukustage häälepaketi seaded",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Meeste hääl",
|
||||
"女声": "Naiste hääl",
|
||||
"您的图像和视频数据仅保留": "Teie pildi- ja videoandmeid säilitatakse ainult",
|
||||
"后图像和视频数据将会失效,开通": "Pärast seda on pildi- ja videoandmed kehtetud ja aktiveeritud",
|
||||
"云存会员": "Pilvesalvestuse liikmelisus",
|
||||
"服务,图像视频信息随心存!": "Teenindus-, pildi- ja videoteave on teie südames!",
|
||||
"图像": "Piltide",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Praegu ei toeta riik mobiiltelefoni kinnituskoodi registreerimist, palun kasutage registreerumiseks oma e-posti aadressi",
|
||||
"注:": "Märkus:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Kasutada tuleb 24 tunni jooksul, muidu kaotab kehtivus.",
|
||||
"这是单次密码,只能使用一次": "See on ühekordne parool, mida saab kasutada ainult üks kord.",
|
||||
"您好": "Tere. Tere.",
|
||||
"您的开门密码是": "Teie salasõna on",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Lukustamisel aktiveerige klaviatuur, seejärel sisestage parool, mis lõpeb numbriga # klaviatuuri paremas alumises nurgas, võib olla muud ikoonid"
|
||||
}
|
||||
@ -185,7 +185,7 @@
|
||||
"删除账号": "Poista tili",
|
||||
"个人信息": "Tilitiedot",
|
||||
"头像": "Avatar",
|
||||
"昵称": "NickNameName",
|
||||
"昵称": "NickName",
|
||||
"请输入昵称": "Anna nimitysi",
|
||||
"修改昵称": "Nimeä uudelleen",
|
||||
"修改账号": "Muokkaa tiliä",
|
||||
@ -216,7 +216,7 @@
|
||||
"添加网关": "Lisää porttiComment",
|
||||
"重新通电": "Yhdistä teho",
|
||||
"指示灯": "Indikaattori Valo",
|
||||
"选择网关": "Valitse porttiName",
|
||||
"选择网关": "Valitse portti",
|
||||
"不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G ei ole tuettu, valitse 2.4G:n WiFi.",
|
||||
"WiFi密码": "WiFi",
|
||||
"请输入WiFi密码": "Syötä WiFi- salasana.",
|
||||
@ -232,7 +232,7 @@
|
||||
"使用静态IP": "Käytä staattista IP",
|
||||
"请输入IP地址": "Anna IP- osoite",
|
||||
"请输入子网掩码": "Syötä aliverkkomaa",
|
||||
"请输入默认网关": "Siirry oletusporttiName",
|
||||
"请输入默认网关": "Siirry oletusportti",
|
||||
"所有锁": "Kaikki lukot",
|
||||
"搜索所有类型的锁": "Skannaa kaikenlaisia lukkoja",
|
||||
"门锁": "Ovilukko",
|
||||
@ -582,7 +582,7 @@
|
||||
"商城": "Ostoskeskus",
|
||||
"我的": "Minun",
|
||||
"微信公众号推送": "Keskustele julkinen tili",
|
||||
"蓝牙": "BluetoothName",
|
||||
"蓝牙": "Bluetooth",
|
||||
"需要访问蓝牙权限才能使用添加钥匙功能的位置信息": "Pääsy Bluetooth-oikeuksiin vaaditaan käyttämään sijaintitietoja lisätä avaintoiminnon lisäämiseksi",
|
||||
"请输入Email": "Anna sähköposti",
|
||||
"请输入手机号": "Anna puhelinnumero",
|
||||
@ -834,7 +834,7 @@
|
||||
"微信": "Wechat",
|
||||
"朋友圈": "Hetket",
|
||||
"QQ": "QQ",
|
||||
"QQ空间": "QQZoneName",
|
||||
"QQ空间": "QQZone",
|
||||
"微博": "Weibo",
|
||||
"FaceBook": "FaceBook",
|
||||
"链接": "Linkkiä",
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Kun lukko on nollattu, metakarppinen suoneet poistetaan. Haluatko varmasti palauttaa?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Ota lukon etälukituksen avaustoiminto käyttöön APP:ssa (tämä toiminto on oletuksena pois päältä). Jos tämä vaihtoehto ei ole käytettävissä, lukko ei tue Google Homea",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Asenna Google Home -sovellus ja napsauta vasemmassa yläkulmassa olevaa pluspainiketta",
|
||||
"暂无最新记录": "Viimeisimpiä tietoja ei ole tällä hetkellä saatavilla",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Vaihda puhelimesi 2.4G WiFi-verkkoon manuaalista yhteyttä varten"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Vaihda puhelimesi 2.4G WiFi-verkkoon manuaalista yhteyttä varten",
|
||||
"语音包设置": "Äänipaketin asetukset",
|
||||
"第三方平台设置": "Kolmannen osapuolen alustan asetukset",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Lukitse äänipaketin asetukset",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Miehen ääni",
|
||||
"女声": "Naisten ääni",
|
||||
"您的图像和视频数据仅保留": "Kuva- ja videotietosi säilytetään vain",
|
||||
"后图像和视频数据将会失效,开通": "Sen jälkeen kuva- ja videotiedot ovat virheellisiä ja aktivoituvat",
|
||||
"云存会员": "Pilvitallennustilan jäsenyys",
|
||||
"服务,图像视频信息随心存!": "Palvelu-, kuva- ja videotiedot ovat sydämessäsi!",
|
||||
"图像": "kuva",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Tällä hetkellä maa ei tue matkapuhelimen vahvistuskoodin rekisteröintiä, käytä rekisteröitymiseen sähköpostiosoitettasi",
|
||||
"注:": "Huomautus:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Käytä kerran 24 tunnin kuluessa, muuten se päättyy.",
|
||||
"这是单次密码,只能使用一次": "Tämä on yksittäinen salasana, jota voidaan käyttää vain kerran.",
|
||||
"您好": "Tervehdys.",
|
||||
"您的开门密码是": "Salasanasi on",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Kun avaat lukituksen, aktivoi lukitusnäppäimistö ensin ja kirjoita salasana, joka päättyy # numerolla, # näppäimistö on näppäimistön oikeassa alakulmassa, mahdollisesti muut kuvakkeet"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Après réinitialisation, les veines métacarpiennes de la serrure seront supprimées. Êtes-vous sûr de vouloir réinitialiser?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Activez la fonction de déverrouillage à distance de la serrure dans l’application (cette fonction est désactivée par défaut). Si cette option n’est pas disponible, le verrou ne prendra pas en charge Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Installez l’application Google Home et cliquez sur le bouton plus dans le coin supérieur gauche",
|
||||
"暂无最新记录": "Il n’y a actuellement aucun dernier enregistrement disponible",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Veuillez passer votre téléphone à 2.4G WiFi pour une connexion manuelle"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Veuillez passer votre téléphone à 2.4G WiFi pour une connexion manuelle",
|
||||
"语音包设置": "Paramètres du pack vocal",
|
||||
"第三方平台设置": "Paramètres de plate - forme tierce",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Paramètres du pack Lock Voice",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Voix masculine",
|
||||
"女声": "Voix de femmes",
|
||||
"您的图像和视频数据仅保留": "Vos données d’image et de vidéo ne sont conservées que",
|
||||
"后图像和视频数据将会失效,开通": "Après cela, les données de l’image et de la vidéo seront invalides et activées",
|
||||
"云存会员": "Adhésion au stockage dans le cloud",
|
||||
"服务,图像视频信息随心存!": "Le service, l’image et les informations vidéo sont au cœur de vos préoccupations !",
|
||||
"图像": "image",
|
||||
"视频": "Vidéo",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Actuellement, le pays ne prend pas en charge l’enregistrement du code de vérification du téléphone portable, veuillez utiliser votre adresse e-mail pour vous inscrire",
|
||||
"注:": "Remarque:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Doit être utilisé une fois dans les 24 heures suivant l'heure de début, sinon il expirera",
|
||||
"这是单次密码,只能使用一次": "Ceci est un mot de passe à usage unique et ne peut être utilisé qu'une seule fois",
|
||||
"您好": "Bonjour",
|
||||
"您的开门密码是": "Votre code d'accès à la porte est",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Pour déverrouiller, activez d'abord le clavier du verrou, entrez ensuite le mot de passe et terminez par #. La touche # se trouve dans le coin inférieur droit du clavier et peut avoir une icône différente"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "לאחר איפוס, הורידים של המנעול יימחקו. אתה בטוח שברצונך לאפס?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. הפעל את פונקציית ביטול הנעילה מרחוק של המנעול באפליקציה (פונקציה זו כבויה כברירת מחדל). אם אפשרות זו אינה זמינה, המנעול לא יתמוך ב-Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. התקן את אפליקציית Google Home ולחץ על כפתור הפלוס בפינה השמאלית העליונה",
|
||||
"暂无最新记录": "אין כרגע רשומות עדכניות זמינות",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "אנא העבר את הטלפון שלך ל- WiFi 2.4G לחיבור ידני"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "אנא העבר את הטלפון שלך ל- WiFi 2.4G לחיבור ידני",
|
||||
"语音包设置": "הגדרות חבילת קול",
|
||||
"第三方平台设置": "הגדרות פלטפורמות של צד שלישי",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "הגדרות חבילת קול לנעול",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "קול גבר",
|
||||
"女声": "קול נשי",
|
||||
"您的图像和视频数据仅保留": "נתוני התמונה והסרטונים נשמרים רק",
|
||||
"后图像和视频数据将会失效,开通": "לאחר מכן, נתוני התמונה והווידאו לא יהיו חוקיים ויופעלו",
|
||||
"云存会员": "חברות באחסון בענן",
|
||||
"服务,图像视频信息随心存!": "מידע על שירות, תמונה ווידאו נמצאים בלב שלך!",
|
||||
"图像": "תמונה",
|
||||
"视频": "וידאו",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "נכון לעכשיו, המדינה אינה תומכת ברישום קוד אימות טלפון נייד, אנא השתמש בכתובת הדוא\"ל שלך כדי להירשם",
|
||||
"注:": "הערה:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "יש להשתמש בו פעם אחת בתוך 24 שעות מזמן ההתחלה, אחרת הוא יפוג",
|
||||
"这是单次密码,只能使用一次": "זו סיסמה חד-פעמית שניתן להשתמש בה רק פעם אחת",
|
||||
"您好": "שלום",
|
||||
"您的开门密码是": "קוד הפתיחה שלך הוא",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "כדי לבטל את הנעילה, הפעל תחילה את מקלדת המנעול, לאחר מכן הזן את הסיסמה וסיים ב-#. המקש # נמצא בפינה הימנית התחתונה של המקלדת ועשוי להיות סמל אחר"
|
||||
}
|
||||
@ -1067,7 +1067,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1080,8 +1080,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "रीसेट के बाद, लॉक के मेटाकार्पल नसों को हटा दिया जाएगा। क्या आप निश्चित रूप से रीसेट करना चाहते हैं?",
|
||||
@ -1143,7 +1146,7 @@
|
||||
"网关添加成功": "गेटवे सफलतापूर्वक जोड़ा गया",
|
||||
"呼叫目标": "कॉल लक्ष्य",
|
||||
"管理员APP": "व्यवस्थापक एप",
|
||||
"可视门铃码": "Name",
|
||||
"可视门铃码": "दृश्यमान दरवाजा घंटी कोड",
|
||||
"电子反锁": "इलेक्ट्रॉनिक विरोधी लॉक",
|
||||
"双重认证": "द्वि-कारक प्रमाणीकरण",
|
||||
"双锁联动": "द्वि पाश सहलग्नता",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. एप्लिकेशन में लॉक का रिमोट अनलॉकिंग फ़ंक्शन सक्षम करें (यह फ़ंक्शन डिफ़ॉल्ट रूप से बंद है). यदि यह विकल्प उपलब्ध नहीं है, तो लॉक आपके गूगल होम को सपोर्ट नहीं करेगा।",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. गूगल होम ऐप को इंस्टॉल करें और ऊपरी बाएं कोने में प्लस बटन पर क्लिक करें।",
|
||||
"暂无最新记录": "वर्तमान में कोई नवीनतम रिकॉर्ड उपलब्ध नहीं हैं",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "मैन्युअल कनेक्शन के लिए कृपया अपना फोन 2.4 जी वाईफ़ाई पर स्विच करें।"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "मैन्युअल कनेक्शन के लिए कृपया अपना फोन 2.4 जी वाईफ़ाई पर स्विच करें।",
|
||||
"语音包设置": "आवाज पैकेज सेटिंग्स",
|
||||
"第三方平台设置": "तृतीय पक्ष मंच सेटिंग्स",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "आवाज पैकेज सेटिंग्स ताला लगाएँ",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "पुरुष आवाज",
|
||||
"女声": "महिला आवाज",
|
||||
"您的图像和视频数据仅保留": "आपकी छवि और वीडियो डेटा केवल बनाए रखा जाता है",
|
||||
"后图像和视频数据将会失效,开通": "उसके बाद, छवि और वीडियो डेटा अमान्य और सक्रिय हो जाएगा",
|
||||
"云存会员": "क्लाउड स्टोरेज सदस्यता",
|
||||
"服务,图像视频信息随心存!": "सेवा, छवि और वीडियो जानकारी आपके दिल में हैं!",
|
||||
"图像": "प्रतिबिंब",
|
||||
"视频": "वीडियो",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "वर्तमान में, देश मोबाइल फोन सत्यापन कोड पंजीकरण का समर्थन नहीं करता है, कृपया पंजीकरण करने के लिए अपने ईमेल पते का उपयोग करें",
|
||||
"注:": "नोट:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "आरंभ समय के 24 घंटे के भीतर एक बार उपयोग करना आवश्यक है, अन्यथा इसकी समय सीमा समाप्त हो जाएगी",
|
||||
"这是单次密码,只能使用一次": "यह एकल उपयोग का पासवर्ड है और केवल एक बार उपयोग किया जा सकता है",
|
||||
"您好": "नमस्ते",
|
||||
"您的开门密码是": "आपका दरवाज़ा खोलने का कोड है",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "अनलॉक करने के लिए, पहले लॉक कीबोर्ड को सक्रिय करें, फिर पासवर्ड दर्ज करें और # के साथ समाप्त करें। # कुंजी कीबोर्ड के निचले दाएं कोने में है और इसमें कोई अन्य चिह्न हो सकता है"
|
||||
}
|
||||
@ -173,9 +173,9 @@
|
||||
"接收人信息": "收件人",
|
||||
"转移网关": "傳輸網關",
|
||||
"锁屏": "屏幕鎖定",
|
||||
"已关闭": "關閉",
|
||||
"已开启": "上",
|
||||
"开启": "開",
|
||||
"已关闭": "已關閉",
|
||||
"已开启": "已開啟",
|
||||
"开启": "開啟",
|
||||
"确定要开启重置键?": "繼續啟用Reset掣?",
|
||||
"确定要关闭重置键?": "繼續禁用Reset掣?",
|
||||
"隐藏无效开锁权限": "隱藏無效訪問權限",
|
||||
@ -1043,7 +1043,6 @@
|
||||
"一键开锁": "一鍵解鎖",
|
||||
"已开通": "打開",
|
||||
"英文": "English",
|
||||
"英文": "English",
|
||||
"简体中文": "简体中文",
|
||||
"繁体中文": "繁體中文",
|
||||
"法语": "Français",
|
||||
@ -1066,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1079,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置後,鎖的掌靜脈將被刪除。 你確定要重置啊?",
|
||||
@ -1152,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2.喺APP中開啟鎖嘅遠程解鎖功能(此功能默認關閉)。 如果此選項不可用,則鎖將唔撐Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3.安裝Google Home應用,點擊左上角嘅加號掣",
|
||||
"暂无最新记录": "目前冇可用嘅最新記錄",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "請把手機切換到2.4G WiFi進行手動連接"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "請把手機切換到2.4G WiFi進行手動連接",
|
||||
"语音包设置": "語音包設定",
|
||||
"第三方平台设置": "協力廠商領獎臺設定",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "鎖語音包設定",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "男聲",
|
||||
"女声": "女聲",
|
||||
"您的图像和视频数据仅保留": "您的圖像和視頻數據僅保留",
|
||||
"后图像和视频数据将会失效,开通": "后圖像和視頻數據將會失效,開通",
|
||||
"云存会员": "雲存會員",
|
||||
"服务,图像视频信息随心存!": "服務,圖像視頻資訊隨心存!",
|
||||
"图像": "圖像",
|
||||
"视频": "視頻",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "當前國家不支援手機驗證碼註冊,請使用郵箱進行註冊",
|
||||
"注:": "註:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "必須在開始時間24小時內使用一次,否則將失效",
|
||||
"这是单次密码,只能使用一次": "這是單次密碼,只能使用一次",
|
||||
"您好": "您好",
|
||||
"您的开门密码是": "您的開門密碼是",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "開鎖時,先啟動鎖鍵盤,再輸入密碼,以#號結束,#號鍵在鍵盤右下角,有可能是其他圖標"
|
||||
}
|
||||
@ -185,7 +185,7 @@
|
||||
"删除账号": "Obriši korisnički račun.",
|
||||
"个人信息": "Informacije o računu",
|
||||
"头像": "Avatar",
|
||||
"昵称": "NickNameName",
|
||||
"昵称": "NickName",
|
||||
"请输入昵称": "Molim, unesite svoj nadimak",
|
||||
"修改昵称": "Preimenuj",
|
||||
"修改账号": "Uredi korisnički račun.",
|
||||
@ -316,7 +316,7 @@
|
||||
"开门器": "Otvarač vrata",
|
||||
"面容开锁": "Otključa lice",
|
||||
"开门方向设置": "Smjer otvaranja",
|
||||
"电机功率设置": "Postavljanje MotorPowerName",
|
||||
"电机功率设置": "Postavljanje MotorPower",
|
||||
"开锁时是否需联网": "Ako je internet potreban prilikom otključavanja",
|
||||
"选择要加入分组的锁": "Odaberite zaključavanje za dodavanje ovoj grupi",
|
||||
"锁数量": "Broj zaključanje",
|
||||
@ -703,7 +703,7 @@
|
||||
"传输中": "U provozu",
|
||||
"发送人": "Izdaja",
|
||||
"发送时间": "Izdano vrijeme:",
|
||||
"钥匙详情": "EKEY InfoName",
|
||||
"钥匙详情": "EKEY Info",
|
||||
"姓名": "Ime",
|
||||
"发送": "Pošalji",
|
||||
"请确认姓名全名和身份证号码是否正确": "Potvrdite da su puno ime i identifikacijski broj ispravni.",
|
||||
@ -834,9 +834,9 @@
|
||||
"微信": "WeChat",
|
||||
"朋友圈": "Trenutaci",
|
||||
"QQ": "QQ",
|
||||
"QQ空间": "QQZoneName",
|
||||
"QQ空间": "QQZone",
|
||||
"微博": "Weibo",
|
||||
"FaceBook": "FacebookName",
|
||||
"FaceBook": "Facebook",
|
||||
"链接": "Vez",
|
||||
"今天": "Danas",
|
||||
"密码错误": "Nevažeća lozinka",
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Nakon resetiranja, metakarpalne vene brave će biti izbrisane. Jeste li sigurni da želite resetiranje?",
|
||||
@ -1101,8 +1104,8 @@
|
||||
"Action name": "Ime akcije",
|
||||
"ScienerSmart": "ZnanstvenikSmart",
|
||||
"支持的语言": "Podržani jezici",
|
||||
"英语": "EngleskiName",
|
||||
"Google Home操作流程的值": "1. Koristite Smart lock APP za dodavanje brava i prolaza\n\n2. Omogućite daljinsku funkciju otključavanja brave u APP (ova funkcija je zadano isključena). Bez ove opcije, brava ne podržava Google HomeName\n\n3. Instalirajte Google Home APP i kliknite \" \" gumb u gornjem lijevom kutu\n\n4. Na stranici podešavanja odaberite \"Radi s Googleom\"\n\n5. Tražite \"ScienerSmart\" i upotrijebite pametni APP račun i lozinku za ovlašćenje",
|
||||
"英语": "Engleski",
|
||||
"Google Home操作流程的值": "1. Koristite Smart lock APP za dodavanje brava i prolaza\n\n2. Omogućite daljinsku funkciju otključavanja brave u APP (ova funkcija je zadano isključena). Bez ove opcije, brava ne podržava Google Home\n\n3. Instalirajte Google Home APP i kliknite \" \" gumb u gornjem lijevom kutu\n\n4. Na stranici podešavanja odaberite \"Radi s Googleom\"\n\n5. Tražite \"ScienerSmart\" i upotrijebite pametni APP račun i lozinku za ovlašćenje",
|
||||
"密码需至少包含数字/字母/字符中的2种组合": "Lozinka mora sadržavati najmanje 2 od sljedećih: brojeve, slova i posebne znakove",
|
||||
"已开锁": "Otključan",
|
||||
"已闭锁": "Zaključano",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Omogućite funkciju daljinskog otključavanja brave u APP-u (ova je funkcija prema zadanim postavkama isključena). Ako ova opcija nije dostupna, zaključavanje neće podržavati Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Instalirajte aplikaciju Google Home i kliknite gumb plus u gornjem lijevom kutu",
|
||||
"暂无最新记录": "Trenutno nema dostupnih najnovijih podataka",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Prebacite telefon na 2.4G WiFi za ručno povezivanje"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Prebacite telefon na 2.4G WiFi za ručno povezivanje",
|
||||
"语音包设置": "Postavke glasovnog paketa",
|
||||
"第三方平台设置": "Postavljanje podiuma treće strane",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Postavke zaključavanja glasovnog paketa",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Muški glas",
|
||||
"女声": "Ženski glas",
|
||||
"您的图像和视频数据仅保留": "Vaši podaci o slici i videozapisu zadržavaju se samo",
|
||||
"后图像和视频数据将会失效,开通": "Nakon toga, slikovni i video podaci bit će nevažeći i aktivirani",
|
||||
"云存会员": "Članstvo u pohrani u oblaku",
|
||||
"服务,图像视频信息随心存!": "Informacije o usluzi, slikama i videozapisima su vam u srcu!",
|
||||
"图像": "slika",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Trenutno zemlja ne podržava registraciju koda za provjeru mobilnog telefona, za registraciju koristite svoju adresu e-pošte",
|
||||
"注:": "Napomena:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Mora se upotrijebiti jednom unutar 24 sata od vremena početka, inače će isteći",
|
||||
"这是单次密码,只能使用一次": "Ovo je jednokratna lozinka i može se koristiti samo jednom",
|
||||
"您好": "Bok",
|
||||
"您的开门密码是": "Vaša šifra za otvaranje vrata je",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Da biste otključali, prvo aktivirajte tipkovnicu brave, zatim unesite lozinku i završite s #. Tipka # nalazi se u donjem desnom kutu tipkovnice i može imati drugu ikonu"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "A reset után a zár metakarpális erei törlődnek. Biztos vagy benne, hogy vissza akarsz állítani?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Engedélyezze a zár távoli feloldási funkcióját az APP-ban (ez a funkció alapértelmezés szerint ki van kapcsolva). Ha ez az opció nem érhető el, a zár nem támogatja a Google Home szolgáltatást",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Telepítse a Google Home alkalmazást, és kattintson a plusz gombra a bal felső sarokban",
|
||||
"暂无最新记录": "Jelenleg nem állnak rendelkezésre legfrissebb rekordok",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Kérjük, kapcsolja át telefonját 2.4G WiFi-re a kézi csatlakozáshoz"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Kérjük, kapcsolja át telefonját 2.4G WiFi-re a kézi csatlakozáshoz",
|
||||
"语音包设置": "Hangcsomag beállításai",
|
||||
"第三方平台设置": "Harmadik fél platformjának beállítása",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Hangcsomag zárolási beállításai",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Férfi hang",
|
||||
"女声": "női hang",
|
||||
"您的图像和视频数据仅保留": "A kép- és videóadatokat csak a rendszer őrzi meg",
|
||||
"后图像和视频数据将会失效,开通": "Ezt követően a kép- és videóadatok érvénytelenek lesznek és aktiválódnak",
|
||||
"云存会员": "Felhőalapú tárolási tagság",
|
||||
"服务,图像视频信息随心存!": "A szolgáltatás, a képi és videós információk a szívedben vannak!",
|
||||
"图像": "kép",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Jelenleg az ország nem támogatja a mobiltelefonos ellenőrző kód regisztrációját, kérjük, használja e-mail címét a regisztrációhoz",
|
||||
"注:": "Megjegyzés:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "A kezdési időponttól számított 24 órán belül egyszer kell használni, különben lejár",
|
||||
"这是单次密码,只能使用一次": "Ez egy egyszeri jelszó, amelyet csak egyszer lehet használni",
|
||||
"您好": "Szia",
|
||||
"您的开门密码是": "Az ajtónyitó kódod",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "A feloldáshoz először aktiválja a zár billentyűzetét, majd írja be a jelszót, és fejezze be a # gombbal. A # gomb a billentyűzet jobb alsó sarkában található, és más ikonnal is rendelkezhet"
|
||||
}
|
||||
1184
lan/lan_hy.json
Normal file
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Setelah mengulang, pembuluh darah metakarpal dari kunci akan dihapus. Yakin ingin mengatur ulang?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Aktifkan fungsi kunci pengunci jarak jauh di aplikasi (fungsi ini dimatikan secara standar). Jika opsi ini tidak tersedia, kunci tidak akan mendukung Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Instal aplikasi Google Home dan klik tombol plus di sudut kiri atas",
|
||||
"暂无最新记录": "Saat ini tidak ada catatan terbaru yang tersedia",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Silahkan beralih ke 2.4G WiFi untuk koneksi manual"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Silahkan beralih ke 2.4G WiFi untuk koneksi manual",
|
||||
"语音包设置": "Pengaturan paket suara",
|
||||
"第三方平台设置": "Platform pihak ketiga diatur",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Mengunci paket suara",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "6 tahun sebelumnya",
|
||||
"女声": "Suara wanita",
|
||||
"您的图像和视频数据仅保留": "Data gambar dan video Anda hanya disimpan",
|
||||
"后图像和视频数据将会失效,开通": "Setelah itu, data gambar dan video akan tidak valid dan diaktifkan",
|
||||
"云存会员": "Keanggotaan Cloud Storage",
|
||||
"服务,图像视频信息随心存!": "Informasi layanan, gambar, dan video adalah inti Anda!",
|
||||
"图像": "citra",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Saat ini, negara tersebut tidak mendukung pendaftaran kode verifikasi ponsel, silakan gunakan alamat email Anda untuk mendaftar",
|
||||
"注:": "Catatan:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Harus digunakan sekali dalam waktu 24 jam setelah waktu mulai, jika tidak akan kedaluwarsa",
|
||||
"这是单次密码,只能使用一次": "Ini adalah kata sandi sekali pakai dan hanya bisa digunakan sekali",
|
||||
"您好": "Halo",
|
||||
"您的开门密码是": "Kode akses pintu Anda adalah",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Untuk membuka kunci, aktifkan keyboard kunci terlebih dahulu, lalu masukkan kata sandi dan akhiri dengan #. Tombol # berada di sudut kanan bawah keyboard dan mungkin memiliki ikon berbeda"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Dopo il reset, le vene metacarpali della serratura verranno cancellate. Sei sicuro di voler reimpostare?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Abilita la funzione di sblocco remoto del lock nella APP (questa funzione è disattivata in modo predefinito). Se questa opzione non è disponibile, il lock non supporta Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Installa l’applicazione Home di Google e fai clic sul pulsante più nell’angolo in alto a sinistra",
|
||||
"暂无最新记录": "Attualmente non sono disponibili dati più recenti",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Passa il telefono a 2,4g WiFi per la connessione manuale"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Passa il telefono a 2,4g WiFi per la connessione manuale",
|
||||
"语音包设置": "Impostazioni pacchetto vocalea",
|
||||
"第三方平台设置": "Impostazioni di piattaforme di terze parti",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Impostazioni pacchetto vocale blocco",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "voce maschile",
|
||||
"女声": "voce femminile",
|
||||
"您的图像和视频数据仅保留": "I dati delle immagini e dei video vengono conservati solo",
|
||||
"后图像和视频数据将会失效,开通": "Successivamente, i dati dell'immagine e del video non saranno più validi e attivati",
|
||||
"云存会员": "Iscrizione al cloud storage",
|
||||
"服务,图像视频信息随心存!": "Le informazioni sul servizio, le immagini e i video sono al tuo centro!",
|
||||
"图像": "immagine",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Attualmente, il paese non supporta la registrazione del codice di verifica del telefono cellulare, si prega di utilizzare il proprio indirizzo e-mail per registrarsi",
|
||||
"注:": "Nota:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Deve essere utilizzato una volta entro 24 ore dall'orario di inizio, altrimenti scadrà",
|
||||
"这是单次密码,只能使用一次": "Questa è una password monouso e può essere utilizzata solo una volta",
|
||||
"您好": "Ciao",
|
||||
"您的开门密码是": "Il tuo codice di accesso alla porta è",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Per sbloccare, attiva prima la tastiera del lucchetto, quindi inserisci la password e termina con #. Il tasto # si trova nell'angolo in basso a destra della tastiera e potrebbe avere un'icona diversa"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "リセット後、ロックの中手骨静脈が削除されます。リセットしてもよろしいですか。",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. アプリでロックのリモートロック解除機能を有効にします(この機能はデフォルトでオフになっています)。このオプションが利用できない場合、ロックはgoogle homeをサポートしません",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. google homeアプリをインストールし、左上隅のプラスボタンをクリックします",
|
||||
"暂无最新记录": "最新の記録は残っていない",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "手動接続のため、携帯電話を2.4 g wifiに切り替えてください"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "手動接続のため、携帯電話を2.4 g wifiに切り替えてください",
|
||||
"语音包设置": "ボイスパックの設定",
|
||||
"第三方平台设置": "サードパーティ製プラットフォームの設定",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "ロック音声パケット設定",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "男声",
|
||||
"女声": "女声",
|
||||
"您的图像和视频数据仅保留": "画像と動画のデータのみが保持されます",
|
||||
"后图像和视频数据将会失效,开通": "その後、画像とビデオのデータは無効になり、アクティブになります",
|
||||
"云存会员": "クラウドストレージメンバーシップ",
|
||||
"服务,图像视频信息随心存!": "サービス、画像、ビデオ情報があなたの中心にあります!",
|
||||
"图像": "画像",
|
||||
"视频": "ビデオ",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "現在、この国は携帯電話の認証コード登録をサポートしていませんので、メールアドレスを使用して登録してください",
|
||||
"注:": "注:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "開始時刻から24時間以内に1回使用する必要があり、そうでなければ無効になります",
|
||||
"这是单次密码,只能使用一次": "これはワンタイムパスワードで、一度だけ使用できます",
|
||||
"您好": "こんにちは",
|
||||
"您的开门密码是": "あなたのドアアクセスコードは",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "ロックを解除するには、まずロックキーボードをアクティブにし、次にパスワードを入力し、#で終了します。#キーはキーボードの右下隅にあり、別のアイコンの場合があります"
|
||||
}
|
||||
1184
lan/lan_ka.json
Normal file
@ -1083,6 +1083,9 @@
|
||||
"丹麦语": "丹麦语",
|
||||
"印地语": "印地语",
|
||||
"乌尔都语": "乌尔都语",
|
||||
"亚美尼亚语": "亚美尼亚语",
|
||||
"格鲁吉亚语": "格鲁吉亚语",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置后,该锁的掌静脉都将被删除哦,确认要重置吗?",
|
||||
@ -1099,7 +1102,7 @@
|
||||
"支持的国家": "支持的国家",
|
||||
"支持的国家值": "美国、加拿大、英国、澳大利亚、印度、德国、法国、意大利、西班牙、日本",
|
||||
"操作流程": "操作流程",
|
||||
"操作流程值":"1 用智能锁APP添加锁和网关\n\n2 在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Alexa \n\n3 在Alexa中添加Skill,并用智能锁APP的账号和密码进行授权。授权成功后就可以发现账号下的设备\n\n4 在Alexa app里找到锁,开启语音开锁的功能,并设置语言密码\n\n5 可以通过Alexa操作锁了",
|
||||
"操作流程值": "1 用智能锁APP添加锁和网关\n\n2 在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Alexa \n\n3 在Alexa中添加Skill,并用智能锁APP的账号和密码进行授权。授权成功后就可以发现账号下的设备\n\n4 在Alexa app里找到锁,开启语音开锁的功能,并设置语言密码\n\n5 可以通过Alexa操作锁了",
|
||||
"Google Home": "Google Home",
|
||||
"Action name": "Action name",
|
||||
"ScienerSmart": "ScienerSmart",
|
||||
@ -1162,5 +1165,25 @@
|
||||
"请确认后再继续": "请确认后再继续",
|
||||
"需要相机权限": "需要相机权限",
|
||||
"此功能的开启和关闭只能在锁附近通过手机蓝牙进行": "此功能的开启和关闭只能在锁附近通过手机蓝牙进行",
|
||||
"网关添加成功": "网关添加成功"
|
||||
"网关添加成功": "网关添加成功",
|
||||
"第三方平台设置": "第三方平台设置",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "锁语音包设置",
|
||||
"语音包设置": "语音包设置",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "男声",
|
||||
"女声": "女声",
|
||||
"您的图像和视频数据仅保留": "您的图像和视频数据仅保留",
|
||||
"后图像和视频数据将会失效,开通": "后图像和视频数据将会失效,开通",
|
||||
"云存会员": "云存会员",
|
||||
"服务,图像视频信息随心存!": "服务,图像视频信息随心存!",
|
||||
"图像": "图像",
|
||||
"视频": "视频",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "当前国家不支持手机验证码注册,请使用邮箱进行注册",
|
||||
"注:":"注:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "必需在开始时间24小时内使用一次,否则将失效",
|
||||
"这是单次密码,只能使用一次": "这是单次密码,只能使用一次",
|
||||
"您好": "您好",
|
||||
"您的开门密码是": "您的开门密码是",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标"
|
||||
}
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
"简写周三": "WW",
|
||||
"简写周四": "T",
|
||||
"简写周五": "F",
|
||||
"简写周六": "SName",
|
||||
"简写周日": "SName",
|
||||
"简写周六": "S",
|
||||
"简写周日": "S",
|
||||
"周一": "MonComment",
|
||||
"周二": "Туе",
|
||||
"周三": "Жеті",
|
||||
@ -116,7 +116,7 @@
|
||||
"微信二维码": "QR кодін ашу",
|
||||
"拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边": "Электронлық кілттер бар адамдар осы QR коды \"WeChat\" дегенді сіздеп, шұқсаты ашылады. Әрбір блоктың QR коды басқа. Оны баспаға сәйкесті блоктың жағысын орналаса аласыз.",
|
||||
"锁编号": "Боқталсын",
|
||||
"电量": "БатареяName",
|
||||
"电量": "Батарея",
|
||||
"锁分组": "Топты бұғаттау",
|
||||
"选择分组": "Топты таңдау",
|
||||
"创建新分组": "Топты құру",
|
||||
@ -279,7 +279,7 @@
|
||||
"发卡工具": "КодтамасыComment",
|
||||
"购买高级功能须知": "Хабарламасы",
|
||||
"购买高级功能提示": "Қосымша мүмкіндіктер құрылғыда, егер керек болса, бұғаттардың санын ашу үшін көмектесіңіз. Қосымша мүмкіндіктері ғана өзіңізді бұғаттарыңыз. Егер әкімгілікті әкімші болса, қызметті ашу үшін блоктау жоғарғы әкімшісін қатынасыз",
|
||||
"免费体验": "Бос сынауName",
|
||||
"免费体验": "Бос сынау",
|
||||
"立即开通": "Қазір ашу",
|
||||
"购买短信": "SMS сақтау",
|
||||
"购买邮件": "Эл. поштаны сақтау",
|
||||
@ -301,8 +301,8 @@
|
||||
"对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁": "Таңдалған блоктарды APP-мен ашу үшін пайдаланушының телефонын онлайн болу керек.",
|
||||
"配置WiFi": "WiFi баптау",
|
||||
"请输入WiFi名字": "Wifi атын келтіріңіз",
|
||||
"WiFi配网": "WiFi тарату желіName",
|
||||
"胁迫卡": "Стрес картасыName",
|
||||
"WiFi配网": "WiFi тарату желі",
|
||||
"胁迫卡": "Стрес картасы",
|
||||
"员工是否有密码": "Бастапқы кодтары",
|
||||
"员工是否有卡": "Карта бар ғой",
|
||||
"员工是否有指纹": "Бақылау тізімін орнату",
|
||||
@ -327,7 +327,7 @@
|
||||
"防误开已关闭,关门后仍可使用面容开锁": "Ашылмағанды жабылсын",
|
||||
"添加和使用面容开锁时": "Жүктеу кезінде тағы қосу мен қолданылсын",
|
||||
"添加和使用面容开锁时提示": "\n1, бір адам қашықтығы операцияның алдында ұстап көріңіз.\n2, қазірішін бұғаттардың алдында 0,5 ~ 0,8 мсят, әзірін бұғаттарды келтіріңіз.\n3. Өшіріңізді бейімде болсап, өзіңізді таңдаңыз.\n4. Көйін анықтауы дұрыс емес болса, цифриқ пернетінің перне енгізінді қолмен қайта қосу үшін перне іске қоса аласыз.",
|
||||
"秒": "SName",
|
||||
"秒": "S",
|
||||
"请根据门锁实际情况,请谨慎选择电机功率:": "Мотодор қуаттандық қадамдастыру үшін таңдаңыз:",
|
||||
"小功率:": "Миноват:",
|
||||
"耗电少": "Қуаттандықтан кейі",
|
||||
@ -351,7 +351,7 @@
|
||||
"员工信息": "Жергілікті мәліметі",
|
||||
"员工": "Таңдау",
|
||||
"打卡方式无效": "Қол жеткізбеді",
|
||||
"中国": "КітаName",
|
||||
"中国": "Кіта",
|
||||
"选择钥匙": "Eky таңдау",
|
||||
"编辑": "Өңдеу",
|
||||
"无": "Жоқ",
|
||||
@ -531,7 +531,7 @@
|
||||
"公司名称不能小于6个字符": "Компанияның атауы 6 таңба болмайды",
|
||||
"WIFI列表": "WIFI тізімі",
|
||||
"刷新": "Жаңарту",
|
||||
"手动配网": "Қолмен үлестірім желіName",
|
||||
"手动配网": "Қолмен үлестірім желі",
|
||||
"远距离": "Үл қашықтығы",
|
||||
"中距离": "Орташа қашықтығы",
|
||||
"近距离": "Қысқа қашықтығы",
|
||||
@ -548,7 +548,7 @@
|
||||
"管理员密码": "Әдетті өшіру",
|
||||
"如需修改,请输入新的管理员密码(6位),点击确定即可修改": "Егер өзгерту керек болса, жаңа әкімшіші",
|
||||
"修改": "Өзгерту",
|
||||
"网络摄像头": "КамераName",
|
||||
"网络摄像头": "Камера",
|
||||
"重命名": "Атын ауыстыру",
|
||||
"分组下的锁将被移到未分组里": "Топтың төменгі блокталар тобысмен жылжытады",
|
||||
"编辑成功": "Сәтті өңдеу",
|
||||
@ -574,7 +574,7 @@
|
||||
"请手动在系统设置中开启": "Жүйелік параметрлерде қолмен іске қосыңыз",
|
||||
"权限以继续使用应用": "Қолданбаны жалғастыру рұқсат ету.",
|
||||
"去设置": "Оны орнату",
|
||||
"当前网络": "Назардағы желіName",
|
||||
"当前网络": "Назардағы желі",
|
||||
"位置信息": "Орналасуы ақпарат",
|
||||
"请输入wifi名称": "Wifi атауын келтіріңіз",
|
||||
"虹膜": "Iris",
|
||||
@ -601,7 +601,7 @@
|
||||
"提醒方式": "Ескерту жолы",
|
||||
"开门方式": "Қашықты ашылсын",
|
||||
"请选择": "Таңдау",
|
||||
"家人": "Үлгі мүшесіName",
|
||||
"家人": "Үлгі мүшесі",
|
||||
"保存": "Сақтау",
|
||||
"APP推送": "APP басы",
|
||||
"管理员": "Adminu",
|
||||
@ -639,13 +639,13 @@
|
||||
"全部视频": "Барлық видеолар",
|
||||
"已为本设备免费提供3大滚动视频储存服务": "Құрылғының шкі видео сақтау қызметі орындалды",
|
||||
"视频播放": "Видео ойнау",
|
||||
"全选": "БарлықтыName",
|
||||
"全选": "Барлықты",
|
||||
"请选择要删除的视频": "Өшіру келетін видеоін таңдаңыз",
|
||||
"请选择要下载的视频": "Жүктеу үшін осы видеоты таңдаңыз",
|
||||
"欢迎使用": "Қолданға қоша",
|
||||
"用户协议和隐私政策概要": "Пайдаланушы келесі мен бақылау ережесінің ақпарат",
|
||||
"协议概要": "Протоколды тобысы",
|
||||
"感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读": "Бұл қолданба қолданбасы үшін рахмет. Біздің жеке мәліметіңізді әдеттіңізге және жеке ақпараттық қорғастырыңызды. Осы продуктты қолдану алдында, оны ескертін оқыңызName",
|
||||
"感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读": "Бұл қолданба қолданбасы үшін рахмет. Біздің жеке мәліметіңізді әдеттіңізге және жеке ақпараттық қорғастырыңызды. Осы продуктты қолдану алдында, оны ескертін оқыңыз",
|
||||
"《用户协议》": "Пайдаланушы ақпараты",
|
||||
"和": "Сот",
|
||||
"《隐私政策》": "חPrivacy ережес",
|
||||
@ -805,7 +805,7 @@
|
||||
"蓝牙未打开,请到设置里面打开蓝牙": "Bluetooth енгізілмеген, Bluetooth баптауларын көрсетіңіз",
|
||||
"删除用户时,会将用户拥有的钥匙一起删除。": "Пайдаланушының келтірілген, егер Пайдаланушыға сәйкес келеді.",
|
||||
"配置网络": "Желі & баптау",
|
||||
"你好": "ЖарыName",
|
||||
"你好": "Жары",
|
||||
"成功": "Сәттін",
|
||||
"类型选择": "Таңдау",
|
||||
"请选择要使用哪种类型": "Қолданатын түрін таңдаңыз",
|
||||
@ -834,8 +834,8 @@
|
||||
"微信": "WeChat",
|
||||
"朋友圈": "Текшер",
|
||||
"QQ": "QQ",
|
||||
"QQ空间": "QQZoneName",
|
||||
"微博": "WeiboName",
|
||||
"QQ空间": "QQZone",
|
||||
"微博": "Weibo",
|
||||
"FaceBook": "FaceBook",
|
||||
"链接": "Сілтеме",
|
||||
"今天": "Бүгіз",
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Қайта ысырып тастағаннан соң бұғаттағы метакарпалар өшіріледі. Шынымен ысырып тастауды қалайсыз ба?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. APP бағдарламасында құлыпты қашықтан ашу функциясын қосу (бұл функция әдепкі бойынша өшіріледі). Егер бұл параметр қол жетімді болмаса, бұғаттау Google Home-ды қолдамайды",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Google Home бағдарламасын орнатып, жоғарғы сол жақ бұрыштағы қосу түймешігін басыңыз",
|
||||
"暂无最新记录": "Қазіргі уақытта қол жетімді соңғы жазбалар жоқ",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Телефонды қолмен қосу үшін 2.4G WiFi бағдарламасына ауыстыруыңызды сұраймыз"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Телефонды қолмен қосу үшін 2.4G WiFi бағдарламасына ауыстыруыңызды сұраймыз",
|
||||
"语音包设置": "Дауыстық бума параметрлері",
|
||||
"第三方平台设置": "Үшінші тарап платформасының параметрлері",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Дауыстық бума параметрлерін құлыптау",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "ер дауысы",
|
||||
"女声": "Әйел дауысы",
|
||||
"您的图像和视频数据仅保留": "Сіздің кескініңіз бен бейне деректеріңіз тек сақталады",
|
||||
"后图像和视频数据将会失效,开通": "Осыдан кейін кескін мен бейне деректер жарамсыз болып, белсендіріледі",
|
||||
"云存会员": "Бұлтты сақтауға мүшелік",
|
||||
"服务,图像视频信息随心存!": "Қызмет, бейне және бейне ақпарат сіздің жүрегіңізде жатыр!",
|
||||
"图像": "кескіні",
|
||||
"视频": "Бейне",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Қазіргі уақытта елде ұялы телефонды растау кодын тіркеуді қолдамайды, тіркелу үшін электрондық пошта мекенжайыңызды пайдаланыңыз",
|
||||
"注:": "Ескерту:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Бастау уақытынан бастап 24 сағат ішінде бір рет қолдану керек, әйтпесе мерзімі аяқталады",
|
||||
"这是单次密码,只能使用一次": "Бұл бір реттік құпиясөз, оны тек бір рет қолдануға болады",
|
||||
"您好": "Сәлеметсіз бе",
|
||||
"您的开门密码是": "Есікті ашу кодыңыз",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Құлыпты ашу үшін алдымен құлып пернетақтасын іске қосыңыз, содан кейін құпиясөзді енгізіп, # арқылы аяқтаңыз. # пернесі пернетақтаның төменгі оң жақ бұрышында орналасқан және басқа белгі болуы мүмкін"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "재설정 후 잠금 장치의 중수골 정맥이 삭제됩니다. 당신은 당신이 재설정 하시겠습니까?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. 앱에서 잠금의 원격 잠금 해제 기능을 활성화합니다 (이 기능은 기본적으로 꺼져 있습니다).이 옵션을 사용할 수 없는 경우 잠금은 Google Home을 지원하지 않습니다",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. 구글 홈 앱을 설치하고 왼쪽 상단 모서리에 있는 더하기 버튼을 클릭합니다",
|
||||
"暂无最新记录": "현재 사용 가능한 최신 레코드가 없습니다",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "수동 연결을 위해 핸드폰을 2.4G WiFi로 바꿔주세요"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "수동 연결을 위해 핸드폰을 2.4G WiFi로 바꿔주세요",
|
||||
"语音包设置": "음성 팩 설정",
|
||||
"第三方平台设置": "타사 플랫폼 설정",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "음성팩 설정 잠금",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "남성",
|
||||
"女声": "여성 목소리",
|
||||
"您的图像和视频数据仅保留": "이미지 및 동영상 데이터만 보존됩니다.",
|
||||
"后图像和视频数据将会失效,开通": "그 후 이미지 및 비디오 데이터는 유효하지 않고 활성화됩니다",
|
||||
"云存会员": "클라우드 스토리지 멤버십",
|
||||
"服务,图像视频信息随心存!": "서비스, 이미지 및 비디오 정보가 당신의 중심에 있습니다!",
|
||||
"图像": "이미지",
|
||||
"视频": "비디오",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "현재 해당 국가는 휴대폰 인증코드 등록을 지원하지 않으니 이메일 주소를 사용하여 등록하세요.",
|
||||
"注:": "참고:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "시작 시간으로부터 24시간 이내에 한 번 사용해야 하며, 그렇지 않으면 만료됩니다.",
|
||||
"这是单次密码,只能使用一次": "이것은 일회용 비밀번호로 한 번만 사용할 수 있습니다.",
|
||||
"您好": "안녕하세요",
|
||||
"您的开门密码是": "귀하의 문 열기 코드는",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "잠금을 해제하려면 먼저 잠금 키보드를 활성화한 다음 비밀번호를 입력하고 #로 끝냅니다. # 키는 키보드의 오른쪽 하단 모서리에 있으며 다른 아이콘일 수 있습니다."
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po reset užrakto metakarpinės venos bus ištrintos. Ar tikrai norite atstatyti?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Įjunkite užrakto nuotolinio atrakinimo funkciją APP (ši funkcija yra išjungta pagal numatytuosius nustatymus). Jei ši parinktis nepasiekiama, užraktas nepalaikys \"Google Home\"",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Įdiekite \"Google Home\" programą ir spustelėkite pliuso mygtuką viršutiniame kairiajame kampe",
|
||||
"暂无最新记录": "Šiuo metu nėra naujausių įrašų",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Perjunkite telefoną į 2.4G WiFi, kad galėtumėte prisijungti rankiniu būdu"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Perjunkite telefoną į 2.4G WiFi, kad galėtumėte prisijungti rankiniu būdu",
|
||||
"语音包设置": "Balso paketo nustatymai",
|
||||
"第三方平台设置": "Trečiosios šalies platformos nustatymai",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Balso paketo nustatymų užrakinimas",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "vyriškas balsas",
|
||||
"女声": "Moteriškas balsas",
|
||||
"您的图像和视频数据仅保留": "Vaizdo ir vaizdo įrašų duomenys saugomi tik",
|
||||
"后图像和视频数据将会失效,开通": "Po to vaizdo ir vaizdo duomenys bus negaliojantys ir suaktyvinti",
|
||||
"云存会员": "Debesies saugyklos narystė",
|
||||
"服务,图像视频信息随心存!": "Aptarnavimas, vaizdas ir video informacija yra jūsų širdis!",
|
||||
"图像": "vaizdas",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Šiuo metu šalis nepalaiko mobiliojo telefono patvirtinimo kodo registracijos, registruodamiesi naudokite savo el. pašto adresą",
|
||||
"注:": "Pastaba:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Turi būti naudojamas vieną kartą per 24 valandas nuo pradžios laiko, kitaip jis baigs galioti",
|
||||
"这是单次密码,只能使用一次": "Tai vienkartinis slaptažodis, kurį galima naudoti tik vieną kartą",
|
||||
"您好": "Sveiki",
|
||||
"您的开门密码是": "Jūsų durų atidarymo kodas yra",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Norėdami atrakinti, pirmiausia suaktyvinkite užrakto klaviatūrą, tada įveskite slaptažodį ir baikite #. Klavišas # yra klaviatūros apatiniame dešiniajame kampe ir gali būti kita piktograma"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Selepas menetapkan semula, urat metacarpal kunci akan dipadamkan. Adakah anda pasti anda mahu menetapkan semula?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Dayakan fungsi buka kunci jauh kunci dalam APP (fungsi ini dimatikan secara lalai). Jika pilihan ini tidak tersedia, kunci tidak akan menyokong Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Pasang apl Google Home dan klik butang tambah di penjuru kiri sebelah atas",
|
||||
"暂无最新记录": "Pada masa ini tiada rekod terkini tersedia",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Sila tukar telefon anda kepada WiFi 2.4G untuk sambungan manual"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Sila tukar telefon anda kepada WiFi 2.4G untuk sambungan manual",
|
||||
"语音包设置": "Balso paketo nustatymai",
|
||||
"第三方平台设置": "Trečiosios šalies platformos nustatymai",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Balso paketo nustatymų užrakinimas",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "vyriškas balsas",
|
||||
"女声": "Moteriškas balsas",
|
||||
"您的图像和视频数据仅保留": "Data imej dan video anda hanya dikekalkan",
|
||||
"后图像和视频数据将会失效,开通": "Selepas itu, data imej dan video akan menjadi tidak sah dan diaktifkan",
|
||||
"云存会员": "Keahlian Storan Awan",
|
||||
"服务,图像视频信息随心存!": "Maklumat perkhidmatan, imej dan video adalah di hati anda!",
|
||||
"图像": "Imej",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Pada masa ini, negara ini tidak menyokong pendaftaran kod pengesahan telefon bimbit, sila gunakan alamat e-mel anda untuk mendaftar",
|
||||
"注:": "Nota:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Mesti digunakan sekali dalam masa 24 jam dari masa mula, jika tidak ia akan luput",
|
||||
"这是单次密码,只能使用一次": "Ini ialah kata laluan sekali guna dan hanya boleh digunakan sekali",
|
||||
"您好": "Helo",
|
||||
"您的开门密码是": "Kod akses pintu anda ialah",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Untuk membuka kunci, aktifkan papan kekunci kunci terlebih dahulu, kemudian masukkan kata laluan dan tamatkan dengan #. Kekunci # berada di sudut kanan bawah papan kekunci dan mungkin mempunyai ikon lain"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Na reset worden de middenhandsbeenaders van het slot verwijderd. Weet je zeker dat je wilt resetten?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Open het slot op afstand in de APP (standaard uitgeschakeld). Als deze optie niet beschikbaar is, wordt google Home niet ondersteund",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Installeer de google home-app en klik op de plus-knop in de linkerbovenhoek",
|
||||
"暂无最新记录": "Er zijn momenteel geen recente gegevens beschikbaar",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Stel uw telefoon in op 2. 4g WiFi bij handmatige verbinding"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Stel uw telefoon in op 2. 4g WiFi bij handmatige verbinding",
|
||||
"语音包设置": "Voice Pack-instellingen",
|
||||
"第三方平台设置": "Instellingen voor platforms van derden",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Instellingen voor spraakpakket vergrendelen",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "mannelijke stem",
|
||||
"女声": "Vrouwelijke stem",
|
||||
"您的图像和视频数据仅保留": "Uw beeld- en videogegevens worden alleen bewaard",
|
||||
"后图像和视频数据将会失效,开通": "Daarna zijn de afbeeldings- en videogegevens ongeldig en geactiveerd",
|
||||
"云存会员": "Lidmaatschap voor cloudopslag",
|
||||
"服务,图像视频信息随心存!": "Service-, beeld- en video-informatie staan bij u centraal!",
|
||||
"图像": "beeld",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Momenteel ondersteunt het land de registratie van de verificatiecode voor mobiele telefoons niet, gebruik uw e-mailadres om u te registreren",
|
||||
"注:": "Opmerking:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Moet één keer worden gebruikt binnen 24 uur na de starttijd, anders verloopt het",
|
||||
"这是单次密码,只能使用一次": "Dit is een eenmalig wachtwoord en kan maar één keer worden gebruikt",
|
||||
"您好": "Hallo",
|
||||
"您的开门密码是": "Uw deurtoegangscode is",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Om te ontgrendelen, activeert u eerst het toetsenbord van het slot, voert u vervolgens het wachtwoord in en eindigt u met #. De #-toets bevindt zich in de rechterbenedenhoek van het toetsenbord en kan een ander pictogram hebben"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po zresetowaniu żyły śródręcza zamka zostaną usunięte. Czy na pewno chcesz zresetować?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Włącz funkcję zdalnego odblokowywania zamka w aplikacji (ta funkcja jest domyślnie wyłączona). Jeśli ta opcja nie jest dostępna, zamek nie będzie obsługiwał Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Zainstaluj aplikację Google Home i kliknij przycisk plusa w lewym górnym rogu",
|
||||
"暂无最新记录": "Obecnie nie ma dostępnych najnowszych rekordów",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Przełącz telefon na 2.4G Wi-Fi, aby uzyskać ręczne połączenie"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Przełącz telefon na 2.4G Wi-Fi, aby uzyskać ręczne połączenie",
|
||||
"语音包设置": "Ustawienia pakietu głosowego",
|
||||
"第三方平台设置": "Ustawienia platformy stron trzecich",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Ustawienia blokowania pakietu głosowego",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Mężczyzna",
|
||||
"女声": "Głos kobiecy",
|
||||
"您的图像和视频数据仅保留": "Dane obrazu i filmu są przechowywane tylko",
|
||||
"后图像和视频数据将会失效,开通": "Po tym czasie dane obrazu i wideo zostaną nieważne i aktywowane",
|
||||
"云存会员": "Członkostwo w usłudze Cloud Storage",
|
||||
"服务,图像视频信息随心存!": "Informacje o serwisie, obrazie i wideo są w Twoim sercu!",
|
||||
"图像": "obraz",
|
||||
"视频": "Wideo",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Obecnie kraj nie obsługuje rejestracji kodem weryfikacyjnym telefonu komórkowego, użyj swojego adresu e-mail, aby się zarejestrować",
|
||||
"注:": "Uwaga:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Należy użyć raz w ciągu 24 godzin od czasu rozpoczęcia, w przeciwnym razie wygaśnie",
|
||||
"这是单次密码,只能使用一次": "To hasło jednorazowe, którego można użyć tylko raz",
|
||||
"您好": "Cześć",
|
||||
"您的开门密码是": "Twój kod dostępu do drzwi to",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Aby odblokować, najpierw aktywuj klawiaturę zamka, następnie wprowadź hasło i zakończ #. Klawisz # znajduje się w prawym dolnym rogu klawiatury i może mieć inną ikonę"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Após a reinicialização, as veias do metacarpo do bloqueio serão excluídas. Tens a certeza que queres reiniciar?",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Ative a função de desbloqueio remoto da fechadura no APP (esta função está desativada por padrão). Se esta opção não estiver disponível, o bloqueio não será compatível com o Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Instale o aplicativo Google Home e clique no botão de adição no canto superior esquerdo",
|
||||
"暂无最新记录": "Atualmente não há registros mais recentes disponíveis",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Mude seu telefone para WiFi 2.4G para conexão manual"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Mude seu telefone para WiFi 2.4G para conexão manual",
|
||||
"语音包设置": "Configurações do pacote de voz",
|
||||
"第三方平台设置": "Configurações de plataformas de terceiros",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Configurações do pacote de voz bloqueada",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Voz masculina",
|
||||
"女声": "voz feminina",
|
||||
"您的图像和视频数据仅保留": "Seus dados de imagem e vídeo são retidos apenas",
|
||||
"后图像和视频数据将会失效,开通": "Depois disso, os dados de imagem e vídeo serão inválidos e ativados",
|
||||
"云存会员": "Associação de armazenamento em nuvem",
|
||||
"服务,图像视频信息随心存!": "Informações de serviço, imagem e vídeo estão no seu coração!",
|
||||
"图像": "imagem",
|
||||
"视频": "Vídeo",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "Atualmente, o país não suporta o registro do código de verificação do telefone celular, use seu endereço de e-mail para se registrar",
|
||||
"注:": "Nota:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Deve ser usado uma vez dentro de 24 horas após o horário de início, caso contrário expirará",
|
||||
"这是单次密码,只能使用一次": "Esta é uma senha de uso único e só pode ser usada uma vez",
|
||||
"您好": "Olá",
|
||||
"您的开门密码是": "Seu código de acesso à porta é",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Para desbloquear, primeiro ative o teclado do cadeado e depois digite a senha terminando com #. A tecla # está no canto inferior direito do teclado e pode ter um ícone diferente"
|
||||
}
|
||||
1183
lan/lan_pt_br.json
Normal file
@ -104,7 +104,7 @@
|
||||
"门磁": "Senzor uși",
|
||||
"自动闭锁": "Blocare automată",
|
||||
"锁声音": "Blochează sunetul.",
|
||||
"防撬报警": "Alertă TamperName",
|
||||
"防撬报警": "Alertă Tamper",
|
||||
"重置键": "Butonul resitează",
|
||||
"锁时间": "Blochează ceasul",
|
||||
"诊断": "Diagnostică",
|
||||
@ -185,7 +185,7 @@
|
||||
"删除账号": "Șterge cont",
|
||||
"个人信息": "Informații cont",
|
||||
"头像": "Avatar",
|
||||
"昵称": "NickNameName",
|
||||
"昵称": "NickName",
|
||||
"请输入昵称": "Introduceți porecla dumneavoastră",
|
||||
"修改昵称": "Redenumește:",
|
||||
"修改账号": "Editează cont",
|
||||
@ -210,7 +210,7 @@
|
||||
"WiFi名称": "Nume WiFi",
|
||||
"网络MAC": "Rețea MAC",
|
||||
"网关升级": "Actualizare GatewayComment",
|
||||
"网关连接的锁": "Blocare (blocare) conectat la această GatewayName",
|
||||
"网关连接的锁": "Blocare (blocare) conectat la această Gateway",
|
||||
"信号强": "Puternică",
|
||||
"选择网关类型": "Alegeți tipul de port",
|
||||
"添加网关": "Adaugă poartă",
|
||||
@ -316,7 +316,7 @@
|
||||
"开门器": "Deschizător de uși",
|
||||
"面容开锁": "Fața deblochează",
|
||||
"开门方向设置": "Set de direcție de deschidere",
|
||||
"电机功率设置": "Setare MotorPowerName",
|
||||
"电机功率设置": "Setare MotorPower",
|
||||
"开锁时是否需联网": "Dacă Internetul este necesar la deblocarea",
|
||||
"选择要加入分组的锁": "Selectați blocarea S pentru a adăuga la acest grupă",
|
||||
"锁数量": "Blochează numărător",
|
||||
@ -593,7 +593,7 @@
|
||||
"开门通知": "Notificare de deschidere.",
|
||||
"N天未开门": "N zile fără deschiderea ușii",
|
||||
"门未关好": "Uşa nu e închisă.",
|
||||
"防拆报警": "Alarmă TamperName",
|
||||
"防拆报警": "Alarmă Tamper",
|
||||
"低电量提醒": "Baterie scăzută",
|
||||
"胁迫开门": "Deschiderea ușilor forțate",
|
||||
"有人按门铃": "Cineva sună la uşă.",
|
||||
@ -633,12 +633,12 @@
|
||||
"云存": "Stocarea norilor",
|
||||
"本地": "Această localitate:",
|
||||
"3天滚动储存": "3 zile de păstrare rulare",
|
||||
"去升级": "Actualizare acumName",
|
||||
"去升级": "Actualizare acum",
|
||||
"下载列表": "Lista descărcării",
|
||||
"已下载": "Descărcat",
|
||||
"全部视频": "Toate videoclipurile",
|
||||
"已为本设备免费提供3大滚动视频储存服务": "Pentru acest dispozitiv au fost furnizate trei servicii de stocare video de derulare gratuite",
|
||||
"视频播放": "Redare videoName",
|
||||
"视频播放": "Redare video",
|
||||
"全选": "Toate.",
|
||||
"请选择要删除的视频": "Alegeți videoclipul pe care doriți să o ștergeți.",
|
||||
"请选择要下载的视频": "Vă rugăm să selectați videoclipul pe care doriți să le descărcați",
|
||||
@ -691,7 +691,7 @@
|
||||
"请输入身份证号和真实姓名": "Introduceți numărul și numele real.",
|
||||
"点击返回设备配对": "Atinge înapoi la împerecherea dispozitivului",
|
||||
"无法连接?尝试升级": "Nu se poate conecta?",
|
||||
"固件升级提示": "Prompt de upgrade FirmwareName",
|
||||
"固件升级提示": "Prompt de upgrade Firmware",
|
||||
"请先获取固件文件到手机本地,再选择升级": "Vă rugăm să obțineți fișierul firmware la telefonul local întâi, și apoi selectați Upgrade.",
|
||||
"固件升级中": "Firware-ul este în actualizare",
|
||||
"取消升级": "Anulează actualizarea",
|
||||
@ -710,7 +710,7 @@
|
||||
"传输期间请勿离开当前页面": "Nu părăsi pagina curentă în timpul transferului",
|
||||
"机型": "Modele",
|
||||
"硬件版本": "Versiune hardware",
|
||||
"固件版本": "Versiunea FirmwareName",
|
||||
"固件版本": "Versiunea Firmware",
|
||||
"手动升级": "Upgrade manuală",
|
||||
"设备连接中...": "Conectare dispozitivă...",
|
||||
"未避免异常情况,请在门打开时升级": "Excepţii inevitabile, vă rugăm să upgradezi când uşa este deschisă.",
|
||||
@ -834,7 +834,7 @@
|
||||
"微信": "WeChat",
|
||||
"朋友圈": "Momente",
|
||||
"QQ": "QQ",
|
||||
"QQ空间": "QQZoneName",
|
||||
"QQ空间": "QQZone",
|
||||
"微博": "Weibo.",
|
||||
"FaceBook": "FacebookComment",
|
||||
"链接": "Legătură",
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "După resetare, venele metacarpale ale încuietorii vor fi şterse. Sigur doriți să resetați?",
|
||||
@ -1097,7 +1100,7 @@
|
||||
"支持的国家值": "Statele Unite ale Americii, Canada, Marea Britanie, Australia, India, Germania, Franța, Italia, Spania, Japonia",
|
||||
"操作流程": "Procesul operațional",
|
||||
"操作流程值": "1 Adăugați o blocare și o poartă cu Smart blocare APP\n\n2 Activați funcția de deblocare la distanță a încuietorii din APP (acesta funcție este oprită implicit). Dacă nu aveți această opțiune, blocarea nu suportă Alexa\n\n3 Adăugați abilități pentru Alexa și autorizați-le cu Smart blocare contul și parola APP. După ce autorizaţia va avea succes, puteţi descoperi dispozitivele sub cont\n\n4 Localizaţi blocarea în aplicaţia Alexa, activaţi funcţia de deblocare vocală, şi setaţi parola limbii\n\n5 Încuietoarea poate fi operată prin Alexa",
|
||||
"Google Home": "Acasă GoogleName",
|
||||
"Google Home": "Acasă Google",
|
||||
"Action name": "Nume acțiune",
|
||||
"ScienerSmart": "ScienerSmart",
|
||||
"支持的语言": "Limbi suportate",
|
||||
@ -1151,5 +1154,25 @@
|
||||
"2.在APP里开启锁的远程开锁功能(这个功能默认是关闭的)。如果没有这个选项,则锁不支持Google Home": "2. Activați funcția de deblocare de la distanță a încuietorului în aplicație (această funcție este dezactivată în mod implicit). Dacă această opțiune nu este disponibilă, blocarea nu va accepta Google Home",
|
||||
"3.安装Google Home APP,点击左上角的加号按钮": "3. Instalați aplicația Google Home și faceți clic pe butonul plus din colțul din stânga sus",
|
||||
"暂无最新记录": "În prezent nu există cele mai recente înregistrări disponibile",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Vă rugăm să comutați telefonul la WiFi 2.4G pentru conectarea manuală"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Vă rugăm să comutați telefonul la WiFi 2.4G pentru conectarea manuală",
|
||||
"语音包设置": "Setări pachet vocal",
|
||||
"第三方平台设置": "Setarea platformei terțelor părți",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Configurarea pachetului vocal de blocare",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "vocea bărbatului",
|
||||
"女声": "Voce feminină",
|
||||
"您的图像和视频数据仅保留": "Datele tale de imagine și video sunt păstrate numai",
|
||||
"后图像和视频数据将会失效,开通": "După aceea, datele de imagine și video vor fi invalide și activate",
|
||||
"云存会员": "Abonament de stocare în cloud",
|
||||
"服务,图像视频信息随心存!": "Serviciile, imaginile și informațiile video sunt în centrul dumneavoastră!",
|
||||
"图像": "imagine",
|
||||
"视频": "Video",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "În prezent, țara nu acceptă înregistrarea codului de verificare a telefonului mobil, vă rugăm să utilizați adresa de e-mail pentru a vă înregistra",
|
||||
"注:": "Notă:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Trebuie folosit o dată în termen de 24 de ore de la ora de început, altfel va expira",
|
||||
"这是单次密码,只能使用一次": "Aceasta este o parolă unică și poate fi folosită doar o dată",
|
||||
"您好": "Bună",
|
||||
"您的开门密码是": "Codul dvs. de acces la ușă este",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Pentru a debloca, activați mai întâi tastatura lacătului, apoi introduceți parola și terminați cu #. Tasta # se află în colțul din dreapta jos al tastaturii și poate avea o altă pictogramă"
|
||||
}
|
||||
@ -1065,7 +1065,7 @@
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希腊语": "ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Türkçe",
|
||||
@ -1078,8 +1078,11 @@
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"印地语": "हिंदीName",
|
||||
"印地语": "हिंदी",
|
||||
"乌尔都语": "اوردو",
|
||||
"亚美尼亚语": "Հայերեն",
|
||||
"格鲁吉亚语": "ქართული",
|
||||
"巴西葡萄牙语": "Português do Brasil",
|
||||
"繁体中文(中国台湾)": "繁體中文(中國臺灣)",
|
||||
"繁体中文(中国香港)": "繁體中文(中國香港)",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "После сброса пястные вены замка будут удалены. Вы уверены, что хотите сбросить?",
|
||||
@ -1155,5 +1158,25 @@
|
||||
"请确保网络是2.4GHz Wi-Fi": "Убедитесь, что сеть имеет 2,4 ГГц Wi - Fi",
|
||||
"已选": "Выбранные",
|
||||
"是否要远程开锁": "Нужно ли удалённо открывать замок",
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Пожалуйста, переключите телефон на 2.4G WiFi для ручного подключения"
|
||||
"请将手机切换至2.4G WiFi进行手动连接": "Пожалуйста, переключите телефон на 2.4G WiFi для ручного подключения",
|
||||
"语音包设置": "Настройка голосового пакета",
|
||||
"第三方平台设置": "Настройка платформы третьей стороны",
|
||||
"涂鸦智能": "Tuya Smart",
|
||||
"锁语音包设置": "Запустить настройки голосового пакета",
|
||||
"(中国台湾)": "(中国台湾)",
|
||||
"男声": "Мужской голос",
|
||||
"女声": "Женские голоса",
|
||||
"您的图像和视频数据仅保留": "Ваши изображения и видеоданные сохраняются только",
|
||||
"后图像和视频数据将会失效,开通": "После этого изображение и видео данные будут недействительными и активированы",
|
||||
"云存会员": "Членство в облачном хранилище",
|
||||
"服务,图像视频信息随心存!": "Сервисная, имиджевая и видеоинформация в Вашем сердце!",
|
||||
"图像": "образ",
|
||||
"视频": "Видео",
|
||||
"当前国家不支持手机验证码注册,请使用邮箱进行注册": "В настоящее время страна не поддерживает регистрацию кода верификации мобильного телефона, пожалуйста, используйте свой адрес электронной почты для регистрации",
|
||||
"注:": "Примечание:",
|
||||
"必需在开始时间24小时内使用一次,否则将失效": "Должен быть использован один раз в течение 24 часов с момента начала, иначе он истечет",
|
||||
"这是单次密码,只能使用一次": "Это одноразовый пароль, который можно использовать только один раз",
|
||||
"您好": "Привет!",
|
||||
"您的开门密码是": "Ваш код доступа к двери",
|
||||
"开锁时,先激活锁键盘,再输入密码,以#号结束,#号键在键盘右下角,有可能是其他图标": "Чтобы разблокировать, сначала активируйте клавиатуру замка, затем введите пароль и закончите #. Клавиша # находится в правом нижнем углу клавиатуры и может иметь другой значок"
|
||||
}
|
||||