terry-staging #16
@@ -47,13 +47,13 @@ export function InAppDownloadGuideProvider({
|
||||
}) {
|
||||
const { t } = useI18n();
|
||||
const { showToast } = useToast();
|
||||
const [detail, setDetail] = useState<InAppDownloadGuideDetail | null>(null);
|
||||
const [open, setOpen] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const onShow = (event: Event) => {
|
||||
const ce = event as CustomEvent<InAppDownloadGuideDetail>;
|
||||
if (!ce.detail) return;
|
||||
setDetail(ce.detail);
|
||||
setOpen(true);
|
||||
};
|
||||
window.addEventListener(IN_APP_DOWNLOAD_GUIDE_EVENT, onShow);
|
||||
return () =>
|
||||
@@ -61,19 +61,19 @@ export function InAppDownloadGuideProvider({
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!detail) return;
|
||||
if (!open) return;
|
||||
const onKey = (event: KeyboardEvent) => {
|
||||
if (event.key === "Escape") setDetail(null);
|
||||
if (event.key === "Escape") setOpen(false);
|
||||
};
|
||||
window.addEventListener("keydown", onKey);
|
||||
return () => window.removeEventListener("keydown", onKey);
|
||||
}, [detail]);
|
||||
}, [open]);
|
||||
|
||||
const close = () => setDetail(null);
|
||||
const close = () => setOpen(false);
|
||||
|
||||
const handleCopy = async () => {
|
||||
if (!detail) return;
|
||||
const ok = await copyTextToClipboard(detail.url);
|
||||
const handleCopyPageLink = async () => {
|
||||
if (typeof window === "undefined") return;
|
||||
const ok = await copyTextToClipboard(window.location.href);
|
||||
if (ok) {
|
||||
showToast(t("inAppDownloadCopied"));
|
||||
} else {
|
||||
@@ -89,7 +89,7 @@ export function InAppDownloadGuideProvider({
|
||||
return (
|
||||
<>
|
||||
{children}
|
||||
{detail
|
||||
{open
|
||||
? createPortal(
|
||||
<div
|
||||
role="dialog"
|
||||
@@ -154,19 +154,13 @@ export function InAppDownloadGuideProvider({
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<div className="rounded-2xl border border-white/10 bg-black/30 p-3">
|
||||
<p className="break-all text-xs leading-5 text-neutral-300">
|
||||
{detail.url}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
onClick={handleCopy}
|
||||
onClick={handleCopyPageLink}
|
||||
className="flex h-11 w-full items-center justify-center gap-2 rounded-full bg-ark-gold px-4 text-sm font-semibold text-black transition hover:bg-ark-gold2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ark-gold/80 focus-visible:ring-offset-2 focus-visible:ring-offset-[#1c1c21]"
|
||||
>
|
||||
<Copy className="h-4 w-4" />
|
||||
{t("copyLink")}
|
||||
{t("inAppDownloadCopyPageLink")}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -266,15 +266,16 @@ export const enDict: Dict = {
|
||||
backToHome: "Back to Home",
|
||||
inAppDownloadTitle: "Please open in your system browser to download",
|
||||
inAppDownloadIntro:
|
||||
"Your current in-app browser cannot download files. Copy the link below and open it in your system browser — the file will save directly.",
|
||||
"Your current in-app browser cannot download files. Open this page in your system browser, then tap download again.",
|
||||
inAppDownloadIntroNamed:
|
||||
"{browser} cannot download files directly. Copy the link below and open it in your system browser — the file will save directly.",
|
||||
"{browser} cannot download files directly. Open this page in your system browser, then tap download again.",
|
||||
inAppDownloadStepCopy:
|
||||
'Tap "Copy link" below — that is the direct file download URL.',
|
||||
'Tap the menu (top-right) and choose "Open in default browser".',
|
||||
inAppDownloadStepOpen:
|
||||
"Open your system browser (Safari, Chrome, etc.) and paste the link into the address bar.",
|
||||
"If that option is missing, tap “Copy page link” below and open it in Safari, Chrome, or another browser.",
|
||||
inAppDownloadStepDownload:
|
||||
"The file will start downloading to your downloads folder automatically.",
|
||||
inAppDownloadCopied: "Link copied",
|
||||
"Once the page opens in your system browser, tap the download button again to save the file.",
|
||||
inAppDownloadCopyPageLink: "Copy page link",
|
||||
inAppDownloadCopied: "Page link copied",
|
||||
inAppDownloadCopyFail: "Could not copy the link, please copy it manually",
|
||||
};
|
||||
|
||||
@@ -269,14 +269,16 @@ export const idDict: Dict = {
|
||||
backToHome: "Kembali ke Beranda",
|
||||
inAppDownloadTitle: "Silakan buka di peramban sistem untuk mengunduh",
|
||||
inAppDownloadIntro:
|
||||
"Peramban dalam aplikasi saat ini tidak dapat mengunduh berkas. Salin tautan di bawah dan buka di peramban sistem — berkas akan langsung tersimpan.",
|
||||
"Peramban dalam aplikasi saat ini tidak dapat mengunduh berkas. Buka halaman ini di peramban sistem, lalu ketuk unduh lagi.",
|
||||
inAppDownloadIntroNamed:
|
||||
"{browser} tidak dapat mengunduh berkas secara langsung. Salin tautan di bawah dan buka di peramban sistem — berkas akan langsung tersimpan.",
|
||||
"{browser} tidak dapat mengunduh berkas secara langsung. Buka halaman ini di peramban sistem, lalu ketuk unduh lagi.",
|
||||
inAppDownloadStepCopy:
|
||||
'Ketuk "Salin tautan" di bawah (ini adalah URL unduhan langsung berkas).',
|
||||
'Buka menu di kanan atas dan pilih "Buka di peramban".',
|
||||
inAppDownloadStepOpen:
|
||||
"Buka peramban sistem (Safari, Chrome, dll.) dan tempel tautan ke bilah alamat.",
|
||||
inAppDownloadStepDownload: "Berkas akan otomatis terunduh ke folder Unduhan.",
|
||||
inAppDownloadCopied: "Tautan disalin",
|
||||
"Jika opsi itu tidak ada, ketuk “Salin tautan halaman” di bawah lalu buka di Safari, Chrome, dll.",
|
||||
inAppDownloadStepDownload:
|
||||
"Setelah halaman terbuka di peramban sistem, ketuk tombol unduh lagi untuk menyimpan berkas.",
|
||||
inAppDownloadCopyPageLink: "Salin tautan halaman",
|
||||
inAppDownloadCopied: "Tautan halaman disalin",
|
||||
inAppDownloadCopyFail: "Tidak dapat menyalin, silakan salin secara manual",
|
||||
};
|
||||
|
||||
@@ -270,14 +270,15 @@ export const jaDict: Dict = {
|
||||
backToHome: "ホームへ戻る",
|
||||
inAppDownloadTitle: "システムブラウザで開いてダウンロードしてください",
|
||||
inAppDownloadIntro:
|
||||
"現在のアプリ内ブラウザではファイルをダウンロードできません。下のリンクをコピーし、システムブラウザで開けば自動的にダウンロードされます。",
|
||||
"現在のアプリ内ブラウザはファイルをダウンロードできません。このページをシステムブラウザで開き、もう一度ダウンロードしてください。",
|
||||
inAppDownloadIntroNamed:
|
||||
"{browser} のアプリ内ブラウザではファイルをダウンロードできません。下のリンクをコピーし、システムブラウザで開けば自動的にダウンロードされます。",
|
||||
inAppDownloadStepCopy:
|
||||
"下の「リンクをコピー」をタップします(ファイルの直接ダウンロード URL です)。",
|
||||
"{browser} はファイルを直接ダウンロードできません。このページをシステムブラウザで開き、もう一度ダウンロードしてください。",
|
||||
inAppDownloadStepCopy: "右上のメニューを開き、「ブラウザで開く」を選びます。",
|
||||
inAppDownloadStepOpen:
|
||||
"システムブラウザ(Safari、Chrome など)を開き、アドレスバーにリンクを貼り付けます。",
|
||||
inAppDownloadStepDownload: "ファイルは自動的にダウンロード先に保存されます。",
|
||||
inAppDownloadCopied: "リンクをコピーしました",
|
||||
"該当の項目がなければ、下の「ページリンクをコピー」をタップし、Safari や Chrome で開いてください。",
|
||||
inAppDownloadStepDownload:
|
||||
"システムブラウザでページが開いたら、もう一度ダウンロードボタンをタップしてファイルを保存します。",
|
||||
inAppDownloadCopyPageLink: "ページリンクをコピー",
|
||||
inAppDownloadCopied: "ページリンクをコピーしました",
|
||||
inAppDownloadCopyFail: "コピーに失敗しました。手動でコピーしてください",
|
||||
};
|
||||
|
||||
@@ -265,14 +265,15 @@ export const koDict: Dict = {
|
||||
backToHome: "홈으로",
|
||||
inAppDownloadTitle: "시스템 브라우저에서 열어 다운로드하세요",
|
||||
inAppDownloadIntro:
|
||||
"현재 앱 내 브라우저로는 파일을 다운로드할 수 없습니다. 아래 링크를 복사해서 시스템 브라우저에서 열면 바로 저장됩니다.",
|
||||
"현재 앱 내 브라우저는 파일을 다운로드할 수 없습니다. 시스템 브라우저에서 이 페이지를 다시 열어 다운로드 버튼을 눌러 주세요.",
|
||||
inAppDownloadIntroNamed:
|
||||
"{browser} 앱 내 브라우저로는 파일을 다운로드할 수 없습니다. 아래 링크를 복사해서 시스템 브라우저에서 열면 바로 저장됩니다.",
|
||||
inAppDownloadStepCopy:
|
||||
'아래의 "링크 복사"를 누릅니다(파일 직접 다운로드 주소입니다).',
|
||||
"{browser}는 파일을 직접 다운로드할 수 없습니다. 시스템 브라우저에서 이 페이지를 다시 열어 다운로드 버튼을 눌러 주세요.",
|
||||
inAppDownloadStepCopy: '오른쪽 위 메뉴에서 "브라우저로 열기"를 선택하세요.',
|
||||
inAppDownloadStepOpen:
|
||||
"시스템 브라우저(Safari, Chrome 등)를 열고 주소창에 링크를 붙여 넣습니다.",
|
||||
inAppDownloadStepDownload: "파일이 자동으로 다운로드 폴더에 저장됩니다.",
|
||||
inAppDownloadCopied: "링크를 복사했습니다",
|
||||
"해당 옵션이 없다면 아래 “페이지 링크 복사”를 눌러 Safari나 Chrome 등에서 여세요.",
|
||||
inAppDownloadStepDownload:
|
||||
"시스템 브라우저에서 페이지가 열리면 다운로드 버튼을 다시 눌러 파일을 저장하세요.",
|
||||
inAppDownloadCopyPageLink: "페이지 링크 복사",
|
||||
inAppDownloadCopied: "페이지 링크가 복사되었습니다",
|
||||
inAppDownloadCopyFail: "복사하지 못했습니다. 직접 복사해 주세요",
|
||||
};
|
||||
|
||||
@@ -268,15 +268,16 @@ export const msDict: Dict = {
|
||||
backToHome: "Kembali ke Laman Utama",
|
||||
inAppDownloadTitle: "Sila buka dalam pelayar sistem untuk muat turun",
|
||||
inAppDownloadIntro:
|
||||
"Pelayar dalam aplikasi semasa tidak dapat memuat turun fail. Salin pautan di bawah dan buka dalam pelayar sistem — fail akan disimpan terus.",
|
||||
"Pelayar dalam aplikasi semasa tidak dapat memuat turun fail. Buka halaman ini dalam pelayar sistem, kemudian ketik muat turun semula.",
|
||||
inAppDownloadIntroNamed:
|
||||
"{browser} tidak dapat memuat turun fail secara langsung. Salin pautan di bawah dan buka dalam pelayar sistem — fail akan disimpan terus.",
|
||||
"{browser} tidak dapat memuat turun fail secara langsung. Buka halaman ini dalam pelayar sistem, kemudian ketik muat turun semula.",
|
||||
inAppDownloadStepCopy:
|
||||
'Ketik "Salin pautan" di bawah (ini adalah URL muat turun fail terus).',
|
||||
'Buka menu di atas kanan dan pilih "Buka dalam pelayar".',
|
||||
inAppDownloadStepOpen:
|
||||
"Buka pelayar sistem (Safari, Chrome, dsb.) dan tampal pautan ke bar alamat.",
|
||||
"Jika pilihan tersebut tiada, ketik “Salin pautan halaman” di bawah dan buka dalam Safari, Chrome, dll.",
|
||||
inAppDownloadStepDownload:
|
||||
"Fail akan dimuat turun secara automatik ke folder Muat Turun.",
|
||||
inAppDownloadCopied: "Pautan disalin",
|
||||
"Selepas halaman dibuka dalam pelayar sistem, ketik butang muat turun semula untuk menyimpan fail.",
|
||||
inAppDownloadCopyPageLink: "Salin pautan halaman",
|
||||
inAppDownloadCopied: "Pautan halaman disalin",
|
||||
inAppDownloadCopyFail: "Tidak dapat menyalin, sila salin secara manual",
|
||||
};
|
||||
|
||||
@@ -264,14 +264,16 @@ export const viDict: Dict = {
|
||||
backToHome: "Về trang chủ",
|
||||
inAppDownloadTitle: "Vui lòng mở bằng trình duyệt hệ thống để tải",
|
||||
inAppDownloadIntro:
|
||||
"Trình duyệt trong ứng dụng hiện tại không thể tải tệp. Sao chép liên kết bên dưới và mở trong trình duyệt hệ thống — tệp sẽ tự động tải về.",
|
||||
"Trình duyệt trong ứng dụng hiện tại không thể tải tệp. Hãy mở trang này trong trình duyệt hệ thống rồi nhấn tải lại.",
|
||||
inAppDownloadIntroNamed:
|
||||
"{browser} không thể tải tệp trực tiếp. Sao chép liên kết bên dưới và mở trong trình duyệt hệ thống — tệp sẽ tự động tải về.",
|
||||
"{browser} không thể tải tệp trực tiếp. Hãy mở trang này trong trình duyệt hệ thống rồi nhấn tải lại.",
|
||||
inAppDownloadStepCopy:
|
||||
'Nhấn "Sao chép liên kết" bên dưới (đây là URL tải tệp trực tiếp).',
|
||||
'Mở menu ở góc trên bên phải và chọn "Mở trong trình duyệt".',
|
||||
inAppDownloadStepOpen:
|
||||
"Mở trình duyệt hệ thống (Safari, Chrome…) và dán liên kết vào thanh địa chỉ.",
|
||||
inAppDownloadStepDownload: "Tệp sẽ tự động tải xuống thư mục Tải về.",
|
||||
inAppDownloadCopied: "Đã sao chép liên kết",
|
||||
"Nếu không có lựa chọn đó, nhấn “Sao chép liên kết trang” bên dưới rồi mở trong Safari, Chrome,…",
|
||||
inAppDownloadStepDownload:
|
||||
"Khi trang được mở trong trình duyệt hệ thống, hãy nhấn lại nút tải để lưu tệp.",
|
||||
inAppDownloadCopyPageLink: "Sao chép liên kết trang",
|
||||
inAppDownloadCopied: "Đã sao chép liên kết trang",
|
||||
inAppDownloadCopyFail: "Không sao chép được, vui lòng tự sao chép",
|
||||
};
|
||||
|
||||
@@ -247,13 +247,15 @@ export const zhDict: Dict = {
|
||||
backToHome: "返回首页",
|
||||
inAppDownloadTitle: "请使用系统浏览器打开后下载",
|
||||
inAppDownloadIntro:
|
||||
"当前内置浏览器无法下载文件。复制下方链接,到系统浏览器打开即可直接下载。",
|
||||
"当前内置浏览器无法下载文件。请在系统浏览器中打开本页面,然后再次点击下载按钮。",
|
||||
inAppDownloadIntroNamed:
|
||||
"{browser} 内置浏览器无法下载文件。复制下方链接,到系统浏览器打开即可直接下载。",
|
||||
inAppDownloadStepCopy: "点击下方「复制链接」(这是文件的直接下载地址)。",
|
||||
"{browser} 内置浏览器无法下载文件。请在系统浏览器中打开本页面,然后再次点击下载按钮。",
|
||||
inAppDownloadStepCopy: "点击右上角菜单,选择「在默认浏览器中打开」。",
|
||||
inAppDownloadStepOpen:
|
||||
"打开系统浏览器(Safari、Chrome 等),把链接粘贴到地址栏。",
|
||||
inAppDownloadStepDownload: "文件会自动开始下载到下载文件夹。",
|
||||
inAppDownloadCopied: "链接已复制",
|
||||
"如果没有该选项,可点击下方「复制页面链接」,再到 Safari、Chrome 等浏览器中打开。",
|
||||
inAppDownloadStepDownload:
|
||||
"系统浏览器打开页面后,再次点击下载按钮即可把文件保存到下载文件夹。",
|
||||
inAppDownloadCopyPageLink: "复制页面链接",
|
||||
inAppDownloadCopied: "页面链接已复制",
|
||||
inAppDownloadCopyFail: "复制失败,请手动复制",
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user