feat: add more words i18n (#516)
* feat: some word i18n * feat: add object-cover to feed icon, add zh-HK and zh-TW errors lang * feat: add more words i18n * update * resolve merge conflict * resole * resolve merge conflict * resolve merge conflict * Update apps/renderer/src/modules/claim/hooks.ts Co-authored-by: Innei <tukon479@gmail.com> * Update apps/renderer/src/hooks/biz/useSubscriptionActions.tsx Co-authored-by: Innei <tukon479@gmail.com> * Update apps/renderer/src/modules/discover/import.tsx Co-authored-by: Innei <tukon479@gmail.com> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> * update Signed-off-by: Innei <i@innei.in> --------- Signed-off-by: Innei <i@innei.in> Co-authored-by: Innei <tukon479@gmail.com> Co-authored-by: Innei <i@innei.in>
This commit is contained in:
parent
a5a4de00e3
commit
e2b8ec8862
|
|
@ -1,7 +1,7 @@
|
|||
name: Auto Fix Lint and Format
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize]
|
||||
|
||||
jobs:
|
||||
|
|
@ -16,14 +16,16 @@ jobs:
|
|||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.head_ref }}
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
cache: "pnpm"
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
|
@ -34,30 +36,28 @@ jobs:
|
|||
- name: Run formatter
|
||||
run: pnpm run format
|
||||
|
||||
- name: Check for changes
|
||||
id: git-check
|
||||
run: |
|
||||
git add -A
|
||||
git diff --cached --exit-code || echo "changes=true" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Commit and push changes
|
||||
if: steps.git-check.outputs.changes == 'true'
|
||||
run: |
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git commit -m "chore: auto-fix linting and formatting issues" --no-verify
|
||||
#git push origin HEAD:${{ github.head_ref }}
|
||||
git push https://${{ secrets.PAT }}@github.com/${{ github.repository }}.git HEAD:${{ github.head_ref }}
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "chore: auto-fix linting and formatting issues"
|
||||
commit_options: "--no-verify"
|
||||
file_pattern: "."
|
||||
|
||||
- name: Add PR comment
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
const changes = ${{ steps.git-check.outputs.changes == 'true' }};
|
||||
const message = changes
|
||||
const hasChanges = await github.rest.pulls.listFiles({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.issue.number
|
||||
}).then(response => response.data.length > 0);
|
||||
|
||||
const message = hasChanges
|
||||
? 'Linting and formatting issues were automatically fixed. Please review the changes.'
|
||||
: 'No linting or formatting issues were found.';
|
||||
|
||||
github.rest.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
|
|
|
|||
|
|
@ -51,14 +51,6 @@ jobs:
|
|||
fetch-depth: 1
|
||||
lfs: true
|
||||
|
||||
- name: Cache pnpm modules
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: ${{ matrix.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||
restore-keys: |
|
||||
${{ matrix.os }}-
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { useMutation } from "@tanstack/react-query"
|
||||
import { useHotkeys } from "react-hotkeys-hook"
|
||||
import { Trans, useTranslation } from "react-i18next"
|
||||
import { toast } from "sonner"
|
||||
|
||||
import { Kbd } from "~/components/ui/kbd/Kbd"
|
||||
|
|
@ -13,8 +14,10 @@ import { feedUnreadActions } from "~/store/unread"
|
|||
import { navigateEntry } from "./useNavigateEntry"
|
||||
import { getRouteParams } from "./useRouteParams"
|
||||
|
||||
export const useDeleteSubscription = ({ onSuccess }: { onSuccess?: () => void }) =>
|
||||
useMutation({
|
||||
export const useDeleteSubscription = ({ onSuccess }: { onSuccess?: () => void }) => {
|
||||
const { t } = useTranslation()
|
||||
|
||||
return useMutation({
|
||||
mutationFn: async (subscription: SubscriptionFlatModel) =>
|
||||
subscriptionActions.unfollow(subscription.feedId).then((feed) => {
|
||||
subscriptionQuery.byView(subscription.view).invalidate()
|
||||
|
|
@ -39,12 +42,13 @@ export const useDeleteSubscription = ({ onSuccess }: { onSuccess?: () => void })
|
|||
|
||||
toast.dismiss(toastId)
|
||||
}
|
||||
|
||||
const toastId = toast(<UnfollowInfo title={feed.title!} undo={undo} />, {
|
||||
duration: 3000,
|
||||
action: {
|
||||
label: (
|
||||
<span className="flex items-center gap-1">
|
||||
Undo
|
||||
{t("words.undo")}
|
||||
<Kbd className="inline-flex items-center border border-border bg-transparent dark:text-white">
|
||||
Meta+Z
|
||||
</Kbd>
|
||||
|
|
@ -68,6 +72,7 @@ export const useDeleteSubscription = ({ onSuccess }: { onSuccess?: () => void })
|
|||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
const UnfollowInfo = ({ title, undo }: { title: string; undo: () => any }) => {
|
||||
useHotkeys("ctrl+z,meta+z", undo, {
|
||||
|
|
@ -76,7 +81,13 @@ const UnfollowInfo = ({ title, undo }: { title: string; undo: () => any }) => {
|
|||
})
|
||||
return (
|
||||
<>
|
||||
Feed <i className="mr-px font-semibold">{title}</i> has been unfollowed.
|
||||
<Trans
|
||||
ns="app"
|
||||
i18nKey="notify.unfollow_feed"
|
||||
components={{
|
||||
FeedItem: <i className="mr-px font-semibold">{title}</i>,
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { createElement, useCallback } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
|
||||
import { useModalStack } from "~/components/ui/modal/stacked/hooks"
|
||||
import { getFeedById } from "~/store/feed"
|
||||
|
|
@ -7,6 +8,7 @@ import { FeedClaimModalContent } from "./feed-claim-modal"
|
|||
|
||||
export const useFeedClaimModal = ({ feedId }: { feedId?: string }) => {
|
||||
const { present } = useModalStack()
|
||||
const { t } = useTranslation()
|
||||
|
||||
return useCallback(() => {
|
||||
if (!feedId) return
|
||||
|
|
@ -16,7 +18,7 @@ export const useFeedClaimModal = ({ feedId }: { feedId?: string }) => {
|
|||
if (!feed) return
|
||||
|
||||
present({
|
||||
title: "Feed Claim",
|
||||
title: t("feed_claim_modal.title"),
|
||||
content: () => createElement(FeedClaimModalContent, { feedId }),
|
||||
modalClassName: "!h-auto !max-h-screen",
|
||||
})
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { zodResolver } from "@hookform/resolvers/zod"
|
|||
import { useMutation } from "@tanstack/react-query"
|
||||
import { Fragment } from "react/jsx-runtime"
|
||||
import { useForm } from "react-hook-form"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Trans, useTranslation } from "react-i18next"
|
||||
import { z } from "zod"
|
||||
|
||||
import { Button } from "~/components/ui/button"
|
||||
|
|
@ -35,20 +35,26 @@ const formSchema = z.object({
|
|||
}),
|
||||
})
|
||||
|
||||
const list = [
|
||||
const NumberDisplay = ({ value }) => <span className="font-bold text-zinc-800">{value ?? 0}</span>
|
||||
|
||||
const list: {
|
||||
key: I18nKeys
|
||||
title: string
|
||||
className: string
|
||||
}[] = [
|
||||
{
|
||||
key: "parsedErrorItems",
|
||||
title: "Parsed Error Items",
|
||||
title: <Trans ns="app" i18nKey="discover.import.parsedErrorItems" />,
|
||||
className: "text-red-500",
|
||||
},
|
||||
{
|
||||
key: "successfulItems",
|
||||
title: "Successful Items",
|
||||
title: <Trans ns="app" i18nKey="discover.import.successfulItems" />,
|
||||
className: "text-green-500",
|
||||
},
|
||||
{
|
||||
key: "conflictItems",
|
||||
title: "Conflict Items",
|
||||
title: <Trans ns="app" i18nKey="discover.import.conflictItems" />,
|
||||
className: "text-yellow-500",
|
||||
},
|
||||
]
|
||||
|
|
@ -88,6 +94,7 @@ export function DiscoverImport() {
|
|||
function onSubmit(values: z.infer<typeof formSchema>) {
|
||||
mutation.mutate(values.file)
|
||||
}
|
||||
|
||||
const { t } = useTranslation()
|
||||
|
||||
return (
|
||||
|
|
@ -99,7 +106,7 @@ export function DiscoverImport() {
|
|||
name="file"
|
||||
render={({ field: { value, onChange, ...fieldProps } }) => (
|
||||
<FormItem>
|
||||
<FormLabel>OPML file</FormLabel>
|
||||
<FormLabel>{t("discover.import.opml")}</FormLabel>
|
||||
<FormControl>
|
||||
<label
|
||||
className="center flex h-[100px] w-full rounded-md border border-dashed"
|
||||
|
|
@ -149,18 +156,15 @@ export function DiscoverImport() {
|
|||
<div className="mt-8 max-w-lg">
|
||||
<Card>
|
||||
<CardHeader className="block text-zinc-500">
|
||||
<span className="font-bold text-zinc-800">
|
||||
{mutation.data?.successfulItems.length || 0}
|
||||
</span>{" "}
|
||||
feeds were successfully imported,{" "}
|
||||
<span className="font-bold text-zinc-800">
|
||||
{mutation.data?.conflictItems.length || 0}
|
||||
</span>{" "}
|
||||
were already subscribed to, and{" "}
|
||||
<span className="font-bold text-zinc-800">
|
||||
{mutation.data?.parsedErrorItems.length || 0}
|
||||
</span>{" "}
|
||||
failed to import.
|
||||
<Trans
|
||||
ns="app"
|
||||
i18nKey="discover.import.result"
|
||||
components={{
|
||||
SuccessfulNum: <NumberDisplay value={mutation.data?.successfulItems.length} />,
|
||||
ConflictNum: <NumberDisplay value={mutation.data?.conflictItems.length} />,
|
||||
ErrorNum: <NumberDisplay value={mutation.data?.parsedErrorItems.length} />,
|
||||
}}
|
||||
/>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-6">
|
||||
{list.map((item) => (
|
||||
|
|
@ -168,7 +172,7 @@ export function DiscoverImport() {
|
|||
<div className={cn("mb-4 text-lg font-medium", item.className)}>{item.title}</div>
|
||||
<div className="space-y-4">
|
||||
{!mutation.data?.[item.key].length && (
|
||||
<div className="text-zinc-500">No items</div>
|
||||
<div className="text-zinc-500">{t("discover.import.noItems")}</div>
|
||||
)}
|
||||
{mutation.data?.[item.key].map((feed) => (
|
||||
<FollowSummary className="max-w-[462px]" key={feed.id} feed={feed} />
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import { repository } from "@pkg"
|
||||
import type { FallbackRender } from "@sentry/react"
|
||||
import { ErrorBoundary } from "@sentry/react"
|
||||
import type { FC } from "react"
|
||||
|
|
@ -413,6 +412,7 @@ const NoContent: FC<{
|
|||
url: string
|
||||
}> = ({ id, url }) => {
|
||||
const status = useEntryInReadabilityStatus(id)
|
||||
const { t } = useTranslation("app")
|
||||
|
||||
if (status !== ReadabilityStatus.INITIAL && status !== ReadabilityStatus.FAILURE) {
|
||||
return null
|
||||
|
|
@ -420,21 +420,12 @@ const NoContent: FC<{
|
|||
return (
|
||||
<div className="center">
|
||||
<div className="space-y-2 text-balance text-center text-sm text-zinc-400">
|
||||
{(isWebBuild || status === ReadabilityStatus.FAILURE) && <span>No content</span>}
|
||||
{(isWebBuild || status === ReadabilityStatus.FAILURE) && (
|
||||
<span>{t("entry_content.no_content")}</span>
|
||||
)}
|
||||
{isWebBuild && (
|
||||
<div>
|
||||
<span>
|
||||
Maybe web app doesn't support this content type. But you can{" "}
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="text-accent underline"
|
||||
href={`${repository.url}/releases`}
|
||||
>
|
||||
download
|
||||
</a>{" "}
|
||||
the desktop app.
|
||||
</span>
|
||||
<span>{t("entry_content.web_app_notice")}</span>
|
||||
</div>
|
||||
)}
|
||||
{url && window.electron && <ReadabilityAutoToggle url={url} id={id} />}
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ function FeedListImpl({ className, view }: { className?: string; view: number })
|
|||
onClick={stopPropagation}
|
||||
>
|
||||
<i className="i-mgc-add-cute-re text-3xl" />
|
||||
<span className="text-base">Add some feeds</span>
|
||||
<span className="text-base">{t("sidebar.add_more_feeds")}</span>
|
||||
</Link>
|
||||
</div>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -204,4 +204,4 @@
|
|||
"words.user": "المستخدم",
|
||||
"words.which.all": "الكل",
|
||||
"words.zero_items": "صفر عناصر"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,4 +204,4 @@
|
|||
"words.user": "المستخدم",
|
||||
"words.which.all": "الكل",
|
||||
"words.zero_items": "صفر عناصر"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,4 +204,4 @@
|
|||
"words.user": "المستخدم",
|
||||
"words.which.all": "الكل",
|
||||
"words.zero_items": "لا توجد عناصر"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,4 +207,4 @@
|
|||
"words.user": "المستخدم",
|
||||
"words.which.all": "الكل",
|
||||
"words.zero_items": "لا توجد عناصر"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,4 +207,4 @@
|
|||
"words.user": "المستخدم",
|
||||
"words.which.all": "الكل",
|
||||
"words.zero_items": "صفر عناصر"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,4 +207,4 @@
|
|||
"words.user": "المستخدم",
|
||||
"words.which.all": "الكل",
|
||||
"words.zero_items": "صفر عناصر"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,12 @@
|
|||
"discover.feed_description": "The description of this feed is as follows, and you can fill out the parameter form with the relevant information.",
|
||||
"discover.feed_maintainers": "This feed is provided by RSSHub, with credit to <maintainers />",
|
||||
"discover.import.click_to_upload": "Click to upload OPML file",
|
||||
"discover.import.conflictItems": "Conflict Items",
|
||||
"discover.import.noItems": "No items",
|
||||
"discover.import.opml": "OPML file",
|
||||
"discover.import.parsedErrorItems": "Parsed Error Items",
|
||||
"discover.import.result": "<SuccessfulNum /> feeds were successfully imported, <ConflictNum /> were already subscribed to, and <ErrorNum /> failed to import.",
|
||||
"discover.import.successfulItems": "Successful Items",
|
||||
"discover.popular": "Popular",
|
||||
"discover.preview": "Preview",
|
||||
"discover.rss_hub_route": "RSSHub Route",
|
||||
|
|
@ -83,6 +89,7 @@
|
|||
"feed_claim_modal.tab_content": "Content",
|
||||
"feed_claim_modal.tab_description": "Description",
|
||||
"feed_claim_modal.tab_rss": "RSS Tag",
|
||||
"feed_claim_modal.title": "Feed Claim",
|
||||
"feed_claim_modal.verify_ownership": "To claim this feed as your own, you need to verify ownership.",
|
||||
"feed_form.add_follow": "Add follow",
|
||||
"feed_form.category": "Category",
|
||||
|
|
@ -124,6 +131,7 @@
|
|||
"mark_all_read_button.mark_all_as_read": "Mark all as read",
|
||||
"mark_all_read_button.mark_as_read": "Mark {{which}} as read",
|
||||
"mark_all_read_button.undo": "Undo",
|
||||
"notify.unfollow_feed": "<FeedItem /> have been unfollowed.",
|
||||
"player.back_10s": "Back 10s",
|
||||
"player.close": "Close",
|
||||
"player.download": "Download",
|
||||
|
|
@ -150,6 +158,7 @@
|
|||
"search.result_count_local_mode": "(Local mode)",
|
||||
"search.tooltip.local_search": "This search covers locally available data. Try a Refetch to include the latest data.",
|
||||
"shortcuts.guide.title": "Shortcuts Guideline",
|
||||
"sidebar.add_more_feeds": "Add more feeds",
|
||||
"sidebar.category_remove_dialog.cancel": "Cancel",
|
||||
"sidebar.category_remove_dialog.continue": "Continue",
|
||||
"sidebar.category_remove_dialog.description": "This operation will delete your category, but the feeds it contains will be retained and grouped by website.",
|
||||
|
|
@ -226,6 +235,7 @@
|
|||
"words.rsshub": "RSSHub",
|
||||
"words.search": "Search",
|
||||
"words.starred": "Starred",
|
||||
"words.undo": "Undo",
|
||||
"words.unread": "Unread",
|
||||
"words.user": "User",
|
||||
"words.which.all": "all",
|
||||
|
|
|
|||
|
|
@ -134,4 +134,4 @@
|
|||
"words.user": "Usuario",
|
||||
"words.which.all": "Todo",
|
||||
"words.zero_items": "Sin contenido"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,4 +204,4 @@
|
|||
"words.user": "Käyttäjä",
|
||||
"words.which.all": "kaikki",
|
||||
"words.zero_items": "Ei kohteita"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,4 +204,4 @@
|
|||
"words.user": "Utilisateur",
|
||||
"words.which.all": "tous",
|
||||
"words.zero_items": "Zéro élément"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,4 +204,4 @@
|
|||
"words.user": "Utente",
|
||||
"words.which.all": "tutti",
|
||||
"words.zero_items": "Zero elementi"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -203,4 +203,4 @@
|
|||
"words.user": "ユーザー",
|
||||
"words.which.all": "すべて",
|
||||
"words.zero_items": "アイテムがありません"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -203,4 +203,4 @@
|
|||
"words.user": "ユーザー",
|
||||
"words.which.all": "すべて",
|
||||
"words.zero_items": "アイテムがありません"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,4 +204,4 @@
|
|||
"words.user": "Пользователь",
|
||||
"words.which.all": "все",
|
||||
"words.zero_items": "Нет элементов"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,12 @@
|
|||
"discover.feed_description": "根据描述完善目标订阅源的相关信息",
|
||||
"discover.feed_maintainers": "由 RSSHub 提供,感谢贡献者 <maintainers />",
|
||||
"discover.import.click_to_upload": "导入 OPML 文件",
|
||||
"discover.import.conflictItems": "冲突项目",
|
||||
"discover.import.noItems": "没有项目",
|
||||
"discover.import.opml": "OPML 文件",
|
||||
"discover.import.parsedErrorItems": "解析错误项目",
|
||||
"discover.import.result": "成功导入了 <SuccessfulNum /> 个订阅源,<ConflictNum /> 个已订阅,<ErrorNum /> 个导入失败。",
|
||||
"discover.import.successfulItems": "成功项目",
|
||||
"discover.popular": "热门",
|
||||
"discover.preview": "预览",
|
||||
"discover.rss_hub_route": "RSSHub 路由",
|
||||
|
|
@ -83,6 +89,7 @@
|
|||
"feed_claim_modal.tab_content": "内容",
|
||||
"feed_claim_modal.tab_description": "描述",
|
||||
"feed_claim_modal.tab_rss": "RSS 标签",
|
||||
"feed_claim_modal.title": "认证订阅源",
|
||||
"feed_claim_modal.verify_ownership": "完成订阅源所有权验证,证明该源由你提供",
|
||||
"feed_form.add_follow": "新增订阅",
|
||||
"feed_form.category": "分类",
|
||||
|
|
@ -124,6 +131,7 @@
|
|||
"mark_all_read_button.mark_all_as_read": "全部标记为已读",
|
||||
"mark_all_read_button.mark_as_read": "标记{{which}}为已读",
|
||||
"mark_all_read_button.undo": "撤销",
|
||||
"notify.unfollow_feed": "已取消订阅 <FeedItem />",
|
||||
"player.back_10s": "后退 10s",
|
||||
"player.close": "关闭",
|
||||
"player.download": "下载",
|
||||
|
|
@ -150,6 +158,7 @@
|
|||
"search.result_count_local_mode": "(本地模式)",
|
||||
"search.tooltip.local_search": "当前搜索仅包含本地可用数据,尝试重新搜索得到更多结果",
|
||||
"shortcuts.guide.title": "快捷键指南",
|
||||
"sidebar.add_more_feeds": "添加订阅源",
|
||||
"sidebar.category_remove_dialog.cancel": "取消",
|
||||
"sidebar.category_remove_dialog.continue": "继续",
|
||||
"sidebar.category_remove_dialog.description": "正在删除分类,操作后仍保留订阅源并按网站分组",
|
||||
|
|
@ -226,8 +235,9 @@
|
|||
"words.rsshub": "RSSHub",
|
||||
"words.search": "搜索",
|
||||
"words.starred": "收藏",
|
||||
"words.undo": "撤销",
|
||||
"words.unread": "未读",
|
||||
"words.user": "用户",
|
||||
"words.which.all": "全部",
|
||||
"words.zero_items": "没有内容"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,12 @@
|
|||
"discover.feed_description": "此訂閱源的描述如下,你可以根據相關資訊填寫參數表格。",
|
||||
"discover.feed_maintainers": "此訂閱源由 RSSHub 提供,感謝 <maintainers />",
|
||||
"discover.import.click_to_upload": "上傳 OPML 文件",
|
||||
"discover.import.conflictItems": "衝突項目",
|
||||
"discover.import.noItems": "沒有項目",
|
||||
"discover.import.opml": "OPML 文件",
|
||||
"discover.import.parsedErrorItems": "解析錯誤項目",
|
||||
"discover.import.result": "<SuccessfulNum /> 個訂閱源已成功導入,<ConflictNum /> 個已訂閱,<ErrorNum /> 個導入失敗。",
|
||||
"discover.import.successfulItems": "成功項目",
|
||||
"discover.popular": "熱門",
|
||||
"discover.preview": "預覽",
|
||||
"discover.rss_hub_route": "RSSHub 路由",
|
||||
|
|
@ -76,6 +82,7 @@
|
|||
"feed_claim_modal.tab_content": "內容",
|
||||
"feed_claim_modal.tab_description": "描述",
|
||||
"feed_claim_modal.tab_rss": "RSS 標籤",
|
||||
"feed_claim_modal.title": "認領訂閱源",
|
||||
"feed_claim_modal.verify_ownership": "要認領這個訂閱源,你需要驗證所有權。",
|
||||
"feed_form.add_follow": "新增關注",
|
||||
"feed_form.category": "分類",
|
||||
|
|
@ -114,6 +121,7 @@
|
|||
"mark_all_read_button.mark_all_as_read": "全部標記為已讀",
|
||||
"mark_all_read_button.mark_as_read": "標記 {{which}} 為已讀",
|
||||
"mark_all_read_button.undo": "撤銷",
|
||||
"notify.unfollow_feed": "已取消關注 <FeedItem />。",
|
||||
"player.back_10s": "倒退 10 秒",
|
||||
"player.close": "關閉",
|
||||
"player.download": "下載",
|
||||
|
|
@ -138,6 +146,7 @@
|
|||
"search.result_count_local_mode": "(本地模式)",
|
||||
"search.tooltip.local_search": "此搜尋涵蓋本地可用的數據。嘗試重新獲取以包括最新數據。",
|
||||
"shortcuts.guide.title": "快捷鍵指南",
|
||||
"sidebar.add_more_feeds": "添加訂閱源",
|
||||
"sidebar.category_remove_dialog.cancel": "取消",
|
||||
"sidebar.category_remove_dialog.continue": "繼續",
|
||||
"sidebar.category_remove_dialog.description": "此操作將刪除你的分類,但其中的訂閱源將保留並按網站分組。",
|
||||
|
|
@ -203,8 +212,9 @@
|
|||
"words.rsshub": "RSSHub",
|
||||
"words.search": "搜尋",
|
||||
"words.starred": "收藏",
|
||||
"words.undo": "撤銷",
|
||||
"words.unread": "未讀",
|
||||
"words.user": "用戶",
|
||||
"words.which.all": "所有",
|
||||
"words.zero_items": "零項目"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,12 @@
|
|||
"discover.feed_description": "該 feed 的描述如下,您可以使用相關資訊填寫參數表單。",
|
||||
"discover.feed_maintainers": "此 feed 由 RSSHub 提供,感謝 <maintainers /> 的支持",
|
||||
"discover.import.click_to_upload": "點擊上傳 OPML 文件",
|
||||
"discover.import.conflictItems": "衝突項目",
|
||||
"discover.import.noItems": "沒有項目",
|
||||
"discover.import.opml": "OPML 檔案",
|
||||
"discover.import.parsedErrorItems": "解析錯誤項目",
|
||||
"discover.import.result": "成功匯入了 <SuccessfulNum /> 個訂閱源,<ConflictNum /> 個已經訂閱,<ErrorNum /> 個匯入失敗。",
|
||||
"discover.import.successfulItems": "成功項目",
|
||||
"discover.popular": "熱門",
|
||||
"discover.preview": "預覽",
|
||||
"discover.rss_hub_route": "RSSHub 路由",
|
||||
|
|
@ -83,6 +89,7 @@
|
|||
"feed_claim_modal.tab_content": "內容",
|
||||
"feed_claim_modal.tab_description": "描述",
|
||||
"feed_claim_modal.tab_rss": "RSS 標籤",
|
||||
"feed_claim_modal.title": "認領摘要",
|
||||
"feed_claim_modal.verify_ownership": "要認領此摘要為您的內容,您需要驗證所有權。",
|
||||
"feed_form.add_follow": "關注",
|
||||
"feed_form.category": "類別",
|
||||
|
|
@ -124,6 +131,7 @@
|
|||
"mark_all_read_button.mark_all_as_read": "全部標記為已讀",
|
||||
"mark_all_read_button.mark_as_read": "將 {{which}} 標記為已讀",
|
||||
"mark_all_read_button.undo": "復原",
|
||||
"notify.unfollow_feed": "已取消關注 <FeedItem />",
|
||||
"player.back_10s": "後退 10 秒",
|
||||
"player.close": "關閉",
|
||||
"player.download": "下載",
|
||||
|
|
@ -150,6 +158,7 @@
|
|||
"search.result_count_local_mode": "(本地模式)",
|
||||
"search.tooltip.local_search": "此搜尋涵蓋本地可用資料。嘗試重新獲取以包含最新資料。",
|
||||
"shortcuts.guide.title": "快捷鍵指南",
|
||||
"sidebar.add_more_feeds": "添加摘要",
|
||||
"sidebar.category_remove_dialog.cancel": "取消",
|
||||
"sidebar.category_remove_dialog.continue": "繼續",
|
||||
"sidebar.category_remove_dialog.description": "此操作將刪除您的類別,但它包含的摘要將被保留並按網站分組。",
|
||||
|
|
@ -224,8 +233,9 @@
|
|||
"words.rsshub": "RSSHub",
|
||||
"words.search": "搜尋",
|
||||
"words.starred": "收藏",
|
||||
"words.undo": "撤銷",
|
||||
"words.unread": "未讀",
|
||||
"words.user": "使用者",
|
||||
"words.which.all": "全部",
|
||||
"words.zero_items": "沒有內容"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"words.result_other": "نتائج",
|
||||
"words.space": " ",
|
||||
"words.which.all": "الكل"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,4 +25,4 @@
|
|||
"words.result_other": "نتائج",
|
||||
"words.space": " ",
|
||||
"words.which.all": "الكل"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,4 +25,4 @@
|
|||
"words.result_other": "نتائج",
|
||||
"words.space": " ",
|
||||
"words.which.all": "الكل"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"words.result_other": "نتائج",
|
||||
"words.space": " ",
|
||||
"words.which.all": "الكل"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"words.result_other": "نتائج",
|
||||
"words.space": " ",
|
||||
"words.which.all": "الكل"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,4 +25,4 @@
|
|||
"words.result_other": "نتائج",
|
||||
"words.space": " ",
|
||||
"words.which.all": "الكل"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,4 +31,4 @@
|
|||
"words.submit": "Submit",
|
||||
"words.update": "Update",
|
||||
"words.which.all": "All"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"words.result_other": "resultados",
|
||||
"words.space": " ",
|
||||
"words.which.all": "Todo"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,4 +25,4 @@
|
|||
"words.result_other": "tulokset",
|
||||
"words.space": " ",
|
||||
"words.which.all": "Kaikki"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"words.result_other": "résultats",
|
||||
"words.space": " ",
|
||||
"words.which.all": "Tous"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,4 +25,4 @@
|
|||
"words.result_other": "risultati",
|
||||
"words.space": " ",
|
||||
"words.which.all": "Tutti"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"words.result_other": "結果",
|
||||
"words.space": "",
|
||||
"words.which.all": "すべて"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"words.result_other": "resultados",
|
||||
"words.space": " ",
|
||||
"words.which.all": "Todos"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,4 +25,4 @@
|
|||
"words.result_other": "результаты",
|
||||
"words.space": " ",
|
||||
"words.which.all": "Все"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,4 +27,4 @@
|
|||
"words.result_other": "结果",
|
||||
"words.space": "",
|
||||
"words.which.all": "全部"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,4 +25,4 @@
|
|||
"words.result_other": "結果",
|
||||
"words.space": " ",
|
||||
"words.which.all": "全部"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"words.result_other": "多筆結果",
|
||||
"words.space": " ",
|
||||
"words.which.all": "全部"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"7001": "Invalid setting tab",
|
||||
"7002": "Invalid setting payload",
|
||||
"7003": "Setting payload too large"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"7001": "Onglet de paramètre invalide",
|
||||
"7002": "Contenu de paramètre invalide",
|
||||
"7003": "Contenu de paramètre trop volumineux"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"7001": "無効な設定タブです",
|
||||
"7002": "無効な設定ペイロードです",
|
||||
"7003": "設定ペイロードが大きすぎます"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"7001": "Неверная вкладка настройки",
|
||||
"7002": "Неверное содержимое настройки",
|
||||
"7003": "Содержимое настройки слишком велико"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"7001": "无效的设置标签",
|
||||
"7002": "无效的设置负载",
|
||||
"7003": "设置负载过大"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"7001": "無效的設定標簽",
|
||||
"7002": "無效的設定負載",
|
||||
"7003": "設定負載太大"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@
|
|||
"7001": "設定標籤無效",
|
||||
"7002": "設定負載無效",
|
||||
"7003": "設定負載過大"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "افتح {{APP_NAME}}",
|
||||
"successMessage": "تم الاتصال بنجاح بحساب {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "افتح {{APP_NAME}}",
|
||||
"successMessage": "لقد تم الاتصال بنجاح بحسابك على {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "فتح {{APP_NAME}}",
|
||||
"successMessage": "تم الاتصال بحساب {{APP_NAME}} بنجاح."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "افتح {{APP_NAME}}",
|
||||
"successMessage": "تم الاتصال بنجاح بحساب {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,4 +40,4 @@
|
|||
"openApp": "افتح {{APP_NAME}}",
|
||||
"successMessage": "تم الاتصال بنجاح بحساب {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,4 +40,4 @@
|
|||
"openApp": "افتح {{APP_NAME}}",
|
||||
"successMessage": "تم الاتصال بحساب {{APP_NAME}} بنجاح."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,4 +32,4 @@
|
|||
"redirect.instruction": "Now is the time to open {{APP_NAME}} and safely close this page.",
|
||||
"redirect.openApp": "Open {{APP_NAME}}",
|
||||
"redirect.successMessage": "You have successfully connected to {{APP_NAME}} Account."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "Abrir {{APP_NAME}}",
|
||||
"successMessage": "Te has conectado exitosamente a la cuenta de {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "Avaa {{APP_NAME}}",
|
||||
"successMessage": "Olet onnistuneesti yhdistänyt {{APP_NAME}}-tilisi."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "Ouvrir {{APP_NAME}}",
|
||||
"successMessage": "Vous vous êtes connecté avec succès à votre compte {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "Apri {{APP_NAME}}",
|
||||
"successMessage": "Ti sei connesso con successo all'account {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "{{APP_NAME}}を開く",
|
||||
"successMessage": "{{APP_NAME}}アカウントに正常に接続されました。"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "Abrir {{APP_NAME}}",
|
||||
"successMessage": "Conectou-se com sucesso à conta {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "Открыть {{APP_NAME}}",
|
||||
"successMessage": "Вы успешно подключились к аккаунту {{APP_NAME}}."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@
|
|||
"openApp": "打开 {{APP_NAME}}",
|
||||
"successMessage": "已成功连接到 {{APP_NAME}} 账户。"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,4 +40,4 @@
|
|||
"openApp": "打開 {{APP_NAME}}",
|
||||
"successMessage": "你已成功連接到 {{APP_NAME}} 帳戶。"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,4 +40,4 @@
|
|||
"openApp": "開啟 {{APP_NAME}}",
|
||||
"successMessage": "您已成功連接至 {{APP_NAME}} 帳戶。"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "العربية (الجزائر)"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "العربية (العراق)"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "العربية (الكويت)"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "العربية (المغرب)"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "العربية (السعودية)"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "العربية (تونس)"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "English"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "Español"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "Suomi"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "Français"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "Italiano"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "日本語"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "Português"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "Русский"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "简体中文"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "繁體中文(香港)"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
"langs.zh-HK": "繁體中文(香港)",
|
||||
"langs.zh-TW": "繁體中文(台灣)",
|
||||
"name": "繁體中文(台灣)"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,4 @@
|
|||
"menu.zoom": "تكبير",
|
||||
"menu.zoomIn": "تكبير",
|
||||
"menu.zoomOut": "تصغير"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,4 @@
|
|||
"menu.zoom": "تكبير",
|
||||
"menu.zoomIn": "تكبير",
|
||||
"menu.zoomOut": "تصغير"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,4 @@
|
|||
"menu.zoom": "تكبير",
|
||||
"menu.zoomIn": "تكبير",
|
||||
"menu.zoomOut": "تصغير"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,4 +65,4 @@
|
|||
"menu.zoom": "Zoom",
|
||||
"menu.zoomIn": "Zoom In",
|
||||
"menu.zoomOut": "Zoom Out"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,4 @@
|
|||
"menu.zoom": "Zoom",
|
||||
"menu.zoomIn": "Ingrandisci",
|
||||
"menu.zoomOut": "Riduci"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,4 +49,4 @@
|
|||
"menu.zoom": "ズーム",
|
||||
"menu.zoomIn": "拡大",
|
||||
"menu.zoomOut": "縮小"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,4 +61,4 @@
|
|||
"menu.zoom": "缩放",
|
||||
"menu.zoomIn": "放大",
|
||||
"menu.zoomOut": "缩小"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,4 @@
|
|||
"menu.zoom": "縮放",
|
||||
"menu.zoomIn": "放大",
|
||||
"menu.zoomOut": "縮小"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,4 @@
|
|||
"menu.zoom": "縮放",
|
||||
"menu.zoomIn": "放大",
|
||||
"menu.zoomOut": "縮小"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,4 +192,4 @@
|
|||
"wallet.withdraw.modalTitle": "سحب باور",
|
||||
"wallet.withdraw.submitButton": "إرسال",
|
||||
"wallet.withdraw.success": "تم السحب بنجاح!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -200,4 +200,4 @@
|
|||
"wallet.withdraw.modalTitle": "سحب باور",
|
||||
"wallet.withdraw.submitButton": "إرسال",
|
||||
"wallet.withdraw.success": "تم السحب بنجاح!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -200,4 +200,4 @@
|
|||
"wallet.withdraw.modalTitle": "سحب Power",
|
||||
"wallet.withdraw.submitButton": "إرسال",
|
||||
"wallet.withdraw.success": "تم السحب بنجاح!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,4 +192,4 @@
|
|||
"wallet.withdraw.modalTitle": "سحب باور",
|
||||
"wallet.withdraw.submitButton": "إرسال",
|
||||
"wallet.withdraw.success": "السحب تمت بنجاح!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,4 +192,4 @@
|
|||
"wallet.withdraw.modalTitle": "سحب الطاقة",
|
||||
"wallet.withdraw.submitButton": "إرسال",
|
||||
"wallet.withdraw.success": "تم السحب بنجاح!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -200,4 +200,4 @@
|
|||
"wallet.withdraw.modalTitle": "سحب الطاقة",
|
||||
"wallet.withdraw.submitButton": "إرسال",
|
||||
"wallet.withdraw.success": "تم السحب بنجاح!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -234,4 +234,4 @@
|
|||
"wallet.withdraw.modalTitle": "Withdraw Power",
|
||||
"wallet.withdraw.submitButton": "Submit",
|
||||
"wallet.withdraw.success": "Withdrawal successful!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,4 +192,4 @@
|
|||
"wallet.withdraw.modalTitle": "Retirar Power",
|
||||
"wallet.withdraw.submitButton": "Enviar",
|
||||
"wallet.withdraw.success": "¡Retiro exitoso!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,4 +192,4 @@
|
|||
"wallet.withdraw.modalTitle": "Nosta Poweria",
|
||||
"wallet.withdraw.submitButton": "Lähetä",
|
||||
"wallet.withdraw.success": "Nosto onnistui!"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue