Update localization files + references (#4556)

* Initial plan

* Add localization support to NameChangeModal component

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Add NameChangeModal translations to English language file

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* fix(i18n): fix localization keys

* chore(test): add i18n test

* chore(i18n): update translation script

* chore(i18n): reorgnize translation keys and update components

* chore: fix linting warnings

* chore(i18n): update all the language files

* feat(i18n): add last live ago i18n key

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
This commit is contained in:
Copilot
2025-09-15 19:27:56 -07:00
committed by GitHub
co-authored by gabek copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Gabe Kangas
parent 401b5897e2
commit 1cf923a5af
46 changed files with 6053 additions and 4639 deletions
-1
View File
@@ -52,7 +52,6 @@
"@babel/preset-react", "@babel/preset-react",
"@babel/core", "@babel/core",
"i18next-scanner", "i18next-scanner",
"@types/chart.js",
"@types/video.js", "@types/video.js",
"@testing-library/jest-dom", "@testing-library/jest-dom",
"@testing-library/react", "@testing-library/react",
+15 -17
View File
@@ -4,6 +4,7 @@ import Linkify from 'react-linkify';
import { SortOrder, TablePaginationConfig } from 'antd/lib/table/interface'; import { SortOrder, TablePaginationConfig } from 'antd/lib/table/interface';
import { format } from 'date-fns'; import { format } from 'date-fns';
import { useTranslation } from 'next-export-i18n'; import { useTranslation } from 'next-export-i18n';
import { Localization } from '../../types/localization';
const { Title } = Typography; const { Title } = Typography;
@@ -19,10 +20,6 @@ function renderColumnLevel(text, entry) {
return <Tag color={color}>{text}</Tag>; return <Tag color={color}>{text}</Tag>;
} }
function renderMessage(text) {
return <Linkify>{text}</Linkify>;
}
export type LogTableProps = { export type LogTableProps = {
logs: object[]; logs: object[];
initialPageSize: number; initialPageSize: number;
@@ -42,49 +39,50 @@ export const LogTable: FC<LogTableProps> = ({ logs, initialPageSize }) => {
const columns = [ const columns = [
{ {
title: t('Level'), title: t(Localization.Admin.LogTable.level),
dataIndex: 'level', dataIndex: 'level',
key: 'level', key: 'level',
filters: [ filters: [
{ {
text: t('Info'), text: t(Localization.Admin.LogTable.info),
value: 'info', value: 'info',
}, },
{ {
text: t('Warning'), text: t(Localization.Admin.LogTable.warning),
value: 'warning', value: 'warning',
}, },
{ {
text: t('Error'), text: t(Localization.Admin.LogTable.error),
value: 'Error', value: 'error',
}, },
], ],
onFilter: (level, row) => row.level.indexOf(level) === 0, onFilter: (level, row) => row.level === level,
render: renderColumnLevel, render: renderColumnLevel,
}, },
{ {
title: t('Timestamp'), title: t(Localization.Admin.LogTable.timestamp),
dataIndex: 'time', dataIndex: 'time',
key: 'time', key: 'time',
render: timestamp => { render: (timestamp: Date) => {
const dateObject = new Date(timestamp); const dateObject = new Date(timestamp);
return format(dateObject, 'pp P'); return format(dateObject, 'p P');
}, },
sorter: (a, b) => new Date(a.time).getTime() - new Date(b.time).getTime(), sorter: (a: any, b: any) => new Date(a.time).getTime() - new Date(b.time).getTime(),
sortDirections: ['descend', 'ascend'] as SortOrder[], sortDirections: ['descend', 'ascend'] as SortOrder[],
defaultSortOrder: 'descend' as SortOrder, defaultSortOrder: 'descend' as SortOrder,
}, },
{ {
title: t('Message'), title: t(Localization.Admin.LogTable.message),
dataIndex: 'message', dataIndex: 'message',
key: 'message', key: 'message',
render: renderMessage, render: (message: string) => <Linkify>{message}</Linkify>,
}, },
]; ];
return ( return (
<div className="logs-section"> <div className="logs-section">
<Title>{t('Logs')}</Title> <Title>{t(Localization.Admin.LogTable.logs)}</Title>
<Table <Table
size="middle" size="middle"
dataSource={logs} dataSource={logs}
+5 -3
View File
@@ -5,6 +5,7 @@ import { Collapse, Typography, Skeleton } from 'antd';
import { format } from 'date-fns'; import { format } from 'date-fns';
import { useTranslation } from 'next-export-i18n'; import { useTranslation } from 'next-export-i18n';
import { Localization } from '../../types/localization';
import { fetchExternalData } from '../../utils/apis'; import { fetchExternalData } from '../../utils/apis';
const { Panel } = Collapse; const { Panel } = Collapse;
@@ -38,7 +39,7 @@ const ArticleItem: FC<ArticleProps> = ({
<p className="timestamp"> <p className="timestamp">
{dateString} ( {dateString} (
<Link href={`${OWNCAST_BASE_URL}${url}`} target="_blank" rel="noopener noreferrer"> <Link href={`${OWNCAST_BASE_URL}${url}`} target="_blank" rel="noopener noreferrer">
{t('Link')} {t(Localization.Admin.NewsFeed.link)}
</Link> </Link>
) )
</p> </p>
@@ -72,11 +73,12 @@ export const NewsFeed = () => {
}, []); }, []);
const loadingSpinner = loading ? <Skeleton loading active /> : null; const loadingSpinner = loading ? <Skeleton loading active /> : null;
const noNews = !loading && feed.length === 0 ? <div>{t('No news.')}</div> : null; const noNews =
!loading && feed.length === 0 ? <div>{t(Localization.Admin.NewsFeed.noNews)}</div> : null;
return ( return (
<section className="news-feed form-module"> <section className="news-feed form-module">
<Title level={2}>{t('News & Updates from Owncast')}</Title> <Title level={2}>{t(Localization.Admin.NewsFeed.title)}</Title>
{loadingSpinner} {loadingSpinner}
{feed.map(item => ( {feed.map(item => (
<ArticleItem {...item} key={item.url} defaultOpen={feed.length === 1} /> <ArticleItem {...item} key={item.url} defaultOpen={feed.length === 1} />
@@ -1,10 +1,13 @@
import React, { CSSProperties, FC, useState } from 'react'; import React, { CSSProperties, FC, useState } from 'react';
import { useRecoilValue } from 'recoil'; import { useRecoilValue } from 'recoil';
import { Input, Button, Select, Form } from 'antd'; import { Input, Button, Select, Form } from 'antd';
import { useTranslation } from 'next-export-i18n';
import { MessageType } from '../../../interfaces/socket-events'; import { MessageType } from '../../../interfaces/socket-events';
import WebsocketService from '../../../services/websocket-service'; import WebsocketService from '../../../services/websocket-service';
import { websocketServiceAtom, currentUserAtom } from '../../stores/ClientConfigStore'; import { websocketServiceAtom, currentUserAtom } from '../../stores/ClientConfigStore';
import { validateDisplayName } from '../../../utils/displayNameValidation'; import { validateDisplayName } from '../../../utils/displayNameValidation';
import { Translation } from '../../ui/Translation/Translation';
import { Localization } from '../../../types/localization';
import styles from './NameChangeModal.module.scss'; import styles from './NameChangeModal.module.scss';
const { Option } = Select; const { Option } = Select;
@@ -28,6 +31,7 @@ type NameChangeModalProps = {
}; };
export const NameChangeModal: FC<NameChangeModalProps> = ({ closeModal }) => { export const NameChangeModal: FC<NameChangeModalProps> = ({ closeModal }) => {
const { t } = useTranslation();
const currentUser = useRecoilValue(currentUserAtom); const currentUser = useRecoilValue(currentUserAtom);
const websocketService = useRecoilValue<WebsocketService>(websocketServiceAtom); const websocketService = useRecoilValue<WebsocketService>(websocketServiceAtom);
const [newName, setNewName] = useState<string>(currentUser?.displayName || ''); const [newName, setNewName] = useState<string>(currentUser?.displayName || '');
@@ -70,11 +74,22 @@ export const NameChangeModal: FC<NameChangeModalProps> = ({ closeModal }) => {
websocketService.send(colorChange); websocketService.send(colorChange);
}; };
const showCount = info => (info.count > characterLimit ? 'Over limit' : ''); const showCount = info =>
info.count > characterLimit ? (
<Translation
translationKey={Localization.Frontend.NameChangeModal.overLimit}
defaultText="Over limit"
/>
) : (
''
);
const maxColor = 8; // 0...n const maxColor = 8; // 0...n
const colorOptions = [...Array(maxColor)].map((_, i) => i); const colorOptions = [...Array(maxColor)].map((_, i) => i);
const placeholderText =
t(Localization.Frontend.NameChangeModal.placeholder) || 'Your chat display name';
const validation = validateDisplayName(newName, displayName, characterLimit); const validation = validateDisplayName(newName, displayName, characterLimit);
const saveButton = ( const saveButton = (
@@ -84,14 +99,20 @@ export const NameChangeModal: FC<NameChangeModalProps> = ({ closeModal }) => {
onClick={handleNameChange} onClick={handleNameChange}
disabled={!saveEnabled()} disabled={!saveEnabled()}
> >
Change name <Translation
translationKey={Localization.Frontend.NameChangeModal.buttonText}
defaultText="Change name"
/>
</Button> </Button>
); );
return ( return (
<div> <div>
<div id="owncast-name-change-description-text"> <div id="owncast-name-change-description-text">
Your chat display name is what people see when you send chat messages. <Translation
translationKey={Localization.Frontend.NameChangeModal.description}
defaultText="Your chat display name is what people see when you send chat messages."
/>
</div> </div>
<Form onSubmitCapture={handleNameChange} className={styles.form}> <Form onSubmitCapture={handleNameChange} className={styles.form}>
<Input.Search <Input.Search
@@ -99,8 +120,8 @@ export const NameChangeModal: FC<NameChangeModalProps> = ({ closeModal }) => {
id="name-change-field" id="name-change-field"
value={newName} value={newName}
onChange={e => setNewName(e.target.value)} onChange={e => setNewName(e.target.value)}
placeholder="Your chat display name" placeholder={placeholderText}
aria-label="Your chat display name" aria-label={placeholderText}
showCount={{ formatter: showCount }} showCount={{ formatter: showCount }}
defaultValue={displayName} defaultValue={displayName}
className={styles.inputGroup} className={styles.inputGroup}
@@ -109,7 +130,15 @@ export const NameChangeModal: FC<NameChangeModalProps> = ({ closeModal }) => {
<div className={styles.error}>{validation.errorMessage}</div> <div className={styles.error}>{validation.errorMessage}</div>
)} )}
</Form> </Form>
<Form.Item label="Your Color" className={styles.colorChange}> <Form.Item
label={
<Translation
translationKey={Localization.Frontend.NameChangeModal.colorLabel}
defaultText="Your Color"
/>
}
className={styles.colorChange}
>
<Select <Select
style={{ width: 120 }} style={{ width: 120 }}
onChange={handleColorChange} onChange={handleColorChange}
@@ -124,8 +153,10 @@ export const NameChangeModal: FC<NameChangeModalProps> = ({ closeModal }) => {
</Select> </Select>
</Form.Item> </Form.Item>
<div id="owncast-name-change-auth-info-text"> <div id="owncast-name-change-auth-info-text">
You can also authenticate an IndieAuth or Fediverse account via the &quot;Authenticate&quot; <Translation
menu. translationKey={Localization.Frontend.NameChangeModal.authInfo}
defaultText='You can also authenticate an IndieAuth or Fediverse account via the "Authenticate" menu.'
/>
</div> </div>
</div> </div>
); );
+3 -3
View File
@@ -22,13 +22,13 @@ export const Footer: FC = () => {
</span> </span>
<span className={styles.links}> <span className={styles.links}>
<a href="https://owncast.online/docs" target="_blank" rel="noreferrer"> <a href="https://owncast.online/docs" target="_blank" rel="noreferrer">
{t('Documentation')} {t(Localization.Frontend.Footer.documentation)}
</a> </a>
<a href="https://owncast.online/help" target="_blank" rel="noreferrer"> <a href="https://owncast.online/help" target="_blank" rel="noreferrer">
{t('Contribute')} {t(Localization.Frontend.Footer.contribute)}
</a> </a>
<a href="https://github.com/owncast/owncast" target="_blank" rel="noreferrer"> <a href="https://github.com/owncast/owncast" target="_blank" rel="noreferrer">
{t('Source')} {t(Localization.Frontend.Footer.source)}
</a> </a>
</span> </span>
</footer> </footer>
+7 -6
View File
@@ -4,6 +4,7 @@ import cn from 'classnames';
import dynamic from 'next/dynamic'; import dynamic from 'next/dynamic';
import Link from 'next/link'; import Link from 'next/link';
import { useTranslation } from 'next-export-i18n'; import { useTranslation } from 'next-export-i18n';
import { Localization } from '../../../types/localization';
import styles from './Header.module.scss'; import styles from './Header.module.scss';
// Lazy loaded components // Lazy loaded components
@@ -34,18 +35,18 @@ export const Header: FC<HeaderComponentProps> = ({ name, chatAvailable, chatDisa
<header className={cn([`${styles.header}`], 'global-header')}> <header className={cn([`${styles.header}`], 'global-header')}>
{online ? ( {online ? (
<Link href="#player" className={styles.skipLink}> <Link href="#player" className={styles.skipLink}>
{t('Skip to player')} {t(Localization.Frontend.Header.skipToPlayer)}
</Link> </Link>
) : ( ) : (
<Link href="#offline-message" className={styles.skipLink}> <Link href="#offline-message" className={styles.skipLink}>
{t('Skip to offline message')} {t(Localization.Frontend.Header.skipToOfflineMessage)}
</Link> </Link>
)} )}
<Link href="#skip-to-content" className={styles.skipLink}> <Link href="#skip-to-content" className={styles.skipLink}>
{t('Skip to page content')} {t(Localization.Frontend.Header.skipToContent)}
</Link> </Link>
<Link href="#footer" className={styles.skipLink}> <Link href="#footer" className={styles.skipLink}>
{t('Skip to footer')} {t(Localization.Frontend.Header.skipToFooter)}
</Link> </Link>
<div className={styles.logo}> <div className={styles.logo}>
<div id="header-logo" className={styles.logoImage}> <div id="header-logo" className={styles.logoImage}>
@@ -61,11 +62,11 @@ export const Header: FC<HeaderComponentProps> = ({ name, chatAvailable, chatDisa
{!chatAvailable && !chatDisabled && ( {!chatAvailable && !chatDisabled && (
<Tooltip <Tooltip
overlayClassName={styles.toolTip} overlayClassName={styles.toolTip}
title={t('Chat will be available when the stream is live.')} title={t(Localization.Frontend.Header.chatWillBeAvailable)}
placement="left" placement="left"
> >
<span className={styles.chatOfflineText} id="owncast-chat-offline-text"> <span className={styles.chatOfflineText} id="owncast-chat-offline-text">
{t('Chat is offline')} {t(Localization.Frontend.Header.chatOffline)}
</span> </span>
</Tooltip> </Tooltip>
)} )}
@@ -112,7 +112,7 @@ export const OfflineBanner: FC<OfflineBannerProps> = ({
<div className={styles.lastLiveDate}> <div className={styles.lastLiveDate}>
<ClockCircleOutlined className={styles.clockIcon} /> <ClockCircleOutlined className={styles.clockIcon} />
<span id="owncast-offline-last-live-text"> <span id="owncast-offline-last-live-text">
{`${t('Last live ago', { timeAgo: formatDistanceToNow(new Date(lastLive)) })}`} {`${t(Localization.Frontend.lastLiveAgo, { timeAgo: formatDistanceToNow(new Date(lastLive)) })}`}
</span> </span>
</div> </div>
)} )}
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "زيادة جمهورك عن طريق الظهور في <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast directory</strong></a>. هذه خدمة خارجية يديرها مشروع Owncast . <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">تعرف على</a> أكثر.", "directoryDescription": "زيادة جمهورك عن طريق الظهور في <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast directory</strong></a>. هذه خدمة خارجية يديرها مشروع Owncast . <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">تعرف على</a> أكثر.",
"offlineMessageDescription": "يتم عرض الرسالة دون اتصال على زوار الصفحة الخاصة بك عندما لا تذيل. يتم دعم Markdown.", "offlineMessageDescription": "يتم عرض الرسالة دون اتصال على زوار الصفحة الخاصة بك عندما لا تذيل. يتم دعم Markdown.",
"serverUrlRequiredForDirectory": "يجب عليك تعيين رابط الخادم <strong></strong> أعلاه لتمكين الدليل." "serverUrlRequiredForDirectory": "يجب عليك تعيين رابط الخادم <strong></strong> أعلاه لتمكين الدليل."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>مفقود الترجمة Admin.emojiPageDescription: الرجاء الإبلاغ</em></strong>", "emojiPageDescription": "<strong><em>مفقود الترجمة Admin.emojiPageDescription: الرجاء الإبلاغ</em></strong>",
"emojiUploadBulkGuide": "<strong><em>مفقود الترجمة Admin.emojiUploadBulkGuide: الرجاء الإبلاغ</em></strong>", "emojiUploadBulkGuide": "<strong><em>مفقود الترجمة Admin.emojiUploadBulkGuide: الرجاء الإبلاغ</em></strong>",
"emojis": "<strong><em>مفقودة Admin.emojis: الرجاء الإبلاغ</em></strong>", "emojis": "<strong><em>مفقودة Admin.emojis: الرجاء الإبلاغ</em></strong>",
"uploadNewEmoji": "<strong><em>مفقودة Admin.uploadNewEmoji: الرجاء الإبلاغ</em></strong>" "uploadNewEmoji": "<strong><em>مفقودة Admin.uploadNewEmoji: الرجاء الإبلاغ</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "احضر المشرفين للمساعدة في الحفاظ على ترتيب محادثتك.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "مدعوم من <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "مدعوم من <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "السماح", "allowButton": "السماح",
@@ -44,6 +96,7 @@
"deniedTitle": "تم حظر الإشعارات على جهازك", "deniedTitle": "تم حظر الإشعارات على جهازك",
"enabledDescription": "لتعطيل دفع الإشعارات من {{hostname}} الوصول إلى أذونات المتصفح لهذا الموقع وإيقاف الإشعارات. <a href='https://owncast.online/docs/notifications'>اعرف المزيد.</a>", "enabledDescription": "لتعطيل دفع الإشعارات من {{hostname}} الوصول إلى أذونات المتصفح لهذا الموقع وإيقاف الإشعارات. <a href='https://owncast.online/docs/notifications'>اعرف المزيد.</a>",
"enabledTitle": "الإشعارات مفعلة", "enabledTitle": "الإشعارات مفعلة",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "خطأ في إشعار المتصفح", "errorTitle": "خطأ في إشعار المتصفح",
"iosAddButton": "إضافة", "iosAddButton": "إضافة",
"iosAddToHomeScreen": "إضافة إلى الشاشة الرئيسية", "iosAddToHomeScreen": "إضافة إلى الشاشة الرئيسية",
@@ -60,120 +113,39 @@
"unsupported": "إشعارات المتصفح غير مدعومة في المتصفح الخاص بك.", "unsupported": "إشعارات المتصفح غير مدعومة في المتصفح الخاص بك.",
"unsupportedLocal": "إشعارات المتصفح غير مدعومة للخوادم المحلية." "unsupportedLocal": "إشعارات المتصفح غير مدعومة للخوادم المحلية."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>الترجمة المفقودة Frontend.chatOffline: الرجاء الإبلاغ</em></strong>", "chatOffline": "<strong><em>الترجمة المفقودة Frontend.chatOffline: الرجاء الإبلاغ</em></strong>",
"componentError": "خطأ: {{message}}", "componentError": "خطأ: {{message}}",
"helloWorld": "<strong><em>الترجمة المفقودة Frontend.helloWorldd: يرجى الإبلاغ</em></strong>", "helloWorld": "<strong><em>الترجمة المفقودة Frontend.helloWorldd: يرجى الإبلاغ</em></strong>",
"notificationMessage": "<strong><em>الترجمة المفقودة Frontend.notificationMessage: الرجاء الإبلاغ</em></strong>",
"offlineBasic": "هذا البث غير متصل. تحقق قريباً!", "offlineBasic": "هذا البث غير متصل. تحقق قريباً!",
"offlineFediverseOnly": "هذا البث غير متصل. <span class='follow-link'>تابع</span> {{fediverseAccount}} على فيديفيرس لرؤية المرة القادمة التي يذهب فيها {{streamer}} للحياة.", "offlineFediverseOnly": "هذا البث غير متصل. <span class='follow-link'>تابع</span> {{fediverseAccount}} على فيديفيرس لرؤية المرة القادمة التي يذهب فيها {{streamer}} للحياة.",
"offlineNotifyAndFediverse": "هذا البث غير متصل بالإنترنت. يمكنك أن تتلقى <span class='notify-link'>إشعارًا</span> في المرة القادمة {{streamer}} أو <span class='follow-link'>متابعة</span> {{fediverseAccount}} على موقع Fediverse.", "offlineNotifyAndFediverse": "هذا البث غير متصل بالإنترنت. يمكنك أن تتلقى <span class='notify-link'>إشعارًا</span> في المرة القادمة {{streamer}} أو <span class='follow-link'>متابعة</span> {{fediverseAccount}} على موقع Fediverse.",
"offlineNotifyOnly": "هذا البث غير متصل بالإنترنت. <span class='notify-link'>كن على علم</span> في المرة القادمة التي يتم فيها البث المباشر {{streamer}} ." "offlineNotifyOnly": "هذا البث غير متصل بالإنترنت. <span class='notify-link'>كن على علم</span> في المرة القادمة التي يتم فيها البث المباشر {{streamer}} ."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "آخر بث مباشر {{timeAgo}}",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "تعرف على المزيد عن الاعتدال في الدردشة هنا.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>الترجمة المفقودة Testing.itemCount: الرجاء الإبلاغ</em></strong>", "itemCount": "<strong><em>الترجمة المفقودة Testing.itemCount: الرجاء الإبلاغ</em></strong>",
"messageCount": "<strong><em>إختبار الترجمة مفقودة: الرجاء الإبلاغ</em></strong>", "messageCount": "<strong><em>إختبار الترجمة مفقودة: الرجاء الإبلاغ</em></strong>",
"noPluralKey": "<strong><em>الترجمة المفقودة Testing.noPluralKey: الرجاء الإبلاغ</em></strong>", "noPluralKey": "<strong><em>الترجمة المفقودة Testing.noPluralKey: الرجاء الإبلاغ</em></strong>",
"simpleKey": "<strong><em>اختبار.simpleKey: من فضلك أبلغ عن</em></strong>" "simpleKey": "<strong><em>اختبار.simpleKey: من فضلك أبلغ عن</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "هذا البث غير متصل. تحقق قريباً!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "আপনার দর্শকদের <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast ডিরেক্টরিতে</strong></a> হাজির হয়ে বৃদ্ধি করুন। এটি Owncast প্রকল্প দ্বারা পরিচালিত একটি বাহ্যিক পরিষেবা। <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">আরও জানুন</a>।", "directoryDescription": "আপনার দর্শকদের <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast ডিরেক্টরিতে</strong></a> হাজির হয়ে বৃদ্ধি করুন। এটি Owncast প্রকল্প দ্বারা পরিচালিত একটি বাহ্যিক পরিষেবা। <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">আরও জানুন</a>।",
"offlineMessageDescription": "যখন আপনি সম্প্রচার করছেন না তখন আপনার পৃষ্ঠার দর্শকদের জন্য অফলাইন বার্তা দেখানো হয়। মার্কডাউন সমর্থিত।", "offlineMessageDescription": "যখন আপনি সম্প্রচার করছেন না তখন আপনার পৃষ্ঠার দর্শকদের জন্য অফলাইন বার্তা দেখানো হয়। মার্কডাউন সমর্থিত।",
"serverUrlRequiredForDirectory": "ডিরেক্টরি সক্ষম করার জন্য উপরের <strong>সার্ভার ইউআরএল</strong> আপনার সেট করতে হবে।" "serverUrlRequiredForDirectory": "ডিরেক্টরি সক্ষম করার জন্য উপরের <strong>সার্ভার ইউআরএল</strong> আপনার সেট করতে হবে।"
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>অনুবাদ অনুপস্থিত Admin.emojiPageDescription: অনুগ্রহ করে প্রতিবেদন করুন</em></strong>", "emojiPageDescription": "<strong><em>অনুবাদ অনুপস্থিত Admin.emojiPageDescription: অনুগ্রহ করে প্রতিবেদন করুন</em></strong>",
"emojiUploadBulkGuide": "<strong><em>অনুবাদ অনুপস্থিত Admin.emojiUploadBulkGuide: অনুগ্রহ করে প্রতিবেদন করুন</em></strong>", "emojiUploadBulkGuide": "<strong><em>অনুবাদ অনুপস্থিত Admin.emojiUploadBulkGuide: অনুগ্রহ করে প্রতিবেদন করুন</em></strong>",
"emojis": "<strong><em>অনুবাদ অনুপস্থিত Admin.emojis: অনুগ্রহ করে প্রতিবেদন করুন</em></strong>", "emojis": "<strong><em>অনুবাদ অনুপস্থিত Admin.emojis: অনুগ্রহ করে প্রতিবেদন করুন</em></strong>",
"uploadNewEmoji": "<strong><em>অনুবাদ অনুপস্থিত Admin.uploadNewEmoji: অনুগ্রহ করে প্রতিবেদন করুন</em></strong>" "uploadNewEmoji": "<strong><em>অনুবাদ অনুপস্থিত Admin.uploadNewEmoji: অনুগ্রহ করে প্রতিবেদন করুন</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "আপনার চ্যাটটি সুসংগঠিত রাখতে সহায়তার জন্য প্রশাসক আনুন।",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast v{{versionNumber}}</a> দ্বারা পরিচালিত" "poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast v{{versionNumber}}</a> দ্বারা পরিচালিত"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "অনুমতি দিন", "allowButton": "অনুমতি দিন",
@@ -44,6 +96,7 @@
"deniedTitle": "আপনার ডিভাইসে বিজ্ঞপ্তিগুলি ব্লক করা হয়েছে", "deniedTitle": "আপনার ডিভাইসে বিজ্ঞপ্তিগুলি ব্লক করা হয়েছে",
"enabledDescription": "{{hostname}} থেকে পুশ বিজ্ঞপ্তি অক্ষম করতে, এই সাইটের জন্য আপনার ব্রাউজারের অনুমতিতে প্রবেশ করুন এবং বিজ্ঞপ্তিগুলি বন্ধ করুন। <a href='https://owncast.online/docs/notifications'>আরও জানুন।</a>", "enabledDescription": "{{hostname}} থেকে পুশ বিজ্ঞপ্তি অক্ষম করতে, এই সাইটের জন্য আপনার ব্রাউজারের অনুমতিতে প্রবেশ করুন এবং বিজ্ঞপ্তিগুলি বন্ধ করুন। <a href='https://owncast.online/docs/notifications'>আরও জানুন।</a>",
"enabledTitle": "বিজ্ঞপ্তিগুলি সক্ষম করা হয়েছে", "enabledTitle": "বিজ্ঞপ্তিগুলি সক্ষম করা হয়েছে",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "ব্রাউজার বিজ্ঞপ্তি ত্রুটি", "errorTitle": "ব্রাউজার বিজ্ঞপ্তি ত্রুটি",
"iosAddButton": "যোগ করুন", "iosAddButton": "যোগ করুন",
"iosAddToHomeScreen": "হোম স্ক্রীনে যোগ করুন", "iosAddToHomeScreen": "হোম স্ক্রীনে যোগ করুন",
@@ -60,120 +113,39 @@
"unsupported": "আপনার ব্রাউজারে ব্রাউজার বিজ্ঞপ্তি সমর্থিত নয়।", "unsupported": "আপনার ব্রাউজারে ব্রাউজার বিজ্ঞপ্তি সমর্থিত নয়।",
"unsupportedLocal": "লোকাল সার্ভারের জন্য ব্রাউজার বিজ্ঞপ্তি সমর্থিত নয়।" "unsupportedLocal": "লোকাল সার্ভারের জন্য ব্রাউজার বিজ্ঞপ্তি সমর্থিত নয়।"
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>অনুপস্থিত অনুবাদ Frontend.chatOffline: দয়া করে রিপোর্ট করুন</em></strong>", "chatOffline": "<strong><em>অনুপস্থিত অনুবাদ Frontend.chatOffline: দয়া করে রিপোর্ট করুন</em></strong>",
"componentError": "ত্রুটি: {{message}}", "componentError": "ত্রুটি: {{message}}",
"helloWorld": "<strong><em>অনুপস্থিত অনুবাদ Frontend.helloWorld: দয়া করে রিপোর্ট করুন</em></strong>", "helloWorld": "<strong><em>অনুপস্থিত অনুবাদ Frontend.helloWorld: দয়া করে রিপোর্ট করুন</em></strong>",
"notificationMessage": "<strong><em>অনুপস্থিত অনুবাদ Frontend.notificationMessage: দয়া করে রিপোর্ট করুন</em></strong>",
"offlineBasic": "এই স্ট্রিম অফলাইন। কিছুক্ষণ পরে চেক করুন!", "offlineBasic": "এই স্ট্রিম অফলাইন। কিছুক্ষণ পরে চেক করুন!",
"offlineFediverseOnly": "এই স্ট্রিম অফলাইন। <span class='follow-link'>ফলো করুন</span> {{fediverseAccount}} কে Fediverse এ পরবর্তী সময়ের জন্য যখন {{streamer}} লাইভ হবে তা দেখার জন্য।", "offlineFediverseOnly": "এই স্ট্রিম অফলাইন। <span class='follow-link'>ফলো করুন</span> {{fediverseAccount}} কে Fediverse এ পরবর্তী সময়ের জন্য যখন {{streamer}} লাইভ হবে তা দেখার জন্য।",
"offlineNotifyAndFediverse": "এই স্ট্রিম অফলাইন। আপনি <span class='notify-link'>বিজ্ঞপ্তি গ্রহণ করতে পারবেন</span> পরবর্তী সময় {{streamer}} লাইভ হলে অথবা <span class='follow-link'>ফলো করতে পারবেন</span> {{fediverseAccount}} কে Fediverse এ।", "offlineNotifyAndFediverse": "এই স্ট্রিম অফলাইন। আপনি <span class='notify-link'>বিজ্ঞপ্তি গ্রহণ করতে পারবেন</span> পরবর্তী সময় {{streamer}} লাইভ হলে অথবা <span class='follow-link'>ফলো করতে পারবেন</span> {{fediverseAccount}} কে Fediverse এ।",
"offlineNotifyOnly": "এই স্ট্রিম অফলাইন। <span class='notify-link'>বিজ্ঞপ্তি পান</span> পরবর্তী সময় {{streamer}} লাইভ হলে।" "offlineNotifyOnly": "এই স্ট্রিম অফলাইন। <span class='notify-link'>বিজ্ঞপ্তি পান</span> পরবর্তী সময় {{streamer}} লাইভ হলে।"
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "গত {{timeAgo}} এর শেষ লাইভ",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "এখানে চ্যাট মডারেশন সম্পর্কে আরও জানুন।",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>অনুপস্থিত অনুবাদ Testing.itemCount: দয়া করে রিপোর্ট করুন</em></strong>", "itemCount": "<strong><em>অনুপস্থিত অনুবাদ Testing.itemCount: দয়া করে রিপোর্ট করুন</em></strong>",
"messageCount": "<strong><em>অনুপস্থিত অনুবাদ Testing.messageCount: দয়া করে রিপোর্ট করুন</em></strong>", "messageCount": "<strong><em>অনুপস্থিত অনুবাদ Testing.messageCount: দয়া করে রিপোর্ট করুন</em></strong>",
"noPluralKey": "<strong><em>অনুপস্থিত অনুবাদ Testing.noPluralKey: দয়া করে রিপোর্ট করুন</em></strong>", "noPluralKey": "<strong><em>অনুপস্থিত অনুবাদ Testing.noPluralKey: দয়া করে রিপোর্ট করুন</em></strong>",
"simpleKey": "<strong><em>অনুপস্থিত অনুবাদ Testing.simpleKey: দয়া করে রিপোর্ট করুন</em></strong>" "simpleKey": "<strong><em>অনুপস্থিত অনুবাদ Testing.simpleKey: দয়া করে রিপোর্ট করুন</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "এই স্ট্রিম অফলাইনে রয়েছে। শীঘ্রই পুনরায় পরীক্ষা করুন!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Füge deine Owncast-Instanz dem Fediverse hinzu",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Erhöhe dein Publikum, indem es im <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Eigenes Verzeichnis</strong></a>erscheint. Dies ist ein externer Dienst, der vom Owncast Projekt ausgeführt wird. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Erfahre mehr</a>.", "directoryDescription": "Erhöhe dein Publikum, indem es im <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Eigenes Verzeichnis</strong></a>erscheint. Dies ist ein externer Dienst, der vom Owncast Projekt ausgeführt wird. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Erfahre mehr</a>.",
"offlineMessageDescription": "Die Offline-Nachricht wird Ihren Seitenbesuchern angezeigt, wenn Sie nicht streamen. Markdown wird unterstützt.", "offlineMessageDescription": "Die Offline-Nachricht wird Ihren Seitenbesuchern angezeigt, wenn Sie nicht streamen. Markdown wird unterstützt.",
"serverUrlRequiredForDirectory": "Sie müssen Ihre <strong>Server URL</strong> oben setzen, um das Verzeichnis zu aktivieren." "serverUrlRequiredForDirectory": "Sie müssen Ihre <strong>Server URL</strong> oben setzen, um das Verzeichnis zu aktivieren."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Festplatte",
"memory": "Arbeitsspeicher",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Bitte warten",
"title": "Hardware Informationen",
"used": "verwendet"
},
"Help": {
"bugPlease": "Wenn du einen Fehler gefunden hast, dann",
"buildAddons": "Ich möchte Add-ons für Owncast entwickeln",
"buildTools": "Baue deine eigenen Bots, Overlays, Werkzeuge und Add-ons mit unserer",
"commonTasks": "Häufige Aufgaben",
"configureBroadcasting": "Hilfe bei der Konfiguration meiner Broadcasting-Software",
"configureInstance": "Ich möchte meine Owncast Instanz konfigurieren",
"customizeWebsite": "Ich möchte meine Website anpassen",
"developerApis": "developer APIs.",
"discussions": "Diskussionen",
"documentation": "Dokumentation",
"embedStream": "Ich möchte meinen Stream in eine andere Website einbetten",
"faq": "Häufig gestellte Fragen",
"fixProblems": "Behebe deine Probleme",
"foundBug": "Ich habe einen Fehler gefunden!",
"generalAnswered": "Die meisten allgemeinen Fragen werden in unserem",
"generalQuestion": "Ich habe eine allgemeine Frage",
"learnMore": "Mehr erfahren",
"letUsKnow": "Gib uns bitte Bescheid",
"orExist": "beantwortet oder existieren in unseren",
"other": "Sonstiges",
"readDocs": "Lese die Dokumentation",
"title": "Wie können wir dir helfen?",
"troubleshooting": "Problembehandlung",
"tweakVideo": "Ich möchte meine Videoausgabe optimieren",
"useStorage": "Ich möchte einen externen Speicheranbieter verwenden"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Nachricht",
"timestamp": "Zeitstempel",
"warning": "Warnung"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "Nachrichten & Updates von Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Aktueller Stream",
"currentViewers": "Aktuelle Zuschauerzahl",
"last12Hours": "Letzten 12 Stunden",
"last24Hours": "Letzten 24 Stunden",
"last30Days": "Letzten 30 Tage",
"last3Months": "Letzten 3 Monate",
"last6Months": "Letzten 6 Monate",
"last7Days": "Letzte 7 Tage",
"maxViewers": "Max. Zuschauer",
"maxViewersLastStream": "Maximale Zuschauerzahl beim letzten Stream",
"maxViewersThisStream": "Maximale Anzahl von Zuschauern in diesem Stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Bitte warten",
"title": "Viewer Info",
"viewers": "Zuschauer"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Fehlende Übersetzung Admin.emojiPageBeschreibung: Bitte melden Sie</em></strong>", "emojiPageDescription": "<strong><em>Fehlende Übersetzung Admin.emojiPageBeschreibung: Bitte melden Sie</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Fehlende Übersetzung Admin.emojiUploadBulkGuide: Bitte melden Sie</em></strong>", "emojiUploadBulkGuide": "<strong><em>Fehlende Übersetzung Admin.emojiUploadBulkGuide: Bitte melden Sie</em></strong>",
"emojis": "<strong><em>Fehlende Übersetzung Admin.emojis: Bitte melden Sie</em></strong>", "emojis": "<strong><em>Fehlende Übersetzung Admin.emojis: Bitte melden Sie</em></strong>",
"uploadNewEmoji": "<strong><em>Fehlende Übersetzung Admin.uploadNewEmoji: Bitte melden Sie</em></strong>" "uploadNewEmoji": "<strong><em>Fehlende Übersetzung Admin.uploadNewEmoji: Bitte melden Sie</em></strong>"
}, },
"Banned Users": "Gesperrte Benutzer",
"Bring in moderators to help keep your chat in order": "Führen Sie Moderatoren ein, um Ihren Chat in Ordnung zu halten.",
"CPU": "CPU",
"Chat Messages": "Chat-Nachrichten",
"Chat is disabled": "Chat ist deaktiviert",
"Chat is offline": "Chat ist offline",
"Chat will be available when the stream is live": "Chat ist verfügbar, wenn der Stream live ist.",
"Chat will continue to be disabled until you begin a live stream": "Der Chat ist weiterhin deaktiviert, bis Sie einen Live-Stream starten.",
"Click and never miss future streams!": "Klicke und werde über zukünftige Streams informiert!",
"Common": { "Common": {
"poweredByOwncastVersion": "Unterstützt von <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Unterstützt von <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Häufige Aufgaben",
"Connected": "Verbunden",
"Contribute": "Beitragen",
"Current stream": "Aktueller Stream",
"Current viewers": "Aktuelle Zuschauerzahl",
"Disk": "Festplatte",
"Documentation": "Dokumentation",
"Embed your video onto other sites": "Ihr Video auf anderen Websites einbetten",
"Enable Owncast social features": "Aktiviere die Owncast sozialen Funktionen",
"Error": "Error",
"FAQ": "Häufig gestellte Fragen",
"Find an audience on the Owncast Directory": "Finde ein Publikum im Owncast-Verzeichnis",
"Fix your problems": "Behebe deine Probleme",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Erlauben", "allowButton": "Erlauben",
@@ -44,6 +96,7 @@
"deniedTitle": "Benachrichtigungen sind auf deinem Gerät gesperrt", "deniedTitle": "Benachrichtigungen sind auf deinem Gerät gesperrt",
"enabledDescription": "Um Push-Benachrichtigungen von {{hostname}} zu deaktivieren, greifen Sie auf Ihre Browser-Berechtigungen für diese Seite zu und deaktivieren Sie die Benachrichtigungen. <a href='https://owncast.online/docs/notifications'>Erfahre mehr.</a>", "enabledDescription": "Um Push-Benachrichtigungen von {{hostname}} zu deaktivieren, greifen Sie auf Ihre Browser-Berechtigungen für diese Seite zu und deaktivieren Sie die Benachrichtigungen. <a href='https://owncast.online/docs/notifications'>Erfahre mehr.</a>",
"enabledTitle": "Benachrichtigungen sind aktiviert", "enabledTitle": "Benachrichtigungen sind aktiviert",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Browser-Benachrichtigungsfehler", "errorTitle": "Browser-Benachrichtigungsfehler",
"iosAddButton": "Neu", "iosAddButton": "Neu",
"iosAddToHomeScreen": "Zum Startbildschirm hinzufügen", "iosAddToHomeScreen": "Zum Startbildschirm hinzufügen",
@@ -60,120 +113,39 @@
"unsupported": "Browserbenachrichtigungen werden in Ihrem Browser nicht unterstützt.", "unsupported": "Browserbenachrichtigungen werden in Ihrem Browser nicht unterstützt.",
"unsupportedLocal": "Browserbenachrichtigungen werden für lokale Server nicht unterstützt." "unsupportedLocal": "Browserbenachrichtigungen werden für lokale Server nicht unterstützt."
}, },
"Footer": {
"contribute": "Beitragen",
"documentation": "Dokumentation",
"source": "Quelle"
},
"Header": {
"chatOffline": "Chat ist offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Zum Seiteninhalt springen",
"skipToFooter": "Zur Fußzeile springen",
"skipToOfflineMessage": "Zur Offline-Nachricht springen",
"skipToPlayer": "Zum Player springen"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Fehlende Übersetzung Frontend.chatOffline: Bitte melden Sie</em></strong>", "chatOffline": "<strong><em>Fehlende Übersetzung Frontend.chatOffline: Bitte melden Sie</em></strong>",
"componentError": "Fehler: {{message}}", "componentError": "Fehler: {{message}}",
"helloWorld": "<strong><em>Fehlende Übersetzung Frontend.helloWorld: Bitte melden Sie</em></strong>", "helloWorld": "<strong><em>Fehlende Übersetzung Frontend.helloWorld: Bitte melden Sie</em></strong>",
"notificationMessage": "<strong><em>Fehlende Übersetzung Frontend.Benachrichtigung: Bitte melden Sie</em></strong>",
"offlineBasic": "Dieser Stream ist offline. Schauen Sie bald wieder!", "offlineBasic": "Dieser Stream ist offline. Schauen Sie bald wieder!",
"offlineFediverseOnly": "Dieser Stream ist offline. <span class='follow-link'>Folgen Sie</span> {{fediverseAccount}} auf der Feier, um das nächste Mal {{streamer}} live zu sehen.", "offlineFediverseOnly": "Dieser Stream ist offline. <span class='follow-link'>Folgen Sie</span> {{fediverseAccount}} auf der Feier, um das nächste Mal {{streamer}} live zu sehen.",
"offlineNotifyAndFediverse": "Dieser Stream ist offline. Sie können <span class='notify-link'>benachrichtigt werden,</span> wenn {{streamer}} das nächste Mal live geht, oder <span class='follow-link'>folgen Sie</span> {{fediverseAccount}} auf dem Fediverse.", "offlineNotifyAndFediverse": "Dieser Stream ist offline. Sie können <span class='notify-link'>benachrichtigt werden,</span> wenn {{streamer}} das nächste Mal live geht, oder <span class='follow-link'>folgen Sie</span> {{fediverseAccount}} auf dem Fediverse.",
"offlineNotifyOnly": "Dieser Stream ist offline. <span class='notify-link'>Werde benachrichtigt</span> wenn {{streamer}} das nächste Mal live geht." "offlineNotifyOnly": "Dieser Stream ist offline. <span class='notify-link'>Werde benachrichtigt</span> wenn {{streamer}} das nächste Mal live geht."
}, },
"Hardware Info": "Hardware Informationen",
"Healthy Stream": "Gesunder Stream",
"Help configuring my broadcasting software": "Hilfe bei der Konfiguration meiner Broadcasting-Software",
"Hidden messages": "Versteckte Nachrichten",
"Hide": "Verstecken",
"How can we help you?": "Wie können wir dir helfen?",
"I found a bug": "Ich habe einen Fehler gefunden!",
"I have a general question": "Ich habe eine allgemeine Frage",
"I want to build add-ons for Owncast": "Ich möchte Add-ons für Owncast entwickeln",
"I want to configure my owncast instance": "Ich möchte meine Owncast Instanz konfigurieren",
"I want to customize my website": "Ich möchte meine Website anpassen",
"I want to embed my stream into another site": "Ich möchte meinen Stream in eine andere Website einbetten",
"I want to tweak my video output": "Ich möchte meine Videoausgabe optimieren",
"I want to use an external storage provider": "Ich möchte einen externen Speicheranbieter verwenden",
"IP Bans": "IP-Sperren",
"If you found a bug, then please": "Wenn du einen Fehler gefunden hast, dann",
"Inbound Audio Stream": "Eingehender Audio-Stream",
"Inbound Stream Details": "Details zum eingehenden Stream",
"Inbound Video Stream": "Eingehender Video-Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Letzten 12 Stunden",
"Last 24 hours": "Letzten 24 Stunden",
"Last 3 months": "Letzten 3 Monate",
"Last 30 days": "Letzten 30 Tage",
"Last 6 months": "Letzten 6 Monate",
"Last 7 days": "Letzte 7 Tage",
"Last live ago": "Letzter Live- {{timeAgo}} vor",
"Learn how to point your existing software to your new server and start streaming your content": "Erfahren Sie, wie Sie Ihre vorhandene Software auf Ihren neuen Server verweisen und mit dem Streaming Ihrer Inhalte beginnen können.",
"Learn how you can add your Owncast stream to other sites you control": "Erfahren Sie, wie Sie Ihren Owncast Stream zu anderen Websites hinzufügen können, die Sie kontrollieren.",
"Learn more": "Mehr erfahren",
"Learn more about chat moderation here": "Erfahren Sie hier mehr über Chat-Moderation.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "Listet dich im Owncast-Verzeichnis und zeig deinen Stream an. Aktiviere ihn in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Verwalten Sie die Nachrichten von Zuschauern, die auf Ihrem Stream erscheinen.",
"Max viewers last stream": "Maximale Zuschauerzahl beim letzten Stream",
"Max viewers this stream": "Maximale Anzahl von Zuschauern in diesem Stream",
"Memory": "Arbeitsspeicher",
"Message": "Nachricht",
"Moderators": "Moderatoren",
"Most general questions are answered in our": "Die meisten allgemeinen Fragen werden in unserem",
"News & Updates from Owncast": "Nachrichten & Updates von Owncast",
"No": "Nein",
"No hardware details have been collected yet": "Es wurden noch keine Details zur Hardware gesammelt.",
"No news": "Keine Neuigkeiten",
"No stream is active": "Kein Stream ist aktiv",
"No viewer data has been collected yet": "Bisher wurden noch keine Daten von Zuschauern gesammelt.",
"Notify": "Benachrichtigung",
"Other": "Sonstiges",
"Outbound Audio Stream": "Ausgehender Audio-Stream",
"Outbound Stream Details": "Details zum ausgehenden Stream",
"Outbound Video Stream": "Ausgehender Video-Stream",
"Overridden via command line": "Wird über die Befehlszeile überschrieben.",
"Peak viewer count": "Höchste Zuschauerzahl",
"Playback Health": "Playback Gesundheit",
"Please wait": "Bitte warten",
"Read the Docs": "Lese die Dokumentation",
"Show": "Zeigen",
"Skip to footer": "Zur Fußzeile springen",
"Skip to offline message": "Zur Offline-Nachricht springen",
"Skip to page content": "Zum Seiteninhalt springen",
"Skip to player": "Zum Player springen",
"Source": "Quelle",
"Stay updated!": "Bleib auf dem Laufenden!",
"Stream health represents": "Stream-Gesundheit entspricht",
"Stream started": "Stream gestartet",
"TROUBLESHOOT": "Fehlerbehebung",
"Testing": { "Testing": {
"itemCount": "<strong><em>Fehlende Übersetzung Testing.itemCount: Bitte melden Sie</em></strong>", "itemCount": "<strong><em>Fehlende Übersetzung Testing.itemCount: Bitte melden Sie</em></strong>",
"messageCount": "<strong><em>Fehlende Übersetzung Testing.messageCount: Bitte melden Sie</em></strong>", "messageCount": "<strong><em>Fehlende Übersetzung Testing.messageCount: Bitte melden Sie</em></strong>",
"noPluralKey": "<strong><em>Fehlende Übersetzung Testing.noPluralKey: Bitte melden Sie</em></strong>", "noPluralKey": "<strong><em>Fehlende Übersetzung Testing.noPluralKey: Bitte melden Sie</em></strong>",
"simpleKey": "<strong><em>Fehlende Übersetzung Testing.simpleKey: Bitte melden Sie</em></strong>" "simpleKey": "<strong><em>Fehlende Übersetzung Testing.simpleKey: Bitte melden Sie</em></strong>"
}, }
"Time": "Zeit",
"Timestamp": "Zeitstempel",
"Troubleshooting": "Problembehandlung",
"Use your broadcasting software": "Verwende deine Broadcast-Software",
"User": "Nutzer",
"View": "Ansicht",
"Viewer Info": "Viewer Info",
"Viewers": "Zuschauer",
"Visible messages": "Sichtbare Nachrichten",
"Visit the": "Besuchen Sie",
"Warning": "Warnung",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "Wenn ein Stream aktiv ist und der Chat aktiviert ist, werden hier die verbundenen Chat-Clients angezeigt.",
"Yes": "Ja",
"You can build your own bots, overlays, tools and add-ons with our": "Baue deine eigenen Bots, Overlays, Werkzeuge und Add-ons mit unserer",
"You should start one": "Du solltest einen starten.",
"developer APIs": "Entwickler-APIs.",
"discussions": "Diskussionen",
"documentation": "Dokumentation",
"let us know": "Gib uns bitte Bescheid",
"max viewers": "Max. Zuschauer",
"of all known players": {
" Other player status is unknown": "aller bekannten Spieler. Andere Spieler Status unbekannt."
},
"offline": "Offline",
"offline_basic": "Dieser Stream ist offline. Schauen Sie bald wieder!",
"or exist in our": "beantwortet oder existieren in unseren",
"settings": "Einstellungen.",
"to configure additional details about your viewers": ", um zusätzliche Details über Ihre Zuschauer zu konfigurieren.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "um deine Instanz der Fediverse beitreten zu lassen, so dass Menschen dir folgen und sich mit deinem Live-Stream austauschen können.",
"used": "verwendet"
} }
+108 -136
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Αυξήστε το κοινό σας με την εμφάνιση στο <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Αυτή είναι μια εξωτερική υπηρεσία που εκτελείται από το έργο Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Μάθετε περισσότερα</a>.", "directoryDescription": "Αυξήστε το κοινό σας με την εμφάνιση στο <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Αυτή είναι μια εξωτερική υπηρεσία που εκτελείται από το έργο Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Μάθετε περισσότερα</a>.",
"offlineMessageDescription": "Το μήνυμα εκτός σύνδεσης εμφανίζεται στους επισκέπτες της σελίδας σας όταν δεν κάνετε streaming. Υποστηρίζεται Markdown.", "offlineMessageDescription": "Το μήνυμα εκτός σύνδεσης εμφανίζεται στους επισκέπτες της σελίδας σας όταν δεν κάνετε streaming. Υποστηρίζεται Markdown.",
"serverUrlRequiredForDirectory": "Πρέπει να ορίσετε το <strong>Server URL</strong> παραπάνω για να ενεργοποιήσετε τον κατάλογο." "serverUrlRequiredForDirectory": "Πρέπει να ορίσετε το <strong>Server URL</strong> παραπάνω για να ενεργοποιήσετε τον κατάλογο."
}, },
"emojiPageDescription": "<strong><em>Λείπει μετάφραση Admin.emojiPageΠεριγραφή: Παρακαλώ αναφέρετε</em></strong>", "HardwareInfo": {
"emojiUploadBulkGuide": "<strong><em>Λείπει μετάφραση Admin.emojiUploadBulkGuide: Παρακαλώ αναφέρετε</em></strong>", "cpu": "CPU",
"emojis": "<strong><em>Λείπει η μετάφραση Admin.emojis: Παρακαλώ αναφέρετε</em></strong>", "disk": "Disk",
"uploadNewEmoji": "<strong><em>Λείπει μετάφραση Admin.uploadNewEmoji: Παρακαλώ αναφέρετε</em></strong>" "memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "Here you can upload new custom emojis for usage in the chat. When uploading a new emoji, the filename without extension will be used as emoji name. Additionally, emoji names are case-insensitive. For best results, ensure all emoji have unique names.",
"emojiUploadBulkGuide": "Want to upload custom emojis in bulk? Check out our <a href=\"https://owncast.online/docs/chat/emoji\" rel=\"noopener noreferrer\" target=\"_blank\">Emoji guide</a>.",
"emojis": "Emojis",
"uploadNewEmoji": "Upload new emoji"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "Φέρτε σε συντονιστές για να σας βοηθήσει να κρατήσετε τη συνομιλία σας σε τάξη.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Τροφοδοτείται από <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Τροφοδοτείται από <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Αποδοχή", "allowButton": "Αποδοχή",
@@ -44,6 +96,7 @@
"deniedTitle": "Οι ειδοποιήσεις έχουν αποκλειστεί στη συσκευή σας", "deniedTitle": "Οι ειδοποιήσεις έχουν αποκλειστεί στη συσκευή σας",
"enabledDescription": "Για να απενεργοποιήσετε τις ειδοποιήσεις από το {{hostname}} έχετε πρόσβαση στα δικαιώματα του προγράμματος περιήγησης για αυτόν τον ιστότοπο και απενεργοποιήστε τις ειδοποιήσεις. <a href='https://owncast.online/docs/notifications'>Μάθετε περισσότερα.</a>", "enabledDescription": "Για να απενεργοποιήσετε τις ειδοποιήσεις από το {{hostname}} έχετε πρόσβαση στα δικαιώματα του προγράμματος περιήγησης για αυτόν τον ιστότοπο και απενεργοποιήστε τις ειδοποιήσεις. <a href='https://owncast.online/docs/notifications'>Μάθετε περισσότερα.</a>",
"enabledTitle": "Οι ειδοποιήσεις είναι ενεργοποιημένες", "enabledTitle": "Οι ειδοποιήσεις είναι ενεργοποιημένες",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Σφάλμα Ειδοποιήσεων Περιηγητή", "errorTitle": "Σφάλμα Ειδοποιήσεων Περιηγητή",
"iosAddButton": "Προσθήκη", "iosAddButton": "Προσθήκη",
"iosAddToHomeScreen": "Προσθήκη στην αρχική οθόνη", "iosAddToHomeScreen": "Προσθήκη στην αρχική οθόνη",
@@ -60,120 +113,39 @@
"unsupported": "Οι ειδοποιήσεις του προγράμματος περιήγησης δεν υποστηρίζονται στο πρόγραμμα περιήγησης.", "unsupported": "Οι ειδοποιήσεις του προγράμματος περιήγησης δεν υποστηρίζονται στο πρόγραμμα περιήγησης.",
"unsupportedLocal": "Οι ειδοποιήσεις του προγράμματος περιήγησης δεν υποστηρίζονται για τοπικούς διακομιστές." "unsupportedLocal": "Οι ειδοποιήσεις του προγράμματος περιήγησης δεν υποστηρίζονται για τοπικούς διακομιστές."
}, },
"chatOffline": "<strong><em>Λείπει μετάφραση Frontend.chatOffline: Παρακαλώ αναφέρετε</em></strong>", "Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "Chat is offline",
"componentError": "Σφάλμα: {{message}}", "componentError": "Σφάλμα: {{message}}",
"helloWorld": "<strong><em>Λείπει μετάφραση Frontend.helloWorld: Παρακαλώ αναφέρετε</em></strong>", "helloWorld": "Hello world",
"notificationMessage": "<strong><em>Λείπει μετάφραση Frontend.notificationMessage: Παρακαλούμε αναφέρετε</em></strong>",
"offlineBasic": "Αυτό το ρεύμα είναι εκτός σύνδεσης. Ελέγξτε ξανά σύντομα!", "offlineBasic": "Αυτό το ρεύμα είναι εκτός σύνδεσης. Ελέγξτε ξανά σύντομα!",
"offlineFediverseOnly": "Αυτό το ρεύμα είναι εκτός σύνδεσης. <span class='follow-link'>Ακολουθήστε</span> {{fediverseAccount}} στο Fediverse για να δείτε την επόμενη φορά που το {{streamer}} ζωντανά.", "offlineFediverseOnly": "Αυτό το ρεύμα είναι εκτός σύνδεσης. <span class='follow-link'>Ακολουθήστε</span> {{fediverseAccount}} στο Fediverse για να δείτε την επόμενη φορά που το {{streamer}} ζωντανά.",
"offlineNotifyAndFediverse": "Αυτή η ροή είναι εκτός σύνδεσης. Μπορείτε να ειδοποιηθείτε <span class='notify-link'></span> την επόμενη φορά που το {{streamer}} πηγαίνει ζωντανά ή <span class='follow-link'>ακολουθήστε το</span> {{fediverseAccount}} στο Fediverse.", "offlineNotifyAndFediverse": "Αυτή η ροή είναι εκτός σύνδεσης. Μπορείτε να ειδοποιηθείτε <span class='notify-link'></span> την επόμενη φορά που το {{streamer}} πηγαίνει ζωντανά ή <span class='follow-link'>ακολουθήστε το</span> {{fediverseAccount}} στο Fediverse.",
"offlineNotifyOnly": "Αυτή η ροή είναι εκτός σύνδεσης. <span class='notify-link'>Θα ειδοποιηθείτε</span> την επόμενη φορά που το {{streamer}} θα συνδεθεί." "offlineNotifyOnly": "Αυτή η ροή είναι εκτός σύνδεσης. <span class='notify-link'>Θα ειδοποιηθείτε</span> την επόμενη φορά που το {{streamer}} θα συνδεθεί."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "Τελευταία ζωντανή σύνδεση {{timeAgo}} πριν",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "Μάθετε περισσότερα για το chat moderation εδώ.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Λείπει μετάφραση Testing.itemCount: Παρακαλώ αναφέρετε</em></strong>", "itemCount": "You have {{count}} items",
"messageCount": "<strong><em>Λείπει μετάφραση Testing.messageCount: Παρακαλώ αναφέρετε</em></strong>", "messageCount": "You have {{count}} messages from {{sender}}",
"noPluralKey": "<strong><em>Λείπει μετάφραση Testing.noPluralKey: Παρακαλώ αναφέρετε</em></strong>", "noPluralKey": "This key has no plural variants - {{count}} things",
"simpleKey": "<strong><em>Λείπει μετάφραση Testing.simpleKey: Παρακαλώ αναφέρετε</em></strong>" "simpleKey": "Simple translation text"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "Αυτό το ρεύμα είναι εκτός σύνδεσης. Ελέγξτε ξανά σύντομα!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+60
View File
@@ -0,0 +1,60 @@
{
"Admin": {
"EditInstanceDetails": {
"directoryDescription": "Increase your audience by appearing in the <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. This is an external service run by the Owncast project. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more</a>.",
"offlineMessageDescription": "The offline message is displayed to your page visitors when you're not streaming. Markdown is supported.",
"serverUrlRequiredForDirectory": "You must set your <strong>Server URL</strong> above to enable the directory."
}
},
"Common": {
"poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
},
"Frontend": {
"BrowserNotifyModal": {
"allowButton": "Allow",
"blockButton": "Block",
"deniedDescription": "To enable push notifications from {{hostname}} access your browser permissions for this site and turn on notifications. Then reload this page to apply your updated settings on this site. <a href='https://owncast.online/docs/notifications'>Learn more.</a>",
"deniedTitle": "Notifications are blocked on your device",
"enabledDescription": "To disable push notifications from {{hostname}} access your browser permissions for this site and turn off notifications. <a href='https://owncast.online/docs/notifications'>Learn more.</a>",
"enabledTitle": "Notifications are enabled",
"errorTitle": "Browser Notification Error",
"iosAddButton": "Add",
"iosAddToHomeScreen": "Add to Home Screen",
"iosAllowPrompt": "Allow",
"iosComeBack": "Come back to this screen and enable notifications.",
"iosDescription": "It takes a couple extra steps to make sure you get notified when your favorite streams go live.",
"iosNameAndTap": "Give this link a name and tap the new icon on your home screen",
"iosShareButton": "share",
"iosTitle": "Get notified on iOS",
"learnMore": "Learn more",
"mainDescription": "Get notified right in the browser each time this stream goes live.",
"permissionWantsTo": "{{hostname}} wants to",
"showNotifications": "Show notifications",
"unsupported": "Browser notifications are not supported in your browser.",
"unsupportedLocal": "Browser notifications are not supported for local servers."
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"componentError": "Error: {{message}}",
"helloWorld": "Hello <strong>{{name}}</strong>, welcome to the world!",
"notificationMessage": "You can <a href=\"#\">click here</a> to receive notifications when {{streamer}} goes live.",
"offlineBasic": "This stream is offline. Check back soon!",
"offlineFediverseOnly": "This stream is offline. <span class='follow-link'>Follow</span> {{fediverseAccount}} on the Fediverse to see the next time {{streamer}} goes live.",
"offlineNotifyAndFediverse": "This stream is offline. You can <span class='notify-link'>be notified</span> the next time {{streamer}} goes live or <span class='follow-link'>follow</span> {{fediverseAccount}} on the Fediverse.",
"offlineNotifyOnly": "This stream is offline. <span class='notify-link'>Be notified</span> the next time {{streamer}} goes live."
},
"Testing": {
"itemCount": "You have {{count}} items",
"itemCount_one": "You have {{count}} item",
"messageCount": "You have {{count}} messages from {{sender}}",
"messageCount_one": "You have {{count}} message from {{sender}}",
"noPluralKey": "This key has no plural variants - {{count}} things",
"simpleKey": "Simple translation text"
}
}
+15
View File
@@ -0,0 +1,15 @@
{
"Frontend": {
"NameChangeModal": {
"description": "Your chat display name is what people see when you send chat messages.",
"placeholder": "Your chat display name",
"buttonText": "Change name",
"colorLabel": "Your Color",
"overLimit": "Over limit",
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu."
},
"componentError": "Error: {{message}}",
"offlineBasic": "This stream is offline. Check back soon!",
"offlineNotifyOnly": "This stream is offline. <span class='notify-link'>Be notified</span> the next time {{streamer}} goes live."
}
}
+110 -137
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Increase your audience by appearing in the <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. This is an external service run by the Owncast project. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more</a>.", "directoryDescription": "Increase your audience by appearing in the <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. This is an external service run by the Owncast project. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more</a>.",
"offlineMessageDescription": "The offline message is displayed to your page visitors when you're not streaming. Markdown is supported.", "offlineMessageDescription": "The offline message is displayed to your page visitors when you're not streaming. Markdown is supported.",
"serverUrlRequiredForDirectory": "You must set your <strong>Server URL</strong> above to enable the directory." "serverUrlRequiredForDirectory": "You must set your <strong>Server URL</strong> above to enable the directory."
}, },
"emojiPageDescription": "<strong><em>Missing translation Admin.emojiPageDescription: Please report</em></strong>", "HardwareInfo": {
"emojiUploadBulkGuide": "<strong><em>Missing translation Admin.emojiUploadBulkGuide: Please report</em></strong>", "title": "Hardware Info",
"emojis": "<strong><em>Missing translation Admin.emojis: Please report</em></strong>", "pleaseWait": "Please wait",
"uploadNewEmoji": "<strong><em>Missing translation Admin.uploadNewEmoji: Please report</em></strong>" "noDetails": "No hardware details have been collected yet.",
"cpu": "CPU",
"memory": "Memory",
"disk": "Disk",
"used": "used"
},
"Help": {
"title": "How can we help you?",
"configureInstance": "I want to configure my owncast instance",
"learnMore": "Learn more",
"configureBroadcasting": "Help configuring my broadcasting software",
"embedStream": "I want to embed my stream into another site",
"customizeWebsite": "I want to customize my website",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider",
"foundBug": "I found a bug",
"bugPlease": "If you found a bug, then please",
"letUsKnow": "let us know",
"generalQuestion": "I have a general question",
"generalAnswered": "Most general questions are answered in our",
"faq": "FAQ",
"orExist": "or exist in our",
"discussions": "discussions",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"developerApis": "developer APIs.",
"troubleshooting": "Troubleshooting",
"fixProblems": "Fix your problems",
"documentation": "Documentation",
"readDocs": "Read the Docs",
"commonTasks": "Common tasks",
"other": "Other"
},
"LogTable": {
"level": "Level",
"info": "Info",
"warning": "Warning",
"error": "Error",
"timestamp": "Timestamp",
"message": "Message",
"logs": "Logs"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"ViewerInfo": {
"title": "Viewer Info",
"currentStream": "Current stream",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last7Days": "Last 7 days",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"currentViewers": "Current viewers",
"maxViewersThisStream": "Max viewers this stream",
"maxViewersLastStream": "Max viewers last stream",
"maxViewers": "max viewers",
"pleaseWait": "Please wait",
"noData": "No viewer data has been collected yet.",
"viewers": "Viewers"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "Here you can upload new custom emojis for usage in the chat. When uploading a new emoji, the filename without extension will be used as emoji name. Additionally, emoji names are case-insensitive. For best results, ensure all emoji have unique names.",
"emojiUploadBulkGuide": "Want to upload custom emojis in bulk? Check out our <a href=\"https://owncast.online/docs/chat/emoji\" rel=\"noopener noreferrer\" target=\"_blank\">Emoji guide</a>.",
"emojis": "Emojis",
"uploadNewEmoji": "Upload new emoji"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "Bring in moderators to help keep your chat in order.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Allow", "allowButton": "Allow",
@@ -44,6 +96,7 @@
"deniedTitle": "Notifications are blocked on your device", "deniedTitle": "Notifications are blocked on your device",
"enabledDescription": "To disable push notifications from {{hostname}} access your browser permissions for this site and turn off notifications. <a href='https://owncast.online/docs/notifications'>Learn more.</a>", "enabledDescription": "To disable push notifications from {{hostname}} access your browser permissions for this site and turn off notifications. <a href='https://owncast.online/docs/notifications'>Learn more.</a>",
"enabledTitle": "Notifications are enabled", "enabledTitle": "Notifications are enabled",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Browser Notification Error", "errorTitle": "Browser Notification Error",
"iosAddButton": "Add", "iosAddButton": "Add",
"iosAddToHomeScreen": "Add to Home Screen", "iosAddToHomeScreen": "Add to Home Screen",
@@ -60,120 +113,40 @@
"unsupported": "Browser notifications are not supported in your browser.", "unsupported": "Browser notifications are not supported in your browser.",
"unsupportedLocal": "Browser notifications are not supported for local servers." "unsupportedLocal": "Browser notifications are not supported for local servers."
}, },
"chatOffline": "<strong><em>Missing translation Frontend.chatOffline: Please report</em></strong>", "Footer": {
"documentation": "Documentation",
"contribute": "Contribute",
"source": "Source"
},
"Header": {
"skipToPlayer": "Skip to player",
"skipToOfflineMessage": "Skip to offline message",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"chatOffline": "Chat is offline"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "Chat is offline",
"componentError": "Error: {{message}}", "componentError": "Error: {{message}}",
"helloWorld": "<strong><em>Missing translation Frontend.helloWorld: Please report</em></strong>", "helloWorld": "Hello world",
"notificationMessage": "<strong><em>Missing translation Frontend.notificationMessage: Please report</em></strong>",
"offlineBasic": "This stream is offline. Check back soon!", "offlineBasic": "This stream is offline. Check back soon!",
"offlineFediverseOnly": "This stream is offline. <span class='follow-link'>Follow</span> {{fediverseAccount}} on the Fediverse to see the next time {{streamer}} goes live.", "offlineFediverseOnly": "This stream is offline. <span class='follow-link'>Follow</span> {{fediverseAccount}} on the Fediverse to see the next time {{streamer}} goes live.",
"offlineNotifyAndFediverse": "This stream is offline. You can <span class='notify-link'>be notified</span> the next time {{streamer}} goes live or <span class='follow-link'>follow</span> {{fediverseAccount}} on the Fediverse.", "offlineNotifyAndFediverse": "This stream is offline. You can <span class='notify-link'>be notified</span> the next time {{streamer}} goes live or <span class='follow-link'>follow</span> {{fediverseAccount}} on the Fediverse.",
"offlineNotifyOnly": "This stream is offline. <span class='notify-link'>Be notified</span> the next time {{streamer}} goes live." "offlineNotifyOnly": "This stream is offline. <span class='notify-link'>Be notified</span> the next time {{streamer}} goes live.",
"lastLiveAgo": "Last live {{timeAgo}} ago"
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "Last live {{timeAgo}} ago",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "Learn more about chat moderation here.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Missing translation Testing.itemCount: Please report</em></strong>", "itemCount": "You have {{count}} items",
"messageCount": "<strong><em>Missing translation Testing.messageCount: Please report</em></strong>", "messageCount": "You have {{count}} messages from {{sender}}",
"noPluralKey": "<strong><em>Missing translation Testing.noPluralKey: Please report</em></strong>", "noPluralKey": "This key has no plural variants - {{count}} things",
"simpleKey": "<strong><em>Missing translation Testing.simpleKey: Please report</em></strong>" "simpleKey": "Simple translation text"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "This stream is offline. Check back soon!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
File diff suppressed because it is too large Load Diff
+9 -1
View File
@@ -5,7 +5,7 @@
"messageCount": "<strong><em>Missing translation Testing.messageCount: Please report</em></strong>", "messageCount": "<strong><em>Missing translation Testing.messageCount: Please report</em></strong>",
"noPluralKey": "<strong><em>Missing translation Testing.noPluralKey: Please report</em></strong>", "noPluralKey": "<strong><em>Missing translation Testing.noPluralKey: Please report</em></strong>",
"itemCount_one": "You have {{count}} item", "itemCount_one": "You have {{count}} item",
"messageCount_one": "{{sender}} has sent one message" "messageCount_one": "You have {{count}} message from {{sender}}"
}, },
"Frontend": { "Frontend": {
"helloWorld": "<strong><em>Missing translation Frontend.helloWorld: Please report</em></strong>", "helloWorld": "<strong><em>Missing translation Frontend.helloWorld: Please report</em></strong>",
@@ -60,6 +60,14 @@
"showNotifications": "Show notifications", "showNotifications": "Show notifications",
"unsupported": "Browser notifications are not supported in your browser.", "unsupported": "Browser notifications are not supported in your browser.",
"unsupportedLocal": "Browser notifications are not supported for local servers." "unsupportedLocal": "Browser notifications are not supported for local servers."
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
} }
}, },
"Admin": { "Admin": {
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Agrega tu instancia de Owncast al Fediverso",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Aumenta tu audiencia apareciendo en el <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Directorio de Owncast</strong></a>. Este es un servicio externo gestionado por el proyecto Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Aprende más</a>.", "directoryDescription": "Aumenta tu audiencia apareciendo en el <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Directorio de Owncast</strong></a>. Este es un servicio externo gestionado por el proyecto Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Aprende más</a>.",
"offlineMessageDescription": "El mensaje fuera de línea se muestra a los visitantes de la página cuando no se está transmitiendo. Markdown es compatible.", "offlineMessageDescription": "El mensaje fuera de línea se muestra a los visitantes de la página cuando no se está transmitiendo. Markdown es compatible.",
"serverUrlRequiredForDirectory": "Debe configurar la <strong>URL de</strong> su servidor para habilitar el directorio." "serverUrlRequiredForDirectory": "Debe configurar la <strong>URL de</strong> su servidor para habilitar el directorio."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disco",
"memory": "Memoria",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Por favor, espera",
"title": "Información del Hardware",
"used": "utilizado"
},
"Help": {
"bugPlease": "Si encuentras un error, entonces por favor",
"buildAddons": "Quiero crear complementos para Owncast",
"buildTools": "Puedes construir tus propios bots, superposiciones, herramientas y complementos con nuestra",
"commonTasks": "Tareas habituales",
"configureBroadcasting": "Ayuda a configurar mi software de emisión",
"configureInstance": "Quiero configurar mi instancia de owncast",
"customizeWebsite": "Quiero personalizar mi página web",
"developerApis": "developer APIs.",
"discussions": "debates",
"documentation": "Documentación",
"embedStream": "Quiero incrustar mi emisión en otro sitio",
"faq": "preguntas frecuentes (FAQ)",
"fixProblems": "Solucione sus problemas",
"foundBug": "Encontré un error",
"generalAnswered": "Las preguntas más generales se responden en nuestras",
"generalQuestion": "Tengo una pregunta de carácter general",
"learnMore": "Más información",
"letUsKnow": "háznoslo saber",
"orExist": "o existe en nuestros",
"other": "Otros",
"readDocs": "Leer la documentación",
"title": "¿Cómo podemos ayudarte?",
"troubleshooting": "Resolución de problemas",
"tweakVideo": "Quiero ajustar mi salida de vídeo",
"useStorage": "Quiero usar un proveedor de almacenamiento externo"
},
"LogTable": {
"error": "Error",
"info": "Información",
"level": "Nivel",
"logs": "Registros",
"message": "Mensaje",
"timestamp": "Marca de tiempo",
"warning": "Advertencia"
},
"NewsFeed": {
"link": "Enlace",
"noNews": "No news.",
"title": "Noticias y actualizaciones de Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Emisión actual",
"currentViewers": "Espectadores Actuales",
"last12Hours": "Últimas 12 horas",
"last24Hours": "Últimas 24 horas",
"last30Days": "Últimos 30 días",
"last3Months": "Últimos 3 meses",
"last6Months": "Últimos 6 meses",
"last7Days": "Últimos 7 días",
"maxViewers": "Máximo de espectadores",
"maxViewersLastStream": "Máximo de espectadores de la última emisión",
"maxViewersThisStream": "Máximo de espectadores en esta emisión",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Por favor, espera",
"title": "Datos de Audiencia",
"viewers": "Espectadores"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Falta traducción Admin.emojiPageDescription: Por favor, informe</em></strong>", "emojiPageDescription": "<strong><em>Falta traducción Admin.emojiPageDescription: Por favor, informe</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Falta la traducción de Admin.emojiUploadBulkGuide: Por favor, informe</em></strong>", "emojiUploadBulkGuide": "<strong><em>Falta la traducción de Admin.emojiUploadBulkGuide: Por favor, informe</em></strong>",
"emojis": "<strong><em>Falta traducción Admin.emojis: por favor reporta</em></strong>", "emojis": "<strong><em>Falta traducción Admin.emojis: por favor reporta</em></strong>",
"uploadNewEmoji": "<strong><em>Falta traducción Admin.uploadNewEmoji: Por favor reporta</em></strong>" "uploadNewEmoji": "<strong><em>Falta traducción Admin.uploadNewEmoji: Por favor reporta</em></strong>"
}, },
"Banned Users": "Usuarios Baneados",
"Bring in moderators to help keep your chat in order": "Contrata a moderadores para que te ayuden a mantener el orden en el chat.",
"CPU": "CPU",
"Chat Messages": "Mensajes del Chat",
"Chat is disabled": "Chat desactivado",
"Chat is offline": "Chat desconectado",
"Chat will be available when the stream is live": "El chat estará disponible cuando inicie la emisión.",
"Chat will continue to be disabled until you begin a live stream": "El chat seguirá desactivado hasta que inicies una emisión en directo.",
"Click and never miss future streams!": "Haga clic y no se pierda las próximas transmisiones.",
"Common": { "Common": {
"poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Tareas habituales",
"Connected": "Conectados",
"Contribute": "Contribuir",
"Current stream": "Emisión actual",
"Current viewers": "Espectadores Actuales",
"Disk": "Disco",
"Documentation": "Documentación",
"Embed your video onto other sites": "Inserta tu vídeo en otros sitios",
"Enable Owncast social features": "Activar características sociales de Owncast",
"Error": "Error",
"FAQ": "preguntas frecuentes (FAQ)",
"Find an audience on the Owncast Directory": "Encuentra la audiencia en el Directorio de Owncast",
"Fix your problems": "Solucione sus problemas",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Permitir", "allowButton": "Permitir",
@@ -44,6 +96,7 @@
"deniedTitle": "Las notificaciones están bloqueadas en tu dispositivo", "deniedTitle": "Las notificaciones están bloqueadas en tu dispositivo",
"enabledDescription": "Para desactivar las notificaciones push de {{hostname}} accede a los permisos de tu navegador para este sitio y desactiva las notificaciones. <a href='https://owncast.online/docs/notifications'>Más información</a>", "enabledDescription": "Para desactivar las notificaciones push de {{hostname}} accede a los permisos de tu navegador para este sitio y desactiva las notificaciones. <a href='https://owncast.online/docs/notifications'>Más información</a>",
"enabledTitle": "Las notificaciones están habilitadas", "enabledTitle": "Las notificaciones están habilitadas",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Error de notificación del navegador", "errorTitle": "Error de notificación del navegador",
"iosAddButton": "Añadir", "iosAddButton": "Añadir",
"iosAddToHomeScreen": "Añadir a la pantalla de inicio", "iosAddToHomeScreen": "Añadir a la pantalla de inicio",
@@ -60,120 +113,39 @@
"unsupported": "Las notificaciones del navegador no están soportadas en su navegador.", "unsupported": "Las notificaciones del navegador no están soportadas en su navegador.",
"unsupportedLocal": "Las notificaciones del navegador no son compatibles con los servidores locales." "unsupportedLocal": "Las notificaciones del navegador no son compatibles con los servidores locales."
}, },
"Footer": {
"contribute": "Contribuir",
"documentation": "Documentación",
"source": "Código fuente"
},
"Header": {
"chatOffline": "Chat desconectado",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Ir al contenido de la página",
"skipToFooter": "Ir al pie de página",
"skipToOfflineMessage": "Ir a mensaje sin conexión",
"skipToPlayer": "Ir al reproductor"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Falta traducción Frontend.chatOffline: Por favor, informe</em></strong>", "chatOffline": "<strong><em>Falta traducción Frontend.chatOffline: Por favor, informe</em></strong>",
"componentError": "Error: {{message}}", "componentError": "Error: {{message}}",
"helloWorld": "<strong><em>Falta traducción Frontend.helloWorld: por favor informe</em></strong>", "helloWorld": "<strong><em>Falta traducción Frontend.helloWorld: por favor informe</em></strong>",
"notificationMessage": "<strong><em>Falta la traducción de Frontend.notificationMessage: Por favor, informe</em></strong>",
"offlineBasic": "Esta corriente está fuera de línea. ¡Vuelve pronto!", "offlineBasic": "Esta corriente está fuera de línea. ¡Vuelve pronto!",
"offlineFediverseOnly": "Este stream está fuera de línea. <span class='follow-link'>Sigue</span> {{fediverseAccount}} en el Fediverso para ver la próxima vez que {{streamer}} se ponga en directo.", "offlineFediverseOnly": "Este stream está fuera de línea. <span class='follow-link'>Sigue</span> {{fediverseAccount}} en el Fediverso para ver la próxima vez que {{streamer}} se ponga en directo.",
"offlineNotifyAndFediverse": "Esta transmisión está desconectada. Puede <span class='notify-link'>recibir una notificación</span> la próxima vez que {{streamer}} salga en directo o <span class='follow-link'>seguir</span> {{fediverseAccount}} en Fediverse.", "offlineNotifyAndFediverse": "Esta transmisión está desconectada. Puede <span class='notify-link'>recibir una notificación</span> la próxima vez que {{streamer}} salga en directo o <span class='follow-link'>seguir</span> {{fediverseAccount}} en Fediverse.",
"offlineNotifyOnly": "Este stream está desconectado. <span class='notify-link'>Ser notificado</span> la próxima vez que {{streamer}} vaya en directo." "offlineNotifyOnly": "Este stream está desconectado. <span class='notify-link'>Ser notificado</span> la próxima vez que {{streamer}} vaya en directo."
}, },
"Hardware Info": "Información del Hardware",
"Healthy Stream": "Calidad de Emisión",
"Help configuring my broadcasting software": "Ayuda a configurar mi software de emisión",
"Hidden messages": "Mensajes ocultos",
"Hide": "Ocultar",
"How can we help you?": "¿Cómo podemos ayudarte?",
"I found a bug": "Encontré un error",
"I have a general question": "Tengo una pregunta de carácter general",
"I want to build add-ons for Owncast": "Quiero crear complementos para Owncast",
"I want to configure my owncast instance": "Quiero configurar mi instancia de owncast",
"I want to customize my website": "Quiero personalizar mi página web",
"I want to embed my stream into another site": "Quiero incrustar mi emisión en otro sitio",
"I want to tweak my video output": "Quiero ajustar mi salida de vídeo",
"I want to use an external storage provider": "Quiero usar un proveedor de almacenamiento externo",
"IP Bans": "Baneos IP",
"If you found a bug, then please": "Si encuentras un error, entonces por favor",
"Inbound Audio Stream": "Trasmisión de Audio Entrante",
"Inbound Stream Details": "Detalles de Emisión Entrante",
"Inbound Video Stream": "Trasmisión de Vídeo Entrante",
"Info": "Información",
"Input": "Entrada",
"Last 12 hours": "Últimas 12 horas",
"Last 24 hours": "Últimas 24 horas",
"Last 3 months": "Últimos 3 meses",
"Last 30 days": "Últimos 30 días",
"Last 6 months": "Últimos 6 meses",
"Last 7 days": "Últimos 7 días",
"Last live ago": "Último directo hace {{timeAgo}}",
"Learn how to point your existing software to your new server and start streaming your content": "Aprenda cómo apuntar su software a su nuevo servidor y comenzar a emitir su contenido.",
"Learn how you can add your Owncast stream to other sites you control": "Aprende cómo puede agregar su emisión de Owncast en otros sitios que controle.",
"Learn more": "Más información",
"Learn more about chat moderation here": "Más información sobre la moderación del chat aquí.",
"Level": "Nivel",
"Link": "Enlace",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "Incluir en el directorio Owncast y publicar su emisión. Habilítelo en"
},
"Logs": "Registros",
"Manage the messages from viewers that show up on your stream": "Administra los mensajes de los espectadores que aparecen en tu emisión.",
"Max viewers last stream": "Máximo de espectadores de la última emisión",
"Max viewers this stream": "Máximo de espectadores en esta emisión",
"Memory": "Memoria",
"Message": "Mensaje",
"Moderators": "Moderadores",
"Most general questions are answered in our": "Las preguntas más generales se responden en nuestras",
"News & Updates from Owncast": "Noticias y actualizaciones de Owncast",
"No": "No",
"No hardware details have been collected yet": "Todavía no se han recopilado detalles de hardware.",
"No news": "No hay noticias.",
"No stream is active": "Emisión inactiva",
"No viewer data has been collected yet": "Todavía no se han recopilado datos del espectador.",
"Notify": "Notificar",
"Other": "Otros",
"Outbound Audio Stream": "Emisión de Audio Saliente",
"Outbound Stream Details": "Detalles de Emisión Saliente",
"Outbound Video Stream": "Emisión de Vídeo Saliente",
"Overridden via command line": "Sobrescrito vía línea de comandos.",
"Peak viewer count": "Pico de espectadores",
"Playback Health": "Calidad de Reproducción",
"Please wait": "Por favor, espera",
"Read the Docs": "Leer la documentación",
"Show": "Mostrar",
"Skip to footer": "Ir al pie de página",
"Skip to offline message": "Ir a mensaje sin conexión",
"Skip to page content": "Ir al contenido de la página",
"Skip to player": "Ir al reproductor",
"Source": "Código fuente",
"Stay updated!": "¡Mantente informado!",
"Stream health represents": "Muestra la calidad de emisión",
"Stream started": "Inicio de emisión",
"TROUBLESHOOT": "SOLUCIÓN DE PROBLEMAS",
"Testing": { "Testing": {
"itemCount": "<strong><em>Falta traducción Testing.itemCount: Por favor reporte</em></strong>", "itemCount": "<strong><em>Falta traducción Testing.itemCount: Por favor reporte</em></strong>",
"messageCount": "<strong><em>Falta traducción Testing.messageCount: Por favor, informe</em></strong>", "messageCount": "<strong><em>Falta traducción Testing.messageCount: Por favor, informe</em></strong>",
"noPluralKey": "<strong><em>Falta traducción Testing.noPluralKey: por favor reporta</em></strong>", "noPluralKey": "<strong><em>Falta traducción Testing.noPluralKey: por favor reporta</em></strong>",
"simpleKey": "<strong><em>Falta traducción Testing.simpleKey: Por favor reporte</em></strong>" "simpleKey": "<strong><em>Falta traducción Testing.simpleKey: Por favor reporte</em></strong>"
}, }
"Time": "Tiempo",
"Timestamp": "Marca de tiempo",
"Troubleshooting": "Resolución de problemas",
"Use your broadcasting software": "Configurar software de emisión",
"User": "Usuario",
"View": "Ver",
"Viewer Info": "Datos de Audiencia",
"Viewers": "Espectadores",
"Visible messages": "Mensajes visibles",
"Visit the": "Visite la",
"Warning": "Advertencia",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "Cuando la emisión está activa y el chat está habilitado, los usuarios del chat se mostrarán aquí.",
"Yes": "Si",
"You can build your own bots, overlays, tools and add-ons with our": "Puedes construir tus propios bots, superposiciones, herramientas y complementos con nuestra",
"You should start one": "Deberías iniciar una.",
"developer APIs": "API para desarrolladores.",
"discussions": "debates",
"documentation": "documentación",
"let us know": "háznoslo saber",
"max viewers": "Máximo de espectadores",
"of all known players": {
" Other player status is unknown": "de todos los reproductores conocidos. Se desconoce el estado de los otros reproductores."
},
"offline": "sin conexión",
"offline_basic": "Esta corriente está fuera de línea. ¡Vuelve pronto!",
"or exist in our": "o existe en nuestros",
"settings": "configuración",
"to configure additional details about your viewers": "para configurar más detalles de sus espectadores.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "para que tu instancia se una al Fediverso, permitiendo a la gente seguir, compartir e involucrarse con tu emisión en directo.",
"used": "utilizado"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Gehitu zure Owncast instantzia fedibertsora",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Handitu zure ikusleak <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>-n agerita. Hau Owncast proiektua kudeatutako zerbitzu kanpoa da. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Gehiago ikasi</a>.", "directoryDescription": "Handitu zure ikusleak <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>-n agerita. Hau Owncast proiektua kudeatutako zerbitzu kanpoa da. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Gehiago ikasi</a>.",
"offlineMessageDescription": "Offlain mezua zure orri bisitariei erakusten zaie zu ez bazaude irratian. Markdown babesten da.", "offlineMessageDescription": "Offlain mezua zure orri bisitariei erakusten zaie zu ez bazaude irratian. Markdown babesten da.",
"serverUrlRequiredForDirectory": "<strong>Server URL</strong> goian ezarri behar duzu direktorioa ahalbidetzeko." "serverUrlRequiredForDirectory": "<strong>Server URL</strong> goian ezarri behar duzu direktorioa ahalbidetzeko."
}, },
"HardwareInfo": {
"cpu": "PUZ",
"disk": "Biltegiratzea",
"memory": "Memoria",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Itxaron mesedez",
"title": "Hardware-ari buruzko informazioa",
"used": "erabilita"
},
"Help": {
"bugPlease": "Arazo bat topatu baduzu, mesedez,",
"buildAddons": "Owncast-erako gehigarriak sortu nahi ditut",
"buildTools": "Zure bot-ak, gainjartzeak, tresnak eta gehigarriak eraiki ditzakezu gure",
"commonTasks": "Ataza arruntak",
"configureBroadcasting": "Laguntza emanaldietarako software-a konfiguratzen",
"configureInstance": "Nire Owncast instantzia konfiguratu nahi dut",
"customizeWebsite": "Nire webgunea pertsonalizatu nahi dut",
"developerApis": "developer APIs.",
"discussions": "eztabaidak",
"documentation": "Dokumentazioa",
"embedStream": "Nire zuzenekoa beste gune batean txertatu nahi dut",
"faq": "FAQ (Maiz Egindako Galderak)",
"fixProblems": "Arazoak konpondu",
"foundBug": "Arazo bat topatu dut",
"generalAnswered": "Galdera orokor gehienak erantzuten dira gure",
"generalQuestion": "Galdera orokor bat daukat",
"learnMore": "Ikasi gehiago",
"letUsKnow": "jakinaraziguzu",
"orExist": "edo existitzen dira gure",
"other": "Beste edozein",
"readDocs": "Irakurri dokumentazioa",
"title": "Nola lagun zaitzakegu?",
"troubleshooting": "Arazoen konponketa",
"tweakVideo": "Nire bideo irteera aldatu nahi dut",
"useStorage": "Kanpoko biltegiratze hornitzaile bat erabili nahi dut"
},
"LogTable": {
"error": "Errorea",
"info": "Informazioa",
"level": "Maila",
"logs": "Erregistroak",
"message": "Mezua",
"timestamp": "Denbora-zigilua",
"warning": "Abisua"
},
"NewsFeed": {
"link": "Esteka",
"noNews": "No news.",
"title": "Owncast-en albiste eta eguneraketak"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Oraingo igorpena",
"currentViewers": "Uneko ikusleak",
"last12Hours": "Azken 12 orduetan",
"last24Hours": "Azken 24 orduetan",
"last30Days": "Azken 30 egunetan",
"last3Months": "Azken 3 hilabeteetan",
"last6Months": "Azken 6 hilabeteetan",
"last7Days": "Azken 7 egunetan",
"maxViewers": "gehiengo ikus-entzule kopurua",
"maxViewersLastStream": "Azken igorpenak izan duen gehiengo ikus-entzule kopurua",
"maxViewersThisStream": "Igorpen honek izan duen gehiengo ikus-entzule kopurua",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Itxaron mesedez",
"title": "Ikus-entzuleen informazioa",
"viewers": "Ikusleak"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Itzulpen faltak Admin.emojiPageDescription: Mesedez, jakinarazi</em></strong>", "emojiPageDescription": "<strong><em>Itzulpen faltak Admin.emojiPageDescription: Mesedez, jakinarazi</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Itzulpen faltak Admin.emojiUploadBulkGuide: Mesedez, jakinarazi</em></strong>", "emojiUploadBulkGuide": "<strong><em>Itzulpen faltak Admin.emojiUploadBulkGuide: Mesedez, jakinarazi</em></strong>",
"emojis": "<strong><em>Itzulpen faltak Admin.emojis: Mesedez, jakinarazi</em></strong>", "emojis": "<strong><em>Itzulpen faltak Admin.emojis: Mesedez, jakinarazi</em></strong>",
"uploadNewEmoji": "<strong><em>Itzulpen faltak Admin.uploadNewEmoji: Mesedez, jakinarazi</em></strong>" "uploadNewEmoji": "<strong><em>Itzulpen faltak Admin.uploadNewEmoji: Mesedez, jakinarazi</em></strong>"
}, },
"Banned Users": "Debekatutako erabiltzaileak",
"Bring in moderators to help keep your chat in order": "Sartu moderatzaileak zure txata ordenan mantentzen laguntzeko.",
"CPU": "PUZ",
"Chat Messages": "Txateko mezuak",
"Chat is disabled": "Txata desgaituta dago",
"Chat is offline": "Txata lineaz kanpo dago",
"Chat will be available when the stream is live": "Txata erabilgarri egongo da zuzenekoaren igorpena abiatutakoan.",
"Chat will continue to be disabled until you begin a live stream": "Txata desgaituta egongo da zuzeneko igorpen bat hasi arte.",
"Click and never miss future streams!": "Egin klik eta ez itzazu ahaztu etorkizuneko zuzenekoak!",
"Common": { "Common": {
"poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast v{{versionNumber}}</a> -k martxan" "poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast v{{versionNumber}}</a> -k martxan"
}, },
"Common tasks": "Ataza arruntak",
"Connected": "Konektatuta",
"Contribute": "Egin ekarpena",
"Current stream": "Oraingo igorpena",
"Current viewers": "Uneko ikusleak",
"Disk": "Biltegiratzea",
"Documentation": "Dokumentazioa",
"Embed your video onto other sites": "Txertatu zure bideoa beste webgune batzuetan",
"Enable Owncast social features": "Gaitu Owncasten sare sozialen funtzioak",
"Error": "Errorea",
"FAQ": "FAQ (Maiz Egindako Galderak)",
"Find an audience on the Owncast Directory": "Aurkitu zure entzulegoa Owncast direktorioan",
"Fix your problems": "Arazoak konpondu",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Baimendu", "allowButton": "Baimendu",
@@ -44,6 +96,7 @@
"deniedTitle": "Jakinarazpenak blokeatuak daude zure gailuan", "deniedTitle": "Jakinarazpenak blokeatuak daude zure gailuan",
"enabledDescription": "{{hostname}}-tik push jakinarazpenak desgaitzeko, sartu zure nabigatzailearen baimenak gune honetarako eta itzali jakinarazpenak. <a href='https://owncast.online/docs/notifications'>Gehiago ikusi.</a>", "enabledDescription": "{{hostname}}-tik push jakinarazpenak desgaitzeko, sartu zure nabigatzailearen baimenak gune honetarako eta itzali jakinarazpenak. <a href='https://owncast.online/docs/notifications'>Gehiago ikusi.</a>",
"enabledTitle": "Jakinarazpenak aktibatuta daude", "enabledTitle": "Jakinarazpenak aktibatuta daude",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Nabigatzailearen Jakinarazpen Akatsa", "errorTitle": "Nabigatzailearen Jakinarazpen Akatsa",
"iosAddButton": "Gehitu", "iosAddButton": "Gehitu",
"iosAddToHomeScreen": "Etxeko Pantaila Gehitu", "iosAddToHomeScreen": "Etxeko Pantaila Gehitu",
@@ -60,120 +113,39 @@
"unsupported": "Nabigatzailean abisuak ez dira onartu zure nabigatzailean.", "unsupported": "Nabigatzailean abisuak ez dira onartu zure nabigatzailean.",
"unsupportedLocal": "Nabigatzailean abisuak ez dira onartu lokaleko zerbitzarietan." "unsupportedLocal": "Nabigatzailean abisuak ez dira onartu lokaleko zerbitzarietan."
}, },
"Footer": {
"contribute": "Egin ekarpena",
"documentation": "Dokumentazioa",
"source": "Iturria"
},
"Header": {
"chatOffline": "Txata lineaz kanpo dago",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Joan orriaren edukira",
"skipToFooter": "Joan orriaren oinera",
"skipToOfflineMessage": "Joan lineaz kanpoko mezura",
"skipToPlayer": "Joan erreproduktorera"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Itzulpen falta Frontend.chatOffline: Mesedez, jakinarazi</em></strong>", "chatOffline": "<strong><em>Itzulpen falta Frontend.chatOffline: Mesedez, jakinarazi</em></strong>",
"componentError": "Errorea: {{message}}", "componentError": "Errorea: {{message}}",
"helloWorld": "<strong><em>Itzulpen falta Frontend.helloWorld: Mesedez, jakinarazi</em></strong>", "helloWorld": "<strong><em>Itzulpen falta Frontend.helloWorld: Mesedez, jakinarazi</em></strong>",
"notificationMessage": "<strong><em>Itzulpen falta Frontend.notificationMessage: Mesedez, jakinarazi</em></strong>",
"offlineBasic": "Torrente hau offline dago. Itzuli laster!", "offlineBasic": "Torrente hau offline dago. Itzuli laster!",
"offlineFediverseOnly": "Torrente hau offline dago. <span class='follow-link'>Jarraitzaile</span> {{fediverseAccount}} Fediversen hurrengoa {{streamer}} zuzenean joan denean ikusteko.", "offlineFediverseOnly": "Torrente hau offline dago. <span class='follow-link'>Jarraitzaile</span> {{fediverseAccount}} Fediversen hurrengoa {{streamer}} zuzenean joan denean ikusteko.",
"offlineNotifyAndFediverse": "Torrente hau offline dago. <span class='notify-link'>Jakinarazi</span> hurrengoa {{streamer}} zuzenean joan denean edo <span class='follow-link'>jarraitu</span> {{fediverseAccount}} Fediversen.", "offlineNotifyAndFediverse": "Torrente hau offline dago. <span class='notify-link'>Jakinarazi</span> hurrengoa {{streamer}} zuzenean joan denean edo <span class='follow-link'>jarraitu</span> {{fediverseAccount}} Fediversen.",
"offlineNotifyOnly": "Torrente hau offline dago. <span class='notify-link'>Jakinarazi</span> hurrengoa {{streamer}} zuzenean joan denean." "offlineNotifyOnly": "Torrente hau offline dago. <span class='notify-link'>Jakinarazi</span> hurrengoa {{streamer}} zuzenean joan denean."
}, },
"Hardware Info": "Hardware-ari buruzko informazioa",
"Healthy Stream": "Zuzenekoaren osasuna",
"Help configuring my broadcasting software": "Laguntza emanaldietarako software-a konfiguratzen",
"Hidden messages": "Ezkututako mezuak",
"Hide": "Ezkutatu",
"How can we help you?": "Nola lagun zaitzakegu?",
"I found a bug": "Arazo bat topatu dut",
"I have a general question": "Galdera orokor bat daukat",
"I want to build add-ons for Owncast": "Owncast-erako gehigarriak sortu nahi ditut",
"I want to configure my owncast instance": "Nire Owncast instantzia konfiguratu nahi dut",
"I want to customize my website": "Nire webgunea pertsonalizatu nahi dut",
"I want to embed my stream into another site": "Nire zuzenekoa beste gune batean txertatu nahi dut",
"I want to tweak my video output": "Nire bideo irteera aldatu nahi dut",
"I want to use an external storage provider": "Kanpoko biltegiratze hornitzaile bat erabili nahi dut",
"IP Bans": "IP debekuak",
"If you found a bug, then please": "Arazo bat topatu baduzu, mesedez,",
"Inbound Audio Stream": "Soinuaren igorpena barrura sartu",
"Inbound Stream Details": "Igorpenaren xehetasunak barrura ekarri",
"Inbound Video Stream": "Bideoaren igorpena barrura sartu",
"Info": "Informazioa",
"Input": "Sarrera",
"Last 12 hours": "Azken 12 orduetan",
"Last 24 hours": "Azken 24 orduetan",
"Last 3 months": "Azken 3 hilabeteetan",
"Last 30 days": "Azken 30 egunetan",
"Last 6 months": "Azken 6 hilabeteetan",
"Last 7 days": "Azken 7 egunetan",
"Last live ago": "Azken zuzenekoa duela {{timeAgo}}",
"Learn how to point your existing software to your new server and start streaming your content": "Ikasi lehendik duzun softwarea zerbitzari berrira bideratzen eta hasi zure edukia erreproduzitzen.",
"Learn how you can add your Owncast stream to other sites you control": "Ikasi nola gehi dezakezun zure Owncasteko streama kontrolatzen dituzun beste gune batzuetara.",
"Learn more": "Ikasi gehiago",
"Learn more about chat moderation here": "Ikasi gehiago txat moderazioari buruz hemen.",
"Level": "Maila",
"Link": "Esteka",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "Zerrendatu zeure burua Owncast direktorioan eta erakutsi zure streama. Gaitu hemen"
},
"Logs": "Erregistroak",
"Manage the messages from viewers that show up on your stream": "Kudeatu zuzenekoan agertzen diren ikusleen mezuak.",
"Max viewers last stream": "Azken igorpenak izan duen gehiengo ikus-entzule kopurua",
"Max viewers this stream": "Igorpen honek izan duen gehiengo ikus-entzule kopurua",
"Memory": "Memoria",
"Message": "Mezua",
"Moderators": "Moderatzaileak",
"Most general questions are answered in our": "Galdera orokor gehienak erantzuten dira gure",
"News & Updates from Owncast": "Owncast-en albiste eta eguneraketak",
"No": "Ez",
"No hardware details have been collected yet": "Ez dira oraindik hardware-ari buruzko xehetasunak jaso.",
"No news": "Zaharrak berri.",
"No stream is active": "Ez da aktibo dagoen zuzenekorik",
"No viewer data has been collected yet": "Oraindik ez da ikus-entzuleei buruzko daturik jaso.",
"Notify": "Jakinarazi",
"Other": "Beste edozein",
"Outbound Audio Stream": "Soinuaren igorpena kanpora atera",
"Outbound Stream Details": "Igorpenaren xehetasunak kanpora atera",
"Outbound Video Stream": "Bideoaren igorpena kanpora atera",
"Overridden via command line": "Komando-lerroaren bidez gainidatzi da.",
"Peak viewer count": "Ikusle kopuruaren goren maila lortu",
"Playback Health": "Erreprodukzioaren osasuna",
"Please wait": "Itxaron mesedez",
"Read the Docs": "Irakurri dokumentazioa",
"Show": "Erakutsi",
"Skip to footer": "Joan orriaren oinera",
"Skip to offline message": "Joan lineaz kanpoko mezura",
"Skip to page content": "Joan orriaren edukira",
"Skip to player": "Joan erreproduktorera",
"Source": "Iturria",
"Stay updated!": "Eguneraketak jarraitu!",
"Stream health represents": "Zuzenekoaren osasunak ordezkatzen du",
"Stream started": "Zuzeneko igorpena abiatu da",
"TROUBLESHOOT": "Arazoen konponketa",
"Testing": { "Testing": {
"itemCount": "<strong><em>Itzulpen falta Testing.itemCount: Mesedez, jakinarazi</em></strong>", "itemCount": "<strong><em>Itzulpen falta Testing.itemCount: Mesedez, jakinarazi</em></strong>",
"messageCount": "<strong><em>Itzulpen falta Testing.messageCount: Mesedez, jakinarazi</em></strong>", "messageCount": "<strong><em>Itzulpen falta Testing.messageCount: Mesedez, jakinarazi</em></strong>",
"noPluralKey": "<strong><em>Itzulpen falta Testing.noPluralKey: Mesedez, jakinarazi</em></strong>", "noPluralKey": "<strong><em>Itzulpen falta Testing.noPluralKey: Mesedez, jakinarazi</em></strong>",
"simpleKey": "<strong><em>Itzulpen falta Testing.simpleKey: Mesedez, jakinarazi</em></strong>" "simpleKey": "<strong><em>Itzulpen falta Testing.simpleKey: Mesedez, jakinarazi</em></strong>"
}, }
"Time": "Denbora",
"Timestamp": "Denbora-zigilua",
"Troubleshooting": "Arazoen konponketa",
"Use your broadcasting software": "Erabili zure igorpen-softwarea",
"User": "Erabiltzailea",
"View": "Ikusi",
"Viewer Info": "Ikus-entzuleen informazioa",
"Viewers": "Ikusleak",
"Visible messages": "Ikus daitezkeen mezuak",
"Visit the": "Bisitatu",
"Warning": "Abisua",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "Zuzeneko bat aktibo dagoenean eta txata gaituta dagoenean, konektatutako txat-bezeroak hemen bistaratuko dira.",
"Yes": "Bai",
"You can build your own bots, overlays, tools and add-ons with our": "Zure bot-ak, gainjartzeak, tresnak eta gehigarriak eraiki ditzakezu gure",
"You should start one": "Bat abiatu zenezake",
"developer APIs": "garatzaileentzako APIak.",
"discussions": "eztabaidak",
"documentation": "dokumentazioa",
"let us know": "jakinaraziguzu",
"max viewers": "gehiengo ikus-entzule kopurua",
"of all known players": {
" Other player status is unknown": "erreproduzitzaile ezagun guztietatik. Beste erreproduzitzaileen egoera ezezaguna da."
},
"offline": "lineaz kanpo",
"offline_basic": "Z stream hau offline dago. Mesedez, itzuli laster!",
"or exist in our": "edo existitzen dira gure",
"settings": "Ezarpenak",
"to configure additional details about your viewers": "zure ikusleei buruzko xehetasun gehiago konfiguratzeko.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "zure instantzia fedibertsoan sartzeko, jendeari zure zuzeneko igorpenarekin jarraitzeko, partekatzeko eta parte hartzeko aukera emanez.",
"used": "erabilita"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Ajoutez votre instance Owncast au Fédiverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Augmentez votre audience en apparaissant dans le Répertoire <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast</strong></a>. Ceci est un service externe géré par le projet Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">En savoir plus</a>.", "directoryDescription": "Augmentez votre audience en apparaissant dans le Répertoire <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast</strong></a>. Ceci est un service externe géré par le projet Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">En savoir plus</a>.",
"offlineMessageDescription": "Le message hors ligne est affiché aux visiteurs de votre page lorsque vous ne diffusez pas. Markdown est pris en charge.", "offlineMessageDescription": "Le message hors ligne est affiché aux visiteurs de votre page lorsque vous ne diffusez pas. Markdown est pris en charge.",
"serverUrlRequiredForDirectory": "Vous devez définir l'URL <strong>du serveur</strong> ci-dessus pour activer le répertoire." "serverUrlRequiredForDirectory": "Vous devez définir l'URL <strong>du serveur</strong> ci-dessus pour activer le répertoire."
}, },
"HardwareInfo": {
"cpu": "Processeur",
"disk": "Disque",
"memory": "Mémoire",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Veuillez patienter",
"title": "Infos Matériel",
"used": "utilisé"
},
"Help": {
"bugPlease": "Si vous avez trouvé un bogue, merci de",
"buildAddons": "Je veux créer des extensions pour Owncast",
"buildTools": "Vous pouvez créer vos propres robots logiciels, superpositions et extensions avec notre",
"commonTasks": "Tâches courantes",
"configureBroadcasting": "M'aider à configurer mon logiciel de diffusion",
"configureInstance": "Je souhaite configurer mon instance Owncast",
"customizeWebsite": "Je veux personnaliser mon site web",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "Je veux intégrer ma diffusion dans un autre site",
"faq": "FAQ",
"fixProblems": "Résolution de problèmes",
"foundBug": "J'ai trouvé un bogue",
"generalAnswered": "La plupart des questions d'ordre général sont répondues dans notre",
"generalQuestion": "J'ai une question d'ordre général",
"learnMore": "En savoir plus",
"letUsKnow": "nous en aviser",
"orExist": "ou se retrouvent dans nos",
"other": "Autres",
"readDocs": "Lire la documentation",
"title": "Comment pouvons-nous vous aider ?",
"troubleshooting": "Résolution de problèmes",
"tweakVideo": "Je veux ajuster ma sortie vidéo",
"useStorage": "Je veux utiliser un fournisseur de stockage externe"
},
"LogTable": {
"error": "Erreur",
"info": "Info",
"level": "Niveau",
"logs": "Journaux",
"message": "Message",
"timestamp": "Horodatage",
"warning": "Alerte"
},
"NewsFeed": {
"link": "Lien",
"noNews": "No news.",
"title": "Actualités et Mises à jour d'Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Diffusion en cours",
"currentViewers": "Spectateurs présents",
"last12Hours": "Dernières 12 heures",
"last24Hours": "Dernières 24 heures",
"last30Days": "Derniers 30 jours",
"last3Months": "Derniers 3 mois",
"last6Months": "Derniers 6 mois",
"last7Days": "Derniers 7 jours",
"maxViewers": "max spectateurs",
"maxViewersLastStream": "Max spectateurs pour la dernière diffusion",
"maxViewersThisStream": "Max spectateurs pour cette diffusion",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Veuillez patienter",
"title": "Infos Spectateur",
"viewers": "Spectateurs"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Traduction Manquante Admin.emojiPageDescription: Veuillez signaler</em></strong>", "emojiPageDescription": "<strong><em>Traduction Manquante Admin.emojiPageDescription: Veuillez signaler</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Traduction Manquante Admin.emojiUploadBulkGuide : Veuillez signaler</em></strong>", "emojiUploadBulkGuide": "<strong><em>Traduction Manquante Admin.emojiUploadBulkGuide : Veuillez signaler</em></strong>",
"emojis": "<strong><em>Traduction Manquante Admin.emojis: Veuillez signaler</em></strong>", "emojis": "<strong><em>Traduction Manquante Admin.emojis: Veuillez signaler</em></strong>",
"uploadNewEmoji": "<strong><em>Traduction Manquante Admin.uploadNewEmoji: Veuillez signaler</em></strong>" "uploadNewEmoji": "<strong><em>Traduction Manquante Admin.uploadNewEmoji: Veuillez signaler</em></strong>"
}, },
"Banned Users": "Utilisateurs Bannis",
"Bring in moderators to help keep your chat in order": "Faites appel à des modérateurs pour vous aider à maintenir l'ordre dans votre chat.",
"CPU": "Processeur",
"Chat Messages": "Messages du Clavardage",
"Chat is disabled": "Clavardage désactivé",
"Chat is offline": "Clavardage hors ligne",
"Chat will be available when the stream is live": "Le clavardage sera disponible lorsque la diffusion sera en cours.",
"Chat will continue to be disabled until you begin a live stream": "Le clavardage continuera d'être désactivé jusqu'à ce que vous commenciez une diffusion en direct.",
"Click and never miss future streams!": "Cliquez et ne manquez pas les prochaines diffusions !",
"Common": { "Common": {
"poweredByOwncastVersion": "Propulsé par <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Propulsé par <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Tâches courantes",
"Connected": "Connecté",
"Contribute": "Contribuer",
"Current stream": "Diffusion en cours",
"Current viewers": "Spectateurs présents",
"Disk": "Disque",
"Documentation": "Documentation",
"Embed your video onto other sites": "Intégrez votre vidéo à d'autres sites",
"Enable Owncast social features": "Activez les fonctionnalités sociales d'Owncast",
"Error": "Erreur",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Trouvez un public sur le Répertoire Owncast",
"Fix your problems": "Résolution de problèmes",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Autoriser", "allowButton": "Autoriser",
@@ -44,6 +96,7 @@
"deniedTitle": "Les notifications sont bloquées sur votre appareil", "deniedTitle": "Les notifications sont bloquées sur votre appareil",
"enabledDescription": "Pour désactiver les notifications push de {{hostname}} accédez aux autorisations de votre navigateur pour ce site et désactivez les notifications. <a href='https://owncast.online/docs/notifications'>En savoir plus.</a>", "enabledDescription": "Pour désactiver les notifications push de {{hostname}} accédez aux autorisations de votre navigateur pour ce site et désactivez les notifications. <a href='https://owncast.online/docs/notifications'>En savoir plus.</a>",
"enabledTitle": "Les notifications sont activées", "enabledTitle": "Les notifications sont activées",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Erreur de notification du navigateur", "errorTitle": "Erreur de notification du navigateur",
"iosAddButton": "Ajouter", "iosAddButton": "Ajouter",
"iosAddToHomeScreen": "Ajouter à l'écran d'accueil", "iosAddToHomeScreen": "Ajouter à l'écran d'accueil",
@@ -60,120 +113,39 @@
"unsupported": "Les notifications du navigateur ne sont pas prises en charge dans votre navigateur.", "unsupported": "Les notifications du navigateur ne sont pas prises en charge dans votre navigateur.",
"unsupportedLocal": "Les notifications du navigateur ne sont pas prises en charge par les serveurs locaux." "unsupportedLocal": "Les notifications du navigateur ne sont pas prises en charge par les serveurs locaux."
}, },
"Footer": {
"contribute": "Contribuer",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Clavardage hors ligne",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Aller au contenu de la page",
"skipToFooter": "Aller au pied de page",
"skipToOfflineMessage": "Aller au message hors ligne",
"skipToPlayer": "Aller au lecteur vidéo"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Traduction manquante Frontend.chatOffline: Veuillez signaler</em></strong>", "chatOffline": "<strong><em>Traduction manquante Frontend.chatOffline: Veuillez signaler</em></strong>",
"componentError": "Erreur: {{message}}", "componentError": "Erreur: {{message}}",
"helloWorld": "<strong><em>Traduction manquante Frontend.helloWorld : Veuillez signaler</em></strong>", "helloWorld": "<strong><em>Traduction manquante Frontend.helloWorld : Veuillez signaler</em></strong>",
"notificationMessage": "<strong><em>Traduction manquante Frontend.notificationMessage: Veuillez signaler</em></strong>",
"offlineBasic": "Ce flux est hors ligne. Revenez bientôt !", "offlineBasic": "Ce flux est hors ligne. Revenez bientôt !",
"offlineFediverseOnly": "Ce flux est hors ligne. <span class='follow-link'>Suivez</span> {{fediverseAccount}} sur le Fédiverse pour voir la prochaine fois que {{streamer}} sera en live.", "offlineFediverseOnly": "Ce flux est hors ligne. <span class='follow-link'>Suivez</span> {{fediverseAccount}} sur le Fédiverse pour voir la prochaine fois que {{streamer}} sera en live.",
"offlineNotifyAndFediverse": "Ce flux est hors ligne. Vous pouvez <span class='notify-link'>être notifié</span> la prochaine fois que {{streamer}} sera en direct ou <span class='follow-link'>suivre</span> {{fediverseAccount}} sur le Fediverse.", "offlineNotifyAndFediverse": "Ce flux est hors ligne. Vous pouvez <span class='notify-link'>être notifié</span> la prochaine fois que {{streamer}} sera en direct ou <span class='follow-link'>suivre</span> {{fediverseAccount}} sur le Fediverse.",
"offlineNotifyOnly": "Ce flux est hors ligne. <span class='notify-link'>Être notifié</span> la prochaine fois que {{streamer}} sera en ligne." "offlineNotifyOnly": "Ce flux est hors ligne. <span class='notify-link'>Être notifié</span> la prochaine fois que {{streamer}} sera en ligne."
}, },
"Hardware Info": "Infos Matériel",
"Healthy Stream": "Diffusion Saine",
"Help configuring my broadcasting software": "M'aider à configurer mon logiciel de diffusion",
"Hidden messages": "Messages cachés",
"Hide": "Masquer",
"How can we help you?": "Comment pouvons-nous vous aider ?",
"I found a bug": "J'ai trouvé un bogue",
"I have a general question": "J'ai une question d'ordre général",
"I want to build add-ons for Owncast": "Je veux créer des extensions pour Owncast",
"I want to configure my owncast instance": "Je souhaite configurer mon instance Owncast",
"I want to customize my website": "Je veux personnaliser mon site web",
"I want to embed my stream into another site": "Je veux intégrer ma diffusion dans un autre site",
"I want to tweak my video output": "Je veux ajuster ma sortie vidéo",
"I want to use an external storage provider": "Je veux utiliser un fournisseur de stockage externe",
"IP Bans": "IP Bannies",
"If you found a bug, then please": "Si vous avez trouvé un bogue, merci de",
"Inbound Audio Stream": "Flux Audio Entrant",
"Inbound Stream Details": "Détails du Flux Entrant",
"Inbound Video Stream": "Flux Vidéo Entrant",
"Info": "Info",
"Input": "Intrant",
"Last 12 hours": "Dernières 12 heures",
"Last 24 hours": "Dernières 24 heures",
"Last 3 months": "Derniers 3 mois",
"Last 30 days": "Derniers 30 jours",
"Last 6 months": "Derniers 6 mois",
"Last 7 days": "Derniers 7 jours",
"Last live ago": "Dernière diffusion il y a {{timeAgo}}",
"Learn how to point your existing software to your new server and start streaming your content": "Apprenez comment connecter votre logiciel existant à votre nouveau serveur et commencer à diffuser votre contenu.",
"Learn how you can add your Owncast stream to other sites you control": "Apprenez comment ajouter votre diffusion Owncast à d'autres sites que vous administrez.",
"Learn more": "En savoir plus",
"Learn more about chat moderation here": "En savoir plus sur la modération du chat ici.",
"Level": "Niveau",
"Link": "Lien",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "Inscrivez-vous dans le Répertoire Owncast et présentez votre diffusion. Activez-le dans les"
},
"Logs": "Journaux",
"Manage the messages from viewers that show up on your stream": "Gérez les messages des spectateurs qui rejoignent votre diffusion.",
"Max viewers last stream": "Max spectateurs pour la dernière diffusion",
"Max viewers this stream": "Max spectateurs pour cette diffusion",
"Memory": "Mémoire",
"Message": "Message",
"Moderators": "Modérateurs",
"Most general questions are answered in our": "La plupart des questions d'ordre général sont répondues dans notre",
"News & Updates from Owncast": "Actualités et Mises à jour d'Owncast",
"No": "Non",
"No hardware details have been collected yet": "Aucune donnée sur le matériel n'a encore été recueillie.",
"No news": "Pas de nouvelles.",
"No stream is active": "Aucune diffusion en cours",
"No viewer data has been collected yet": "Aucune donnée sur les spectateurs n'a encore été recueillie.",
"Notify": "Notifier",
"Other": "Autres",
"Outbound Audio Stream": "Flux Audio Sortant",
"Outbound Stream Details": "Détails du Flux Sortant",
"Outbound Video Stream": "Flux Vidéo Sortant",
"Overridden via command line": "Remplacé via la ligne de commande.",
"Peak viewer count": "Pic d'audience",
"Playback Health": "Santé de Lecture",
"Please wait": "Veuillez patienter",
"Read the Docs": "Lire la documentation",
"Show": "Afficher",
"Skip to footer": "Aller au pied de page",
"Skip to offline message": "Aller au message hors ligne",
"Skip to page content": "Aller au contenu de la page",
"Skip to player": "Aller au lecteur vidéo",
"Source": "Source",
"Stay updated!": "Restez à jour !",
"Stream health represents": "La Santé de Diffusion représente",
"Stream started": "Diffusion démarrée",
"TROUBLESHOOT": "RÉSOUDRE",
"Testing": { "Testing": {
"itemCount": "<strong><em>Traduction Manquante Testing.itemCount: Veuillez signaler</em></strong>", "itemCount": "<strong><em>Traduction Manquante Testing.itemCount: Veuillez signaler</em></strong>",
"messageCount": "<strong><em>Traduction Manquante Testing.messageCount: Veuillez signaler</em></strong>", "messageCount": "<strong><em>Traduction Manquante Testing.messageCount: Veuillez signaler</em></strong>",
"noPluralKey": "<strong><em>Traduction Manquante Testing.noPluralKey: Veuillez signaler</em></strong>", "noPluralKey": "<strong><em>Traduction Manquante Testing.noPluralKey: Veuillez signaler</em></strong>",
"simpleKey": "<strong><em>Traduction Manquante Testing.simpleKey: Veuillez signaler</em></strong>" "simpleKey": "<strong><em>Traduction Manquante Testing.simpleKey: Veuillez signaler</em></strong>"
}, }
"Time": "Date et heure",
"Timestamp": "Horodatage",
"Troubleshooting": "Résolution de problèmes",
"Use your broadcasting software": "Utilisez votre logiciel de diffusion",
"User": "Utilisateur",
"View": "Afficher",
"Viewer Info": "Infos Spectateur",
"Viewers": "Spectateurs",
"Visible messages": "Messages visibles",
"Visit the": "Consultez la",
"Warning": "Alerte",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "Lorsqu'une diffusion est en cours avec le clavardage activé, les utilisateurs connectés au clavardage seront affichés ici.",
"Yes": "Oui",
"You can build your own bots, overlays, tools and add-ons with our": "Vous pouvez créer vos propres robots logiciels, superpositions et extensions avec notre",
"You should start one": "Vous devriez en démarrer une.",
"developer APIs": "API développeur.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "nous en aviser",
"max viewers": "max spectateurs",
"of all known players": {
" Other player status is unknown": "de tous les lecteurs connus. Le statut des autres lecteurs est inconnu."
},
"offline": "hors ligne",
"offline_basic": "Ce flux est hors ligne. Revenez bientôt !",
"or exist in our": "ou se retrouvent dans nos",
"settings": "paramètres.",
"to configure additional details about your viewers": "pour configurer des détails supplémentaires à propos de vos spectateurs.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "afin que votre instance rejoigne le Fédiverse ce qui permettra aux gens de suivre, partager et participer à votre diffusion en direct.",
"used": "utilisé"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Méadaigh do lucht féachana trí bheith le feiceáil san <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Clár Owncast</strong></a>. Is seirbhís sheachtrach í a reáchtálann an tionscadal Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Faigh tuilleadh eolais</a>.", "directoryDescription": "Méadaigh do lucht féachana trí bheith le feiceáil san <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Clár Owncast</strong></a>. Is seirbhís sheachtrach í a reáchtálann an tionscadal Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Faigh tuilleadh eolais</a>.",
"offlineMessageDescription": "Taispeántar an teachtaireacht as líne do chuairteoirí do leathanach nuair nach bhfuil tú ag sruthú. Tacaítear le Markdown.", "offlineMessageDescription": "Taispeántar an teachtaireacht as líne do chuairteoirí do leathanach nuair nach bhfuil tú ag sruthú. Tacaítear le Markdown.",
"serverUrlRequiredForDirectory": "Caithfidh tú do <strong>URL freastalaí</strong> a shocrú thuas chun an cláraithe a chumasú." "serverUrlRequiredForDirectory": "Caithfidh tú do <strong>URL freastalaí</strong> a shocrú thuas chun an cláraithe a chumasú."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Spreagadh aistriú Admin.emojiPageDescription: Tuiscint le do thoil</em></strong>", "emojiPageDescription": "<strong><em>Spreagadh aistriú Admin.emojiPageDescription: Tuiscint le do thoil</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Spreagadh aistriú Admin.emojiUploadBulkGuide: Tuiscint le do thoil</em></strong>", "emojiUploadBulkGuide": "<strong><em>Spreagadh aistriú Admin.emojiUploadBulkGuide: Tuiscint le do thoil</em></strong>",
"emojis": "<strong><em>Spreagadh aistriú Admin.emojis: Tuiscint le do thoil</em></strong>", "emojis": "<strong><em>Spreagadh aistriú Admin.emojis: Tuiscint le do thoil</em></strong>",
"uploadNewEmoji": "<strong><em>Spreagadh aistriú Admin.uploadNewEmoji: Tuiscint le do thoil</em></strong>" "uploadNewEmoji": "<strong><em>Spreagadh aistriú Admin.uploadNewEmoji: Tuiscint le do thoil</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "Tug isteach na moderátóirí chun cabhrú le do chomhrá a choinneáil ar ord.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Fuarthas ó <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Fuarthas ó <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Ceadaigh", "allowButton": "Ceadaigh",
@@ -44,6 +96,7 @@
"deniedTitle": "Tá fógraí blocáilte ar do ghléas", "deniedTitle": "Tá fógraí blocáilte ar do ghléas",
"enabledDescription": "Chun fógraí piocála a dhíchumasú ó {{hostname}} gabh chuig do cheaduithe brabhsála do shuíomh seo agus cas as fógraí. <a href='https://owncast.online/docs/notifications'>Tuilleadh eolais.</a>", "enabledDescription": "Chun fógraí piocála a dhíchumasú ó {{hostname}} gabh chuig do cheaduithe brabhsála do shuíomh seo agus cas as fógraí. <a href='https://owncast.online/docs/notifications'>Tuilleadh eolais.</a>",
"enabledTitle": "Tá fógraí cumasaithe", "enabledTitle": "Tá fógraí cumasaithe",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Earráid Fógra Brabhsála", "errorTitle": "Earráid Fógra Brabhsála",
"iosAddButton": "Cuir le hUimh", "iosAddButton": "Cuir le hUimh",
"iosAddToHomeScreen": "Cuir chuig an scáileán baile", "iosAddToHomeScreen": "Cuir chuig an scáileán baile",
@@ -60,120 +113,39 @@
"unsupported": "Ní tacaítear le fógraí brabhsálaí i do bhrabhsálaí.", "unsupported": "Ní tacaítear le fógraí brabhsálaí i do bhrabhsálaí.",
"unsupportedLocal": "Ní tacaítear le fógraí brabhsálaí do shailéain áitiúla." "unsupportedLocal": "Ní tacaítear le fógraí brabhsálaí do shailéain áitiúla."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Tá an aistriúchan Frontend.chatOffline ar iarraidh: Tuairiscigh le do thoil</em></strong>", "chatOffline": "<strong><em>Tá an aistriúchan Frontend.chatOffline ar iarraidh: Tuairiscigh le do thoil</em></strong>",
"componentError": "Earráid: {{message}}", "componentError": "Earráid: {{message}}",
"helloWorld": "<strong><em>Tá an aistriúchan Frontend.helloWorld ar iarraidh: Tuairiscigh le do thoil</em></strong>", "helloWorld": "<strong><em>Tá an aistriúchan Frontend.helloWorld ar iarraidh: Tuairiscigh le do thoil</em></strong>",
"notificationMessage": "<strong><em>Tá an aistriúchan Frontend.notificationMessage ar iarraidh: Tuairiscigh le do thoil</em></strong>",
"offlineBasic": "Tá an sruth seo as líne. Seiceáil arís go luath!", "offlineBasic": "Tá an sruth seo as líne. Seiceáil arís go luath!",
"offlineFediverseOnly": "Tá an sruth seo as líne. <span class='follow-link'>Lean</span> {{fediverseAccount}} ar an Fediverse chun a fheiceáil an uair a bhíonn {{streamer}} ar líne.", "offlineFediverseOnly": "Tá an sruth seo as líne. <span class='follow-link'>Lean</span> {{fediverseAccount}} ar an Fediverse chun a fheiceáil an uair a bhíonn {{streamer}} ar líne.",
"offlineNotifyAndFediverse": "Tá an sruth seo as líne. Is féidir leat <span class='notify-link'>a bheith rabhaidh</span> an uair a bhíonn {{streamer}} ar líne nó <span class='follow-link'>lean</span> {{fediverseAccount}} ar an Fediverse.", "offlineNotifyAndFediverse": "Tá an sruth seo as líne. Is féidir leat <span class='notify-link'>a bheith rabhaidh</span> an uair a bhíonn {{streamer}} ar líne nó <span class='follow-link'>lean</span> {{fediverseAccount}} ar an Fediverse.",
"offlineNotifyOnly": "Tá an sruth seo as líne. <span class='notify-link'>Bí rabhaidh</span> an uair a bhíonn {{streamer}} ar líne." "offlineNotifyOnly": "Tá an sruth seo as líne. <span class='notify-link'>Bí rabhaidh</span> an uair a bhíonn {{streamer}} ar líne."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "An t-ainm beo deireanach {{timeAgo}} ó shin",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "Foghlaim tuilleadh faoi mhodhnú comhrá anseo.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Tá an aistriúchan Testing.itemCount ar iarraidh: Tuairiscigh le do thoil</em></strong>", "itemCount": "<strong><em>Tá an aistriúchan Testing.itemCount ar iarraidh: Tuairiscigh le do thoil</em></strong>",
"messageCount": "<strong><em>Tá an aistriúchan Testing.messageCount ar iarraidh: Tuairiscigh le do thoil</em></strong>", "messageCount": "<strong><em>Tá an aistriúchan Testing.messageCount ar iarraidh: Tuairiscigh le do thoil</em></strong>",
"noPluralKey": "<strong><em>Tá an aistriúchan Testing.noPluralKey ar iarraidh: Tuairiscigh le do thoil</em></strong>", "noPluralKey": "<strong><em>Tá an aistriúchan Testing.noPluralKey ar iarraidh: Tuairiscigh le do thoil</em></strong>",
"simpleKey": "<strong><em>Tá an aistriúchan Testing.simpleKey ar iarraidh: Tuairiscigh le do thoil</em></strong>" "simpleKey": "<strong><em>Tá an aistriúchan Testing.simpleKey ar iarraidh: Tuairiscigh le do thoil</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "Tá an sruth seo as líne. Seiceáil arís go luath!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "अपने दर्शकों को <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast निर्देशिका</strong></a> में दिखाई देकर बढ़ाएं। यह एक बाहरी सेवा है जिसे Owncast प्रोजेक्ट द्वारा संचालित किया जाता है। <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">अधिक जानें</a>.", "directoryDescription": "अपने दर्शकों को <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast निर्देशिका</strong></a> में दिखाई देकर बढ़ाएं। यह एक बाहरी सेवा है जिसे Owncast प्रोजेक्ट द्वारा संचालित किया जाता है। <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">अधिक जानें</a>.",
"offlineMessageDescription": "ऑफलाइन संदेश आपके पृष्ठ के आगंतुकों को तब दिखाया जाता है जब आप स्ट्रीमिंग नहीं कर रहे होते हैं। मार्कडाउन समर्थित है।", "offlineMessageDescription": "ऑफलाइन संदेश आपके पृष्ठ के आगंतुकों को तब दिखाया जाता है जब आप स्ट्रीमिंग नहीं कर रहे होते हैं। मार्कडाउन समर्थित है।",
"serverUrlRequiredForDirectory": "आपको निर्देशिका को सक्षम करने के लिए अपने <strong>सर्वर URL</strong> को ऊपर सेट करना होगा।" "serverUrlRequiredForDirectory": "आपको निर्देशिका को सक्षम करने के लिए अपने <strong>सर्वर URL</strong> को ऊपर सेट करना होगा।"
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>खोई हुई अनुवाद Admin.emojiPageDescription: कृपया रिपोर्ट करें</em></strong>", "emojiPageDescription": "<strong><em>खोई हुई अनुवाद Admin.emojiPageDescription: कृपया रिपोर्ट करें</em></strong>",
"emojiUploadBulkGuide": "<strong><em>खोई हुई अनुवाद Admin.emojiUploadBulkGuide: कृपया रिपोर्ट करें</em></strong>", "emojiUploadBulkGuide": "<strong><em>खोई हुई अनुवाद Admin.emojiUploadBulkGuide: कृपया रिपोर्ट करें</em></strong>",
"emojis": "<strong><em>खोई हुई अनुवाद Admin.emojis: कृपया रिपोर्ट करें</em></strong>", "emojis": "<strong><em>खोई हुई अनुवाद Admin.emojis: कृपया रिपोर्ट करें</em></strong>",
"uploadNewEmoji": "<strong><em>खोई हुई अनुवाद Admin.uploadNewEmoji: कृपया रिपोर्ट करें</em></strong>" "uploadNewEmoji": "<strong><em>खोई हुई अनुवाद Admin.uploadNewEmoji: कृपया रिपोर्ट करें</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "अपने चैट को व्यवस्थित रखने में मदद करने के लिए मॉडरेटर लाएँ।",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast व{{versionNumber}}</a> द्वारा शक्ति प्राप्त है" "poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast व{{versionNumber}}</a> द्वारा शक्ति प्राप्त है"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "अनुमति दें", "allowButton": "अनुमति दें",
@@ -44,6 +96,7 @@
"deniedTitle": "आपके डिवाइस पर सूचनाएँ अवरुद्ध हैं", "deniedTitle": "आपके डिवाइस पर सूचनाएँ अवरुद्ध हैं",
"enabledDescription": "{{hostname}} से पुश सूचनाओं को निष्क्रिय करने के लिए, कृपया इस साइट के लिए अपने ब्राउज़र अनुमति सेटिंग्स तक पहुँचें और सूचनाएँ बंद करें। <a href='https://owncast.online/docs/notifications'>और जानें।</a>", "enabledDescription": "{{hostname}} से पुश सूचनाओं को निष्क्रिय करने के लिए, कृपया इस साइट के लिए अपने ब्राउज़र अनुमति सेटिंग्स तक पहुँचें और सूचनाएँ बंद करें। <a href='https://owncast.online/docs/notifications'>और जानें।</a>",
"enabledTitle": "सूचनाएँ सक्रिय हैं", "enabledTitle": "सूचनाएँ सक्रिय हैं",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "ब्राउज़र सूचना त्रुटि", "errorTitle": "ब्राउज़र सूचना त्रुटि",
"iosAddButton": "जोड़ें", "iosAddButton": "जोड़ें",
"iosAddToHomeScreen": "होम स्क्रीन पर जोड़ें", "iosAddToHomeScreen": "होम स्क्रीन पर जोड़ें",
@@ -60,120 +113,39 @@
"unsupported": "ब्राउज़र में ब्राउज़र सूचनाएँ समर्थित नहीं हैं।", "unsupported": "ब्राउज़र में ब्राउज़र सूचनाएँ समर्थित नहीं हैं।",
"unsupportedLocal": "स्थानीय सर्वरों के लिए ब्राउज़र सूचनाएँ समर्थित नहीं हैं।" "unsupportedLocal": "स्थानीय सर्वरों के लिए ब्राउज़र सूचनाएँ समर्थित नहीं हैं।"
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>अनुवाद गायब Frontend.chatOffline: कृपया रिपोर्ट करें</em></strong>", "chatOffline": "<strong><em>अनुवाद गायब Frontend.chatOffline: कृपया रिपोर्ट करें</em></strong>",
"componentError": "त्रुटि: {{message}}", "componentError": "त्रुटि: {{message}}",
"helloWorld": "<strong><em>अनुवाद गायब Frontend.helloWorld: कृपया रिपोर्ट करें</em></strong>", "helloWorld": "<strong><em>अनुवाद गायब Frontend.helloWorld: कृपया रिपोर्ट करें</em></strong>",
"notificationMessage": "<strong><em>अनुवाद गायब Frontend.notificationMessage: कृपया रिपोर्ट करें</em></strong>",
"offlineBasic": "यह स्ट्रीम ऑफ़लाइन है। कृपया जल्द ही वापस आएं!", "offlineBasic": "यह स्ट्रीम ऑफ़लाइन है। कृपया जल्द ही वापस आएं!",
"offlineFediverseOnly": "यह स्ट्रीम ऑफ़लाइन है। <span class='follow-link'>अनुसरण करें</span> {{fediverseAccount}} Fediverse पर अगली बार देखने के लिए जब {{streamer}} लाइव जाएं।", "offlineFediverseOnly": "यह स्ट्रीम ऑफ़लाइन है। <span class='follow-link'>अनुसरण करें</span> {{fediverseAccount}} Fediverse पर अगली बार देखने के लिए जब {{streamer}} लाइव जाएं।",
"offlineNotifyAndFediverse": "यह स्ट्रीम ऑफ़लाइन है। आप अगले बार जब {{streamer}} लाइव जाएं तो <span class='notify-link'>सूचित</span> हो सकते हैं या <span class='follow-link'>अनुसरण</span> कर सकते हैं {{fediverseAccount}} को Fediverse पर।", "offlineNotifyAndFediverse": "यह स्ट्रीम ऑफ़लाइन है। आप अगले बार जब {{streamer}} लाइव जाएं तो <span class='notify-link'>सूचित</span> हो सकते हैं या <span class='follow-link'>अनुसरण</span> कर सकते हैं {{fediverseAccount}} को Fediverse पर।",
"offlineNotifyOnly": "यह स्ट्रीम ऑफ़लाइन है। <span class='notify-link'>सूचित हों</span> अगली बार जब {{streamer}} लाइव जाएं।" "offlineNotifyOnly": "यह स्ट्रीम ऑफ़लाइन है। <span class='notify-link'>सूचित हों</span> अगली बार जब {{streamer}} लाइव जाएं।"
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "पिछली बार लाइव {{timeAgo}} पहले",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "यहाँ चैट मॉडरेशन के बारे में अधिक जानें।",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>अनुवाद गायब Testing.itemCount: कृपया रिपोर्ट करें</em></strong>", "itemCount": "<strong><em>अनुवाद गायब Testing.itemCount: कृपया रिपोर्ट करें</em></strong>",
"messageCount": "<strong><em>अनुवाद गायब Testing.messageCount: कृपया रिपोर्ट करें</em></strong>", "messageCount": "<strong><em>अनुवाद गायब Testing.messageCount: कृपया रिपोर्ट करें</em></strong>",
"noPluralKey": "<strong><em>अनुवाद गायब Testing.noPluralKey: कृपया रिपोर्ट करें</em></strong>", "noPluralKey": "<strong><em>अनुवाद गायब Testing.noPluralKey: कृपया रिपोर्ट करें</em></strong>",
"simpleKey": "<strong><em>अनुवाद गायब Testing.simpleKey: कृपया रिपोर्ट करें</em></strong>" "simpleKey": "<strong><em>अनुवाद गायब Testing.simpleKey: कृपया रिपोर्ट करें</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "यह स्ट्रीम ऑफ़लाइन है। कृपया जल्द ही देखें!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Povećajte svoju publiku pojavljujući se u <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast direktoriju</strong></a>. Ovo je vanjska usluga koju vodi projekt Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Saznajte više</a>.", "directoryDescription": "Povećajte svoju publiku pojavljujući se u <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast direktoriju</strong></a>. Ovo je vanjska usluga koju vodi projekt Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Saznajte više</a>.",
"offlineMessageDescription": "Poruka izvan mreže prikazuje se vašim posjetiteljima stranice kada ne prenosite. Markdown je podržan.", "offlineMessageDescription": "Poruka izvan mreže prikazuje se vašim posjetiteljima stranice kada ne prenosite. Markdown je podržan.",
"serverUrlRequiredForDirectory": "Morate postaviti svoj <strong>Server URL</strong> iznad kako biste omogućili direktorij." "serverUrlRequiredForDirectory": "Morate postaviti svoj <strong>Server URL</strong> iznad kako biste omogućili direktorij."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Nedostaje prijevod Admin.emojiPageDescription: Molimo prijavite</em></strong>", "emojiPageDescription": "<strong><em>Nedostaje prijevod Admin.emojiPageDescription: Molimo prijavite</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Nedostaje prijevod Admin.emojiUploadBulkGuide: Molimo prijavite</em></strong>", "emojiUploadBulkGuide": "<strong><em>Nedostaje prijevod Admin.emojiUploadBulkGuide: Molimo prijavite</em></strong>",
"emojis": "<strong><em>Nedostaje prijevod Admin.emojis: Molimo prijavite</em></strong>", "emojis": "<strong><em>Nedostaje prijevod Admin.emojis: Molimo prijavite</em></strong>",
"uploadNewEmoji": "<strong><em>Nedostaje prijevod Admin.uploadNewEmoji: Molimo prijavite</em></strong>" "uploadNewEmoji": "<strong><em>Nedostaje prijevod Admin.uploadNewEmoji: Molimo prijavite</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "Uvedite moderatore kako biste pomogli zadržati vašu chat sobu u redu.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Pokreće <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Pokreće <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Dopusti", "allowButton": "Dopusti",
@@ -44,6 +96,7 @@
"deniedTitle": "Obavijesti su blokirane na vašem uređaju", "deniedTitle": "Obavijesti su blokirane na vašem uređaju",
"enabledDescription": "Da biste onemogućili push obavijesti s {{hostname}}, pristupite dozvolama preglednika za ovu stranicu i isključite obavijesti. <a href='https://owncast.online/docs/notifications'>Saznajte više.</a>", "enabledDescription": "Da biste onemogućili push obavijesti s {{hostname}}, pristupite dozvolama preglednika za ovu stranicu i isključite obavijesti. <a href='https://owncast.online/docs/notifications'>Saznajte više.</a>",
"enabledTitle": "Obavijesti su omogućene", "enabledTitle": "Obavijesti su omogućene",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Greška s obavijestima preglednika", "errorTitle": "Greška s obavijestima preglednika",
"iosAddButton": "Dodaj", "iosAddButton": "Dodaj",
"iosAddToHomeScreen": "Dodaj na početni ekran", "iosAddToHomeScreen": "Dodaj na početni ekran",
@@ -60,120 +113,39 @@
"unsupported": "Obavijesti preglednika nisu podržane u vašem pregledniku.", "unsupported": "Obavijesti preglednika nisu podržane u vašem pregledniku.",
"unsupportedLocal": "Obavijesti preglednika nisu podržane za lokalne poslužitelje." "unsupportedLocal": "Obavijesti preglednika nisu podržane za lokalne poslužitelje."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Nedostaje prijevod Frontend.chatOffline: Molimo prijavite</em></strong>", "chatOffline": "<strong><em>Nedostaje prijevod Frontend.chatOffline: Molimo prijavite</em></strong>",
"componentError": "Greška: {{message}}", "componentError": "Greška: {{message}}",
"helloWorld": "<strong><em>Nedostaje prijevod Frontend.helloWorld: Molimo prijavite</em></strong>", "helloWorld": "<strong><em>Nedostaje prijevod Frontend.helloWorld: Molimo prijavite</em></strong>",
"notificationMessage": "<strong><em>Nedostaje prijevod Frontend.notificationMessage: Molimo prijavite</em></strong>",
"offlineBasic": "Ovaj stream je offline. Provjerite ponovno uskoro!", "offlineBasic": "Ovaj stream je offline. Provjerite ponovno uskoro!",
"offlineFediverseOnly": "Ovaj stream je offline. <span class='follow-link'>Pratite</span> {{fediverseAccount}} na Fediversu kako biste vidjeli kada {{streamer}} ponovno ide uživo.", "offlineFediverseOnly": "Ovaj stream je offline. <span class='follow-link'>Pratite</span> {{fediverseAccount}} na Fediversu kako biste vidjeli kada {{streamer}} ponovno ide uživo.",
"offlineNotifyAndFediverse": "Ovaj stream je offline. Možete <span class='notify-link'>biti obaviješteni</span> kada {{streamer}} ponovno ide uživo ili <span class='follow-link'>pratiti</span> {{fediverseAccount}} na Fediversu.", "offlineNotifyAndFediverse": "Ovaj stream je offline. Možete <span class='notify-link'>biti obaviješteni</span> kada {{streamer}} ponovno ide uživo ili <span class='follow-link'>pratiti</span> {{fediverseAccount}} na Fediversu.",
"offlineNotifyOnly": "Ovaj stream je offline. <span class='notify-link'>Budite obaviješteni</span> kada {{streamer}} ponovno ide uživo." "offlineNotifyOnly": "Ovaj stream je offline. <span class='notify-link'>Budite obaviješteni</span> kada {{streamer}} ponovno ide uživo."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "Zadnji put uživo {{timeAgo}} prije",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "Saznajte više o moderiranju chata ovdje.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Nedostaje prijevod Testing.itemCount: Molimo prijavite</em></strong>", "itemCount": "<strong><em>Nedostaje prijevod Testing.itemCount: Molimo prijavite</em></strong>",
"messageCount": "<strong><em>Nedostaje prijevod Testing.messageCount: Molimo prijavite</em></strong>", "messageCount": "<strong><em>Nedostaje prijevod Testing.messageCount: Molimo prijavite</em></strong>",
"noPluralKey": "<strong><em>Nedostaje prijevod Testing.noPluralKey: Molimo prijavite</em></strong>", "noPluralKey": "<strong><em>Nedostaje prijevod Testing.noPluralKey: Molimo prijavite</em></strong>",
"simpleKey": "<strong><em>Nedostaje prijevod Testing.simpleKey: Molimo prijavite</em></strong>" "simpleKey": "<strong><em>Nedostaje prijevod Testing.simpleKey: Molimo prijavite</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "Ovaj stream je offline. Provjerite ponovno uskoro!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Aggiungi la tua istanza Owncast al Fediverso",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Aumenta il tuo pubblico comparendo nella <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Si tratta di un servizio esterno gestito dal progetto Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Per saperne di più</a>.", "directoryDescription": "Aumenta il tuo pubblico comparendo nella <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Si tratta di un servizio esterno gestito dal progetto Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Per saperne di più</a>.",
"offlineMessageDescription": "Il messaggio offline viene visualizzato ai visitatori della pagina quando non sei in streaming. Markdown è supportato.", "offlineMessageDescription": "Il messaggio offline viene visualizzato ai visitatori della pagina quando non sei in streaming. Markdown è supportato.",
"serverUrlRequiredForDirectory": "È necessario impostare l'URL del server <strong></strong> sopra per abilitare la directory." "serverUrlRequiredForDirectory": "È necessario impostare l'URL del server <strong></strong> sopra per abilitare la directory."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disco",
"memory": "Memoria",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Attendere prego",
"title": "Informazioni Hardware",
"used": "usato"
},
"Help": {
"bugPlease": "Se hai trovato un bug, per favore",
"buildAddons": "Voglio costruire componenti aggiuntivi per Owncast",
"buildTools": "È possibile costruire i propri bot, sovrapposizioni, strumenti e componenti aggiuntivi con il nostro",
"commonTasks": "Attività comuni",
"configureBroadcasting": "Aiuta a configurare il mio software di trasmissione",
"configureInstance": "Voglio configurare la mia istanza owncast",
"customizeWebsite": "Voglio personalizzare il mio sito web",
"developerApis": "developer APIs.",
"discussions": "discussioni",
"documentation": "Documentazione",
"embedStream": "Voglio incorporare il mio flusso in un altro sito",
"faq": "FAQ",
"fixProblems": "Risolvi i tuoi problemi",
"foundBug": "Ho trovato un bug",
"generalAnswered": "Le domande più generali sono risposte nel nostro",
"generalQuestion": "Ho una domanda generale",
"learnMore": "Per saperne di più",
"letUsKnow": "faccelo sapere",
"orExist": "o esiste nel nostro",
"other": "Altro",
"readDocs": "Leggi la documentazione",
"title": "Come possiamo aiutarti?",
"troubleshooting": "Risoluzione problemi",
"tweakVideo": "Voglio modificare la mia uscita video",
"useStorage": "Voglio usare un provider di archiviazione esterno"
},
"LogTable": {
"error": "Errore",
"info": "Info",
"level": "Livello",
"logs": "Registri",
"message": "Messaggio",
"timestamp": "Data",
"warning": "Attenzione"
},
"NewsFeed": {
"link": "Collegamento",
"noNews": "No news.",
"title": "Notizie & Aggiornamenti da Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Flusso corrente",
"currentViewers": "Spettatori attuali",
"last12Hours": "Ultime 12 ore",
"last24Hours": "Ultime 24 ore",
"last30Days": "Ultimi 30 giorni",
"last3Months": "Ultimi 3 mesi",
"last6Months": "Ultimi 6 mesi",
"last7Days": "Ultimi 7 giorni",
"maxViewers": "massimo spettatori",
"maxViewersLastStream": "Massimo spettatori ultimo flusso",
"maxViewersThisStream": "Massimo spettatori di questo flusso",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Attendere prego",
"title": "Informazioni Spettatore",
"viewers": "Spettatori"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Manca traduzione Admin.emojiPageDescrizione: Si prega di segnalare</em></strong>", "emojiPageDescription": "<strong><em>Manca traduzione Admin.emojiPageDescrizione: Si prega di segnalare</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Traduzione mancante Admin.emojiUploadBulkGuide: Si prega di segnalare</em></strong>", "emojiUploadBulkGuide": "<strong><em>Traduzione mancante Admin.emojiUploadBulkGuide: Si prega di segnalare</em></strong>",
"emojis": "<strong><em>Traduzione mancante Admin.emojis: Si prega di segnalare</em></strong>", "emojis": "<strong><em>Traduzione mancante Admin.emojis: Si prega di segnalare</em></strong>",
"uploadNewEmoji": "<strong><em>Manca la traduzione Admin.uploadNewEmoji: Si prega di segnalare</em></strong>" "uploadNewEmoji": "<strong><em>Manca la traduzione Admin.uploadNewEmoji: Si prega di segnalare</em></strong>"
}, },
"Banned Users": "Utenti bloccati",
"Bring in moderators to help keep your chat in order": "Portare in moderatori per aiutare a mantenere la chat in ordine.",
"CPU": "CPU",
"Chat Messages": "Messaggi chat",
"Chat is disabled": "La chat è disattivata",
"Chat is offline": "La chat è offline",
"Chat will be available when the stream is live": "La chat sarà disponibile quando lo stream è in diretta.",
"Chat will continue to be disabled until you begin a live stream": "La chat continuerà ad essere disabilitata fino a quando non inizi un live stream.",
"Click and never miss future streams!": "Clicca e non perderti mai le dirette future!",
"Common": { "Common": {
"poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Attività comuni",
"Connected": "Connesso",
"Contribute": "Contribuisci",
"Current stream": "Flusso corrente",
"Current viewers": "Spettatori attuali",
"Disk": "Disco",
"Documentation": "Documentazione",
"Embed your video onto other sites": "Incorpora il tuo video in altri siti",
"Enable Owncast social features": "Abilita funzionalità sociali di Owncast",
"Error": "Errore",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Trova un pubblico nella directory di Owncast",
"Fix your problems": "Risolvi i tuoi problemi",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Consenti", "allowButton": "Consenti",
@@ -44,6 +96,7 @@
"deniedTitle": "Le notifiche sono bloccate sul tuo dispositivo", "deniedTitle": "Le notifiche sono bloccate sul tuo dispositivo",
"enabledDescription": "Per disabilitare le notifiche push da {{hostname}} accedi ai permessi del tuo browser per questo sito e disattiva le notifiche. <a href='https://owncast.online/docs/notifications'>Per saperne di più.</a>", "enabledDescription": "Per disabilitare le notifiche push da {{hostname}} accedi ai permessi del tuo browser per questo sito e disattiva le notifiche. <a href='https://owncast.online/docs/notifications'>Per saperne di più.</a>",
"enabledTitle": "Le notifiche sono abilitate", "enabledTitle": "Le notifiche sono abilitate",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Errore Di Notifica Browser", "errorTitle": "Errore Di Notifica Browser",
"iosAddButton": "Aggiungi", "iosAddButton": "Aggiungi",
"iosAddToHomeScreen": "Aggiungi alla schermata Home", "iosAddToHomeScreen": "Aggiungi alla schermata Home",
@@ -60,120 +113,39 @@
"unsupported": "Le notifiche del browser non sono supportate nel browser.", "unsupported": "Le notifiche del browser non sono supportate nel browser.",
"unsupportedLocal": "Le notifiche del browser non sono supportate per i server locali." "unsupportedLocal": "Le notifiche del browser non sono supportate per i server locali."
}, },
"Footer": {
"contribute": "Contribuisci",
"documentation": "Documentazione",
"source": "Fonte"
},
"Header": {
"chatOffline": "La chat è offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Salta al contenuto della pagina",
"skipToFooter": "Salta al piè di pagina",
"skipToOfflineMessage": "Salta al messaggio fuori rete",
"skipToPlayer": "Vai al lettore video"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Traduzione mancante Frontend.chatOffline: Si prega di segnalare</em></strong>", "chatOffline": "<strong><em>Traduzione mancante Frontend.chatOffline: Si prega di segnalare</em></strong>",
"componentError": "Errore: {{message}}", "componentError": "Errore: {{message}}",
"helloWorld": "<strong><em>Traduzione mancante Frontend.helloWorld: Si prega di segnalare</em></strong>", "helloWorld": "<strong><em>Traduzione mancante Frontend.helloWorld: Si prega di segnalare</em></strong>",
"notificationMessage": "<strong><em>Traduzione mancante Frontend.notificationMessaggio: Si prega di segnalare</em></strong>",
"offlineBasic": "Questo stream è offline. Riprova presto!", "offlineBasic": "Questo stream è offline. Riprova presto!",
"offlineFediverseOnly": "Questo stream è offline. <span class='follow-link'>Segui</span> {{fediverseAccount}} sul Fediverse per vedere la prossima volta che {{streamer}} andrà in diretta.", "offlineFediverseOnly": "Questo stream è offline. <span class='follow-link'>Segui</span> {{fediverseAccount}} sul Fediverse per vedere la prossima volta che {{streamer}} andrà in diretta.",
"offlineNotifyAndFediverse": "Questo stream è offline. È possibile notificare <span class='notify-link'></span> la prossima volta che {{streamer}} va in diretta o <span class='follow-link'>seguire</span> {{fediverseAccount}} sul Fediverse.", "offlineNotifyAndFediverse": "Questo stream è offline. È possibile notificare <span class='notify-link'></span> la prossima volta che {{streamer}} va in diretta o <span class='follow-link'>seguire</span> {{fediverseAccount}} sul Fediverse.",
"offlineNotifyOnly": "Questo stream è offline. <span class='notify-link'>Sii avvisato</span> la prossima volta che {{streamer}} andrà in diretta." "offlineNotifyOnly": "Questo stream è offline. <span class='notify-link'>Sii avvisato</span> la prossima volta che {{streamer}} andrà in diretta."
}, },
"Hardware Info": "Informazioni Hardware",
"Healthy Stream": "Flusso Sano",
"Help configuring my broadcasting software": "Aiuta a configurare il mio software di trasmissione",
"Hidden messages": "Messaggi nascosti",
"Hide": "Nascondi",
"How can we help you?": "Come possiamo aiutarti?",
"I found a bug": "Ho trovato un bug",
"I have a general question": "Ho una domanda generale",
"I want to build add-ons for Owncast": "Voglio costruire componenti aggiuntivi per Owncast",
"I want to configure my owncast instance": "Voglio configurare la mia istanza owncast",
"I want to customize my website": "Voglio personalizzare il mio sito web",
"I want to embed my stream into another site": "Voglio incorporare il mio flusso in un altro sito",
"I want to tweak my video output": "Voglio modificare la mia uscita video",
"I want to use an external storage provider": "Voglio usare un provider di archiviazione esterno",
"IP Bans": "IP Bannati",
"If you found a bug, then please": "Se hai trovato un bug, per favore",
"Inbound Audio Stream": "Flusso Audio In Entrata",
"Inbound Stream Details": "Dettagli Stream In Entrata",
"Inbound Video Stream": "Flusso Video In Entrata",
"Info": "Info",
"Input": "Ingresso",
"Last 12 hours": "Ultime 12 ore",
"Last 24 hours": "Ultime 24 ore",
"Last 3 months": "Ultimi 3 mesi",
"Last 30 days": "Ultimi 30 giorni",
"Last 6 months": "Ultimi 6 mesi",
"Last 7 days": "Ultimi 7 giorni",
"Last live ago": "Ultima diretta {{timeAgo}} fa",
"Learn how to point your existing software to your new server and start streaming your content": "Scopri come puntare il software esistente sul tuo nuovo server e iniziare a trasmettere i tuoi contenuti.",
"Learn how you can add your Owncast stream to other sites you control": "Scopri come puoi aggiungere il tuo flusso Owncast ad altri siti che controlli.",
"Learn more": "Per saperne di più",
"Learn more about chat moderation here": "Scopri di più sulla moderazione della chat qui.",
"Level": "Livello",
"Link": "Collegamento",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "Elenca te stesso nella directory di Owncast e mostra il tuo flusso. Abilitalo in"
},
"Logs": "Registri",
"Manage the messages from viewers that show up on your stream": "Gestisci i messaggi dagli spettatori che appaiono sul tuo flusso.",
"Max viewers last stream": "Massimo spettatori ultimo flusso",
"Max viewers this stream": "Massimo spettatori di questo flusso",
"Memory": "Memoria",
"Message": "Messaggio",
"Moderators": "Moderatori",
"Most general questions are answered in our": "Le domande più generali sono risposte nel nostro",
"News & Updates from Owncast": "Notizie & Aggiornamenti da Owncast",
"No": "No",
"No hardware details have been collected yet": "Non sono stati ancora raccolti dettagli hardware.",
"No news": "Nessuna notizia.",
"No stream is active": "Nessun flusso attivo",
"No viewer data has been collected yet": "Non sono stati ancora raccolti dati degli spettatori.",
"Notify": "Notifica",
"Other": "Altro",
"Outbound Audio Stream": "Flusso Audio In Uscita",
"Outbound Stream Details": "Dettagli Stream In Uscita",
"Outbound Video Stream": "Flusso Video In Uscita",
"Overridden via command line": "Sovrascrivi tramite riga di comando.",
"Peak viewer count": "Picco conteggio spettatore",
"Playback Health": "Salute Riproduzione",
"Please wait": "Attendere prego",
"Read the Docs": "Leggi la documentazione",
"Show": "Mostra",
"Skip to footer": "Salta al piè di pagina",
"Skip to offline message": "Salta al messaggio fuori rete",
"Skip to page content": "Salta al contenuto della pagina",
"Skip to player": "Vai al lettore video",
"Source": "Fonte",
"Stay updated!": "Resta Aggiornato!",
"Stream health represents": "Salute Flusso rappresenta",
"Stream started": "Stream avviato",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Manca la traduzione Testing.itemCount: Si prega di segnalare</em></strong>", "itemCount": "<strong><em>Manca la traduzione Testing.itemCount: Si prega di segnalare</em></strong>",
"messageCount": "<strong><em>Mancante traduzione Testing.messageCount: Si prega di segnalare</em></strong>", "messageCount": "<strong><em>Mancante traduzione Testing.messageCount: Si prega di segnalare</em></strong>",
"noPluralKey": "<strong><em>Manca la traduzione Testing.noPluralKey: Si prega di segnalare</em></strong>", "noPluralKey": "<strong><em>Manca la traduzione Testing.noPluralKey: Si prega di segnalare</em></strong>",
"simpleKey": "<strong><em>Manca la traduzione Testing.simpleKey: Si prega di segnalare</em></strong>" "simpleKey": "<strong><em>Manca la traduzione Testing.simpleKey: Si prega di segnalare</em></strong>"
}, }
"Time": "Tempo",
"Timestamp": "Data",
"Troubleshooting": "Risoluzione problemi",
"Use your broadcasting software": "Usa il tuo software di trasmissione",
"User": "Utente",
"View": "Visualizza",
"Viewer Info": "Informazioni Spettatore",
"Viewers": "Spettatori",
"Visible messages": "Messaggi visibili",
"Visit the": "Visita il",
"Warning": "Attenzione",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "Quando uno stream è attivo e la chat è abilitata, i client di chat connessi verranno visualizzati qui.",
"Yes": "Si",
"You can build your own bots, overlays, tools and add-ons with our": "È possibile costruire i propri bot, sovrapposizioni, strumenti e componenti aggiuntivi con il nostro",
"You should start one": "Dovreste iniziarne uno.",
"developer APIs": "API per sviluppatori.",
"discussions": "discussioni",
"documentation": "documentazione",
"let us know": "faccelo sapere",
"max viewers": "massimo spettatori",
"of all known players": {
" Other player status is unknown": "di tutti i lettori conosciuti. Lo stato di altri lettori è sconosciuto."
},
"offline": "offline",
"offline_basic": "Questo stream è offline. Riprova presto!",
"or exist in our": "o esiste nel nostro",
"settings": "impostazioni.",
"to configure additional details about your viewers": "per configurare ulteriori dettagli sui tuoi spettatori.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "per far partecipare la tua istanza a Fediverse, permettendo alle persone di seguire, condividere e impegnarsi con il tuo live stream.",
"used": "usato"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "<a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast ディレクトリ</strong></a> に表示されることでオーディエンスを増やしましょう。これは Owncast プロジェクトが運営する外部サービスです。<a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">詳細はこちら</a>。", "directoryDescription": "<a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast ディレクトリ</strong></a> に表示されることでオーディエンスを増やしましょう。これは Owncast プロジェクトが運営する外部サービスです。<a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">詳細はこちら</a>。",
"offlineMessageDescription": "オフラインメッセージは、ストリーミングしていないときにページ訪問者に表示されます。Markdown はサポートされています。", "offlineMessageDescription": "オフラインメッセージは、ストリーミングしていないときにページ訪問者に表示されます。Markdown はサポートされています。",
"serverUrlRequiredForDirectory": "ディレクトリを有効にするには、上記の<strong>サーバーURLを</strong>設定する必要があります。" "serverUrlRequiredForDirectory": "ディレクトリを有効にするには、上記の<strong>サーバーURLを</strong>設定する必要があります。"
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>翻訳Admin.emojiPageDescription:</em></strong> を報告してください。", "emojiPageDescription": "<strong><em>翻訳Admin.emojiPageDescription:</em></strong> を報告してください。",
"emojiUploadBulkGuide": "<strong><em>不足している翻訳Admin.emojiUploadBulkGuide: Please report</em></strong>", "emojiUploadBulkGuide": "<strong><em>不足している翻訳Admin.emojiUploadBulkGuide: Please report</em></strong>",
"emojis": "<strong><em>翻訳管理者が見つかりません:</em></strong> を報告してください", "emojis": "<strong><em>翻訳管理者が見つかりません:</em></strong> を報告してください",
"uploadNewEmoji": "<strong><em>翻訳Admin.uploadNewEmoji:</em></strong> を報告してください。" "uploadNewEmoji": "<strong><em>翻訳Admin.uploadNewEmoji:</em></strong> を報告してください。"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "モデレータを連れて来て、チャットを整理しましょう。",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "許可する", "allowButton": "許可する",
@@ -44,6 +96,7 @@
"deniedTitle": "お使いの端末で通知がブロックされています", "deniedTitle": "お使いの端末で通知がブロックされています",
"enabledDescription": "{{hostname}}からのプッシュ通知を無効にするには、このサイトのブラウザの権限にアクセスして通知をオフにしてください。<a href='https://owncast.online/docs/notifications'>詳細を見る。</a>", "enabledDescription": "{{hostname}}からのプッシュ通知を無効にするには、このサイトのブラウザの権限にアクセスして通知をオフにしてください。<a href='https://owncast.online/docs/notifications'>詳細を見る。</a>",
"enabledTitle": "通知が有効です", "enabledTitle": "通知が有効です",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "ブラウザ通知エラー", "errorTitle": "ブラウザ通知エラー",
"iosAddButton": "追加", "iosAddButton": "追加",
"iosAddToHomeScreen": "ホーム画面に追加", "iosAddToHomeScreen": "ホーム画面に追加",
@@ -60,120 +113,39 @@
"unsupported": "ブラウザ通知はお使いのブラウザではサポートされていません。", "unsupported": "ブラウザ通知はお使いのブラウザではサポートされていません。",
"unsupportedLocal": "ブラウザー通知はローカルサーバーではサポートされていません。" "unsupportedLocal": "ブラウザー通知はローカルサーバーではサポートされていません。"
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>見つからない翻訳Frontend.chatOffline:</em></strong> を報告してくださいformat@@4", "chatOffline": "<strong><em>見つからない翻訳Frontend.chatOffline:</em></strong> を報告してくださいformat@@4",
"componentError": "エラー: {{message}}", "componentError": "エラー: {{message}}",
"helloWorld": "<strong><em>Frontend.helloWorldが不足しています:</em></strong> を報告してください", "helloWorld": "<strong><em>Frontend.helloWorldが不足しています:</em></strong> を報告してください",
"notificationMessage": "<strong><em>Frontend.notificationMessage: Please report</em></strong>",
"offlineBasic": "このストリームはオフラインです。もう一度お試しください!", "offlineBasic": "このストリームはオフラインです。もう一度お試しください!",
"offlineFediverseOnly": "このストリームはオフラインです。 <span class='follow-link'></span> {{fediverseAccount}} をFediverse でフォローして、次回 {{streamer}} がライブになるのを確認します。", "offlineFediverseOnly": "このストリームはオフラインです。 <span class='follow-link'></span> {{fediverseAccount}} をFediverse でフォローして、次回 {{streamer}} がライブになるのを確認します。",
"offlineNotifyAndFediverse": "このストリームはオフラインです。次回のライブ配信は {{streamer}} <span class='notify-link'>に通知さ</span>れるか、Fediverse で {{fediverseAccount}} を<span class='follow-link'>フォローして</span>ください。", "offlineNotifyAndFediverse": "このストリームはオフラインです。次回のライブ配信は {{streamer}} <span class='notify-link'>に通知さ</span>れるか、Fediverse で {{fediverseAccount}} を<span class='follow-link'>フォローして</span>ください。",
"offlineNotifyOnly": "このストリームはオフラインです。 <span class='notify-link'></span> 次回 {{streamer}} がライブになるときに通知されます。" "offlineNotifyOnly": "このストリームはオフラインです。 <span class='notify-link'></span> 次回 {{streamer}} がライブになるときに通知されます。"
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "前回のライブ {{timeAgo}} 前",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "チャットモデレーションの詳細については、こちらをご覧ください。",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>不足している翻訳テスト。itemCount: Please report</em></strong>", "itemCount": "<strong><em>不足している翻訳テスト。itemCount: Please report</em></strong>",
"messageCount": "<strong><em>不足している翻訳Testing.messageCount: Please report</em></strong>", "messageCount": "<strong><em>不足している翻訳Testing.messageCount: Please report</em></strong>",
"noPluralKey": "<strong><em>不足している翻訳Testing.noPluralKey: Please report</em></strong>", "noPluralKey": "<strong><em>不足している翻訳Testing.noPluralKey: Please report</em></strong>",
"simpleKey": "<strong><em>不足している翻訳Testing.simpleKey: Please report</em></strong>" "simpleKey": "<strong><em>不足している翻訳Testing.simpleKey: Please report</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "このストリームはオフラインです。もう一度お試しください!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "<a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast 디렉토리</strong></a>에 나타나 청중을 늘리세요. 이 서비스는 Owncast 프로젝트에서 운영하는 외부 서비스입니다. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">자세히 알아보기</a>.", "directoryDescription": "<a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast 디렉토리</strong></a>에 나타나 청중을 늘리세요. 이 서비스는 Owncast 프로젝트에서 운영하는 외부 서비스입니다. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">자세히 알아보기</a>.",
"offlineMessageDescription": "스트리밍을 하지 않을 때 페이지 방문자에게 오프라인 메시지가 표시됩니다. 마크다운이 지원됩니다.", "offlineMessageDescription": "스트리밍을 하지 않을 때 페이지 방문자에게 오프라인 메시지가 표시됩니다. 마크다운이 지원됩니다.",
"serverUrlRequiredForDirectory": "디렉토리를 활성화하려면 위에서 <strong>서버 URL을</strong> 설정해야 합니다." "serverUrlRequiredForDirectory": "디렉토리를 활성화하려면 위에서 <strong>서버 URL을</strong> 설정해야 합니다."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>번역이 누락되었습니다 관리자.이모티콘 페이지 설명: 신고하세요</em></strong>", "emojiPageDescription": "<strong><em>번역이 누락되었습니다 관리자.이모티콘 페이지 설명: 신고하세요</em></strong>",
"emojiUploadBulkGuide": "<strong><em>번역이 누락되었습니다 Admin.emojiUploadBulkGuide: 신고하세요</em></strong>", "emojiUploadBulkGuide": "<strong><em>번역이 누락되었습니다 Admin.emojiUploadBulkGuide: 신고하세요</em></strong>",
"emojis": "<strong><em>번역이 누락된 관리자 이모티콘: 신고하세요</em></strong>", "emojis": "<strong><em>번역이 누락된 관리자 이모티콘: 신고하세요</em></strong>",
"uploadNewEmoji": "<strong><em>번역이 누락되었습니다 Admin.uploadNewEmoji: 신고하세요</em></strong>" "uploadNewEmoji": "<strong><em>번역이 누락되었습니다 Admin.uploadNewEmoji: 신고하세요</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "모더레이터를 초대하여 채팅의 질서를 유지하도록 도와주세요.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast v 제공{{versionNumber}}</a>" "poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast v 제공{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "허용", "allowButton": "허용",
@@ -44,6 +96,7 @@
"deniedTitle": "귀하의 기기에서 알림이 차단되었습니다", "deniedTitle": "귀하의 기기에서 알림이 차단되었습니다",
"enabledDescription": "{{hostname}}에서 푸시 알림을 비활성화하려면 이 사이트의 브라우저 권한에 접근하여 알림을 끄십시오. <a href='https://owncast.online/docs/notifications'>자세히 알아보기.</a>", "enabledDescription": "{{hostname}}에서 푸시 알림을 비활성화하려면 이 사이트의 브라우저 권한에 접근하여 알림을 끄십시오. <a href='https://owncast.online/docs/notifications'>자세히 알아보기.</a>",
"enabledTitle": "알림이 활성화되었습니다", "enabledTitle": "알림이 활성화되었습니다",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "브라우저 알림 오류", "errorTitle": "브라우저 알림 오류",
"iosAddButton": "추가", "iosAddButton": "추가",
"iosAddToHomeScreen": "홈 화면에 추가", "iosAddToHomeScreen": "홈 화면에 추가",
@@ -60,120 +113,39 @@
"unsupported": "브라우저에서 브라우저 알림이 지원되지 않습니다.", "unsupported": "브라우저에서 브라우저 알림이 지원되지 않습니다.",
"unsupportedLocal": "로컬 서버에 대한 브라우저 알림은 지원되지 않습니다." "unsupportedLocal": "로컬 서버에 대한 브라우저 알림은 지원되지 않습니다."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>번역이 누락되었습니다 Frontend.chatOffline: 신고하세요</em></strong>", "chatOffline": "<strong><em>번역이 누락되었습니다 Frontend.chatOffline: 신고하세요</em></strong>",
"componentError": "오류: {{message}}", "componentError": "오류: {{message}}",
"helloWorld": "<strong><em>번역이 누락되었습니다 Frontend.helloWorld: 보고해 주세요</em></strong>", "helloWorld": "<strong><em>번역이 누락되었습니다 Frontend.helloWorld: 보고해 주세요</em></strong>",
"notificationMessage": "<strong><em>번역이 누락되었습니다 Frontend.notificationMessage: 신고하세요</em></strong>",
"offlineBasic": "이 스트림은 오프라인 상태입니다. 곧 다시 확인해주세요!", "offlineBasic": "이 스트림은 오프라인 상태입니다. 곧 다시 확인해주세요!",
"offlineFediverseOnly": "이 스트림은 오프라인 상태입니다. 다음 번 {{streamer}} 라이브 방송을 보려면 Fediverse에서 {{fediverseAccount}} <span class='follow-link'>팔로우하세요</span>.", "offlineFediverseOnly": "이 스트림은 오프라인 상태입니다. 다음 번 {{streamer}} 라이브 방송을 보려면 Fediverse에서 {{fediverseAccount}} <span class='follow-link'>팔로우하세요</span>.",
"offlineNotifyAndFediverse": "이 스트림은 오프라인 상태입니다. 다음 번에 {{streamer}} 가 생방송될 때 <span class='notify-link'>알림을</span> 받거나 페디버스에서 {{fediverseAccount}} 을 <span class='follow-link'>팔로우하세요</span>.", "offlineNotifyAndFediverse": "이 스트림은 오프라인 상태입니다. 다음 번에 {{streamer}} 가 생방송될 때 <span class='notify-link'>알림을</span> 받거나 페디버스에서 {{fediverseAccount}} 을 <span class='follow-link'>팔로우하세요</span>.",
"offlineNotifyOnly": "이 스트림은 오프라인 상태입니다. 다음에 {{streamer}} 가 생방송될 때 <span class='notify-link'>알림을</span> 받으세요." "offlineNotifyOnly": "이 스트림은 오프라인 상태입니다. 다음에 {{streamer}} 가 생방송될 때 <span class='notify-link'>알림을</span> 받으세요."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "마지막 라이브 {{timeAgo}} 전",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "여기에서 채팅 중재에 대해 자세히 알아보세요.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>누락된 번역 Testing.itemCount: 보고해 주세요</em></strong>", "itemCount": "<strong><em>누락된 번역 Testing.itemCount: 보고해 주세요</em></strong>",
"messageCount": "<strong><em>누락된 번역 Testing.messageCount: 보고해 주세요</em></strong>", "messageCount": "<strong><em>누락된 번역 Testing.messageCount: 보고해 주세요</em></strong>",
"noPluralKey": "<strong><em>누락된 번역 Testing.noPluralKey: 보고해 주세요</em></strong>", "noPluralKey": "<strong><em>누락된 번역 Testing.noPluralKey: 보고해 주세요</em></strong>",
"simpleKey": "<strong><em>누락된 번역 Testing.simpleKey: 보고해 주세요</em></strong>" "simpleKey": "<strong><em>누락된 번역 Testing.simpleKey: 보고해 주세요</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "이 스트림은 오프라인 상태입니다. 곧 다시 확인해주세요!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Tingkatkan audiens anda dengan muncul di <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Direktori Owncast</strong></a>. Ini adalah perkhidmatan luaran yang dikendalikan oleh projek Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Ketahui lebih lanjut</a>.", "directoryDescription": "Tingkatkan audiens anda dengan muncul di <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Direktori Owncast</strong></a>. Ini adalah perkhidmatan luaran yang dikendalikan oleh projek Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Ketahui lebih lanjut</a>.",
"offlineMessageDescription": "Mesej luar talian dipaparkan kepada pelawat halaman anda apabila anda tidak sedang penyiaran. Markdown disokong.", "offlineMessageDescription": "Mesej luar talian dipaparkan kepada pelawat halaman anda apabila anda tidak sedang penyiaran. Markdown disokong.",
"serverUrlRequiredForDirectory": "Anda mesti menetapkan <strong>URL Pelayan</strong> anda di atas untuk membolehkan direktori." "serverUrlRequiredForDirectory": "Anda mesti menetapkan <strong>URL Pelayan</strong> anda di atas untuk membolehkan direktori."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Terjemahan hilang Admin.emojiPageDescription: Sila laporkan</em></strong>", "emojiPageDescription": "<strong><em>Terjemahan hilang Admin.emojiPageDescription: Sila laporkan</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Terjemahan hilang Admin.emojiUploadBulkGuide: Sila laporkan</em></strong>", "emojiUploadBulkGuide": "<strong><em>Terjemahan hilang Admin.emojiUploadBulkGuide: Sila laporkan</em></strong>",
"emojis": "<strong><em>Terjemahan hilang Admin.emojis: Sila laporkan</em></strong>", "emojis": "<strong><em>Terjemahan hilang Admin.emojis: Sila laporkan</em></strong>",
"uploadNewEmoji": "<strong><em>Terjemahan hilang Admin.uploadNewEmoji: Sila laporkan</em></strong>" "uploadNewEmoji": "<strong><em>Terjemahan hilang Admin.uploadNewEmoji: Sila laporkan</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "Bawa masuk moderator untuk membantu memastikan chat anda dalam keadaan teratur.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Dikuasakan oleh <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Dikuasakan oleh <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Benarkan", "allowButton": "Benarkan",
@@ -44,6 +96,7 @@
"deniedTitle": "Pemberitahuan disekat pada peranti anda", "deniedTitle": "Pemberitahuan disekat pada peranti anda",
"enabledDescription": "Untuk melumpuhkan pemberitahuan push daripada {{hostname}}, akses izin penyemak imbas anda untuk laman ini dan matikan pemberitahuan. <a href='https://owncast.online/docs/notifications'>Ketahui lebih lanjut.</a>", "enabledDescription": "Untuk melumpuhkan pemberitahuan push daripada {{hostname}}, akses izin penyemak imbas anda untuk laman ini dan matikan pemberitahuan. <a href='https://owncast.online/docs/notifications'>Ketahui lebih lanjut.</a>",
"enabledTitle": "Pemberitahuan telah dihidupkan", "enabledTitle": "Pemberitahuan telah dihidupkan",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Ralat Pemberitahuan Penyemak Imbas", "errorTitle": "Ralat Pemberitahuan Penyemak Imbas",
"iosAddButton": "Tambah", "iosAddButton": "Tambah",
"iosAddToHomeScreen": "Tambah ke Skrin Utama", "iosAddToHomeScreen": "Tambah ke Skrin Utama",
@@ -60,120 +113,39 @@
"unsupported": "Pemberitahuan pelayar tidak disokong dalam pelayar anda.", "unsupported": "Pemberitahuan pelayar tidak disokong dalam pelayar anda.",
"unsupportedLocal": "Pemberitahuan pelayar tidak disokong untuk pelayan tempatan." "unsupportedLocal": "Pemberitahuan pelayar tidak disokong untuk pelayan tempatan."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Penterjemahan Tidak Ditemui Frontend.chatOffline: Sila laporkan</em></strong>", "chatOffline": "<strong><em>Penterjemahan Tidak Ditemui Frontend.chatOffline: Sila laporkan</em></strong>",
"componentError": "Ralat: {{message}}", "componentError": "Ralat: {{message}}",
"helloWorld": "<strong><em>Penterjemahan Tidak Ditemui Frontend.helloWorld: Sila laporkan</em></strong>", "helloWorld": "<strong><em>Penterjemahan Tidak Ditemui Frontend.helloWorld: Sila laporkan</em></strong>",
"notificationMessage": "<strong><em>Penterjemahan Tidak Ditemui Frontend.notificationMessage: Sila laporkan</em></strong>",
"offlineBasic": "Saluran ini sedang offline. Periksa kembali sebentar lagi!", "offlineBasic": "Saluran ini sedang offline. Periksa kembali sebentar lagi!",
"offlineFediverseOnly": "Saluran ini sedang offline. <span class='follow-link'>Ikuti</span> {{fediverseAccount}} di Fediverse untuk melihat kali seterusnya {{streamer}} siaran langsung.", "offlineFediverseOnly": "Saluran ini sedang offline. <span class='follow-link'>Ikuti</span> {{fediverseAccount}} di Fediverse untuk melihat kali seterusnya {{streamer}} siaran langsung.",
"offlineNotifyAndFediverse": "Saluran ini sedang offline. Anda boleh <span class='notify-link'>diberitahu</span> kali seterusnya {{streamer}} siaran langsung atau <span class='follow-link'>ikuti</span> {{fediverseAccount}} di Fediverse.", "offlineNotifyAndFediverse": "Saluran ini sedang offline. Anda boleh <span class='notify-link'>diberitahu</span> kali seterusnya {{streamer}} siaran langsung atau <span class='follow-link'>ikuti</span> {{fediverseAccount}} di Fediverse.",
"offlineNotifyOnly": "Saluran ini sedang offline. <span class='notify-link'>Diberitahu</span> kali seterusnya {{streamer}} siaran langsung." "offlineNotifyOnly": "Saluran ini sedang offline. <span class='notify-link'>Diberitahu</span> kali seterusnya {{streamer}} siaran langsung."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "Siaran langsung terakhir {{timeAgo}} yang lalu",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "Ketahui lebih lanjut tentang pemantauan chat di sini.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Penterjemahan Tidak Ditemui Testing.itemCount: Sila laporkan</em></strong>", "itemCount": "<strong><em>Penterjemahan Tidak Ditemui Testing.itemCount: Sila laporkan</em></strong>",
"messageCount": "<strong><em>Penterjemahan Tidak Ditemui Testing.messageCount: Sila laporkan</em></strong>", "messageCount": "<strong><em>Penterjemahan Tidak Ditemui Testing.messageCount: Sila laporkan</em></strong>",
"noPluralKey": "<strong><em>Penterjemahan Tidak Ditemui Testing.noPluralKey: Sila laporkan</em></strong>", "noPluralKey": "<strong><em>Penterjemahan Tidak Ditemui Testing.noPluralKey: Sila laporkan</em></strong>",
"simpleKey": "<strong><em>Penterjemahan Tidak Ditemui Testing.simpleKey: Sila laporkan</em></strong>" "simpleKey": "<strong><em>Penterjemahan Tidak Ditemui Testing.simpleKey: Sila laporkan</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "Aliran ini tidak dalam talian. Sila semak semula tidak lama lagi!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Verhoog je publiek door in de <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>te verschijnen. Dit is een externe dienst die wordt uitgevoerd door het Owncast project. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Leer meer</a>.", "directoryDescription": "Verhoog je publiek door in de <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>te verschijnen. Dit is een externe dienst die wordt uitgevoerd door het Owncast project. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Leer meer</a>.",
"offlineMessageDescription": "Het offline bericht wordt getoond aan uw bezoekers van uw pagina wanneer u niet aan het streamen. Markdown wordt ondersteund.", "offlineMessageDescription": "Het offline bericht wordt getoond aan uw bezoekers van uw pagina wanneer u niet aan het streamen. Markdown wordt ondersteund.",
"serverUrlRequiredForDirectory": "U moet uw <strong>Server URL</strong> hierboven instellen om de map in te schakelen." "serverUrlRequiredForDirectory": "U moet uw <strong>Server URL</strong> hierboven instellen om de map in te schakelen."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Schijfruimte",
"memory": "Geheugen",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Even geduld...",
"title": "Hardware-info",
"used": "gebruikt"
},
"Help": {
"bugPlease": "Als je een bug hebt gevonden,",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Hulp bij het configureren van mijn streamsoftware",
"configureInstance": "Ik wil mijn Owncast-exemplaar configureren",
"customizeWebsite": "Ik wil mijn website aanpassen",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentatie",
"embedStream": "Ik wil mijn stream insluiten op een andere site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "Ik heb een bug gevonden",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "Ik heb een algemene vraag",
"learnMore": "Lees meer",
"letUsKnow": "laat het ons weten",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Lees de documentatie",
"title": "Hoe kunnen we je helpen?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Fout",
"info": "Info",
"level": "Niveau",
"logs": "Logs",
"message": "Bericht",
"timestamp": "Tijdstempel",
"warning": "Waarschuwing"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "Nieuws en updates van Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Huidige stream",
"currentViewers": "Current viewers",
"last12Hours": "Laatste 12 uur",
"last24Hours": "Laatste 24 uur",
"last30Days": "Afgelopen 30 dagen",
"last3Months": "Afgelopen 3 maanden",
"last6Months": "Afgelopen 6 maanden",
"last7Days": "Afgelopen 7 dagen",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Even geduld...",
"title": "Viewer Info",
"viewers": "Kijkers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Ontbrekende vertaling Admin.emojiPagedescription: Rapporteer</em></strong>", "emojiPageDescription": "<strong><em>Ontbrekende vertaling Admin.emojiPagedescription: Rapporteer</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Ontbrekende vertaling Admin.emojiUploadBulkGuide: Rapporteer</em></strong>", "emojiUploadBulkGuide": "<strong><em>Ontbrekende vertaling Admin.emojiUploadBulkGuide: Rapporteer</em></strong>",
"emojis": "<strong><em>Ontbrekende vertaling Admin.emojis: Rapporteer</em></strong>", "emojis": "<strong><em>Ontbrekende vertaling Admin.emojis: Rapporteer</em></strong>",
"uploadNewEmoji": "<strong><em>Ontbrekende vertaling Admin.uploadNewEmoji: Rapporteer</em></strong>" "uploadNewEmoji": "<strong><em>Ontbrekende vertaling Admin.uploadNewEmoji: Rapporteer</em></strong>"
}, },
"Banned Users": "Verbannen gebruikers",
"Bring in moderators to help keep your chat in order": "Breng moderators in om je chat op orde te houden.",
"CPU": "CPU",
"Chat Messages": "Chatberichten",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Mogelijk gemaakt door <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Mogelijk gemaakt door <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Verbonden",
"Contribute": "Contribute",
"Current stream": "Huidige stream",
"Current viewers": "Current viewers",
"Disk": "Schijfruimte",
"Documentation": "Documentatie",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Fout",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Toestaan", "allowButton": "Toestaan",
@@ -44,6 +96,7 @@
"deniedTitle": "Meldingen worden geblokkeerd op uw apparaat", "deniedTitle": "Meldingen worden geblokkeerd op uw apparaat",
"enabledDescription": "Om push-meldingen van {{hostname}} uit te schakelen, krijg je toegang tot je browserrechten voor deze site en schakel je meldingen uit. <a href='https://owncast.online/docs/notifications'>Meer informatie.</a>", "enabledDescription": "Om push-meldingen van {{hostname}} uit te schakelen, krijg je toegang tot je browserrechten voor deze site en schakel je meldingen uit. <a href='https://owncast.online/docs/notifications'>Meer informatie.</a>",
"enabledTitle": "Meldingen zijn ingeschakeld", "enabledTitle": "Meldingen zijn ingeschakeld",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Browser Notificatie Fout", "errorTitle": "Browser Notificatie Fout",
"iosAddButton": "Toevoegen", "iosAddButton": "Toevoegen",
"iosAddToHomeScreen": "Toevoegen aan Beginscherm", "iosAddToHomeScreen": "Toevoegen aan Beginscherm",
@@ -60,120 +113,39 @@
"unsupported": "Browsermeldingen worden niet ondersteund in je browser.", "unsupported": "Browsermeldingen worden niet ondersteund in je browser.",
"unsupportedLocal": "Browsermeldingen worden niet ondersteund voor lokale servers." "unsupportedLocal": "Browsermeldingen worden niet ondersteund voor lokale servers."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentatie",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Ontbrekende vertaling Frontend.chatOffline: Rapporteer</em></strong>", "chatOffline": "<strong><em>Ontbrekende vertaling Frontend.chatOffline: Rapporteer</em></strong>",
"componentError": "Fout: {{message}}", "componentError": "Fout: {{message}}",
"helloWorld": "<strong><em>Ontbrekende vertaling Frontend.helloWorld: Rapporteer</em></strong>", "helloWorld": "<strong><em>Ontbrekende vertaling Frontend.helloWorld: Rapporteer</em></strong>",
"notificationMessage": "<strong><em>Ontbrekende vertaling Frontend.notificationMessage: Rapporteer</em></strong>",
"offlineBasic": "Deze stream is offline. Kom snel terug!", "offlineBasic": "Deze stream is offline. Kom snel terug!",
"offlineFediverseOnly": "Deze stream is offline. <span class='follow-link'>Volg</span> {{fediverseAccount}} op de Fediverse om de volgende keer dat {{streamer}} live gaat te zien.", "offlineFediverseOnly": "Deze stream is offline. <span class='follow-link'>Volg</span> {{fediverseAccount}} op de Fediverse om de volgende keer dat {{streamer}} live gaat te zien.",
"offlineNotifyAndFediverse": "Deze stream is offline. U kunt <span class='notify-link'>een bericht ontvangen</span> wanneer {{streamer}} weer live gaat of {{fediverseAccount}} <span class='follow-link'>volgen</span> op de Fediverse.", "offlineNotifyAndFediverse": "Deze stream is offline. U kunt <span class='notify-link'>een bericht ontvangen</span> wanneer {{streamer}} weer live gaat of {{fediverseAccount}} <span class='follow-link'>volgen</span> op de Fediverse.",
"offlineNotifyOnly": "Deze stream is offline. <span class='notify-link'>Krijg een melding</span> de volgende keer dat {{streamer}} live gaat." "offlineNotifyOnly": "Deze stream is offline. <span class='notify-link'>Krijg een melding</span> de volgende keer dat {{streamer}} live gaat."
}, },
"Hardware Info": "Hardware-info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Hulp bij het configureren van mijn streamsoftware",
"Hidden messages": "Verborgen berichten",
"Hide": "Verbergen",
"How can we help you?": "Hoe kunnen we je helpen?",
"I found a bug": "Ik heb een bug gevonden",
"I have a general question": "Ik heb een algemene vraag",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "Ik wil mijn Owncast-exemplaar configureren",
"I want to customize my website": "Ik wil mijn website aanpassen",
"I want to embed my stream into another site": "Ik wil mijn stream insluiten op een andere site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP-bans",
"If you found a bug, then please": "Als je een bug hebt gevonden,",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Laatste 12 uur",
"Last 24 hours": "Laatste 24 uur",
"Last 3 months": "Afgelopen 3 maanden",
"Last 30 days": "Afgelopen 30 dagen",
"Last 6 months": "Afgelopen 6 maanden",
"Last 7 days": "Afgelopen 7 dagen",
"Last live ago": "Laatste live {{timeAgo}} geleden",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Lees meer",
"Learn more about chat moderation here": "Kom hier meer te weten over chatmoderatie.",
"Level": "Niveau",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Beheer de berichten van kijkers die op je stream verschijnen.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Geheugen",
"Message": "Bericht",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "Nieuws en updates van Owncast",
"No": "Nee",
"No hardware details have been collected yet": "Er zijn nog geen details over de hardware verzameld.",
"No news": "Geen nieuws.",
"No stream is active": "Er is geen stream actief",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Informeren",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overschreven via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Even geduld...",
"Read the Docs": "Lees de documentatie",
"Show": "Tonen",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream gestart",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Ontbrekende vertaling Testing.itemCount: Rapporteer</em></strong>", "itemCount": "<strong><em>Ontbrekende vertaling Testing.itemCount: Rapporteer</em></strong>",
"messageCount": "<strong><em>Ontbrekende vertaling Testing.messageCount: Rapporteer</em></strong>", "messageCount": "<strong><em>Ontbrekende vertaling Testing.messageCount: Rapporteer</em></strong>",
"noPluralKey": "<strong><em>Ontbrekende vertaling Testing.noPluralKey: Gelieve rapporteren</em></strong>", "noPluralKey": "<strong><em>Ontbrekende vertaling Testing.noPluralKey: Gelieve rapporteren</em></strong>",
"simpleKey": "<strong><em>Ontbrekende vertaling Testing.simpleKey: Rapporteer</em></strong>" "simpleKey": "<strong><em>Ontbrekende vertaling Testing.simpleKey: Rapporteer</em></strong>"
}, }
"Time": "Tijd",
"Timestamp": "Tijdstempel",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "Gebruiker",
"View": "Bekijk",
"Viewer Info": "Viewer Info",
"Viewers": "Kijkers",
"Visible messages": "Zichtbare berichten",
"Visit the": "Bezoek de",
"Warning": "Waarschuwing",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Ja",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "API's voor ontwikkelaars.",
"discussions": "discussions",
"documentation": "documentatie",
"let us know": "laat het ons weten",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "Deze stream is offline. Kom snel terug!",
"or exist in our": "or exist in our",
"settings": "instellingen.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "gebruikt"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Øk tilhørerne ved å dukke opp i <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Dette er en ekstern tjeneste som kjører av Owncast prosjektet. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Lær mer</a>.", "directoryDescription": "Øk tilhørerne ved å dukke opp i <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Dette er en ekstern tjeneste som kjører av Owncast prosjektet. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Lær mer</a>.",
"offlineMessageDescription": "Denne offline-meldingen vises til besøkende når du ikke strømmer. Markdown støttes", "offlineMessageDescription": "Denne offline-meldingen vises til besøkende når du ikke strømmer. Markdown støttes",
"serverUrlRequiredForDirectory": "Du må angi <strong>server-URL</strong> ovenfor for å aktivere mappen." "serverUrlRequiredForDirectory": "Du må angi <strong>server-URL</strong> ovenfor for å aktivere mappen."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>mangler oversettelse Admin.emojiPageBeskrivelse: Rapport</em></strong>", "emojiPageDescription": "<strong><em>mangler oversettelse Admin.emojiPageBeskrivelse: Rapport</em></strong>",
"emojiUploadBulkGuide": "<strong><em>mangler oversettelse Admin.emojiUploadBulkGuide: Vennligst rapport</em></strong>", "emojiUploadBulkGuide": "<strong><em>mangler oversettelse Admin.emojiUploadBulkGuide: Vennligst rapport</em></strong>",
"emojis": "<strong><em>Mangler oversettelse Admin.emojis: Vennligst rapport</em></strong>", "emojis": "<strong><em>Mangler oversettelse Admin.emojis: Vennligst rapport</em></strong>",
"uploadNewEmoji": "<strong><em>mangler oversettelse Admin.uploadNewEmoji: Rapport</em></strong>" "uploadNewEmoji": "<strong><em>mangler oversettelse Admin.uploadNewEmoji: Rapport</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "Ta med i moderatorer for å holde chat i orden.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Drevet av <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Drevet av <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Tillat", "allowButton": "Tillat",
@@ -44,6 +96,7 @@
"deniedTitle": "Varsler er blokkert på enheten", "deniedTitle": "Varsler er blokkert på enheten",
"enabledDescription": "For å deaktivere push-varsler fra {{hostname}}, gå til nettlesertillatelsene for dette nettstedet og slå av varsler. <a href='https://owncast.online/docs/notifications'>Lær mer.</a>", "enabledDescription": "For å deaktivere push-varsler fra {{hostname}}, gå til nettlesertillatelsene for dette nettstedet og slå av varsler. <a href='https://owncast.online/docs/notifications'>Lær mer.</a>",
"enabledTitle": "Varsler er aktivert", "enabledTitle": "Varsler er aktivert",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Browser varslingsfeil", "errorTitle": "Browser varslingsfeil",
"iosAddButton": "Legg til", "iosAddButton": "Legg til",
"iosAddToHomeScreen": "Legg til hjemmeskjerm", "iosAddToHomeScreen": "Legg til hjemmeskjerm",
@@ -60,120 +113,39 @@
"unsupported": "Nettleservarsler støttes ikke i nettleseren.", "unsupported": "Nettleservarsler støttes ikke i nettleseren.",
"unsupportedLocal": "Nettleservarsler støttes ikke for lokale servere." "unsupportedLocal": "Nettleservarsler støttes ikke for lokale servere."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>mangler oversettelse Frontend.chatOffline: Vennligst rapport</em></strong>", "chatOffline": "<strong><em>mangler oversettelse Frontend.chatOffline: Vennligst rapport</em></strong>",
"componentError": "Feil: {{message}}", "componentError": "Feil: {{message}}",
"helloWorld": "<strong><em>mangler oversettelse Frontend.helloWorld: Vennligst rapport</em></strong>", "helloWorld": "<strong><em>mangler oversettelse Frontend.helloWorld: Vennligst rapport</em></strong>",
"notificationMessage": "<strong><em>mangler oversettelse Frontend.notificationMessage: Vennligst rapport</em></strong>",
"offlineBasic": "Denne strømmen er frakoblet. Sjekk igjen snart!", "offlineBasic": "Denne strømmen er frakoblet. Sjekk igjen snart!",
"offlineFediverseOnly": "Denne strømmen er frakoblet. <span class='follow-link'>Følg</span> {{fediverseAccount}} på Fediverse for å se neste gang {{streamer}} går liv.", "offlineFediverseOnly": "Denne strømmen er frakoblet. <span class='follow-link'>Følg</span> {{fediverseAccount}} på Fediverse for å se neste gang {{streamer}} går liv.",
"offlineNotifyAndFediverse": "Denne strømmen er offline. Du kan <span class='notify-link'>bli varslet</span> neste gang {{streamer}} er live, eller <span class='follow-link'>følge</span> {{fediverseAccount}} på Fediverse.", "offlineNotifyAndFediverse": "Denne strømmen er offline. Du kan <span class='notify-link'>bli varslet</span> neste gang {{streamer}} er live, eller <span class='follow-link'>følge</span> {{fediverseAccount}} på Fediverse.",
"offlineNotifyOnly": "Denne strømmen er frakoblet. <span class='notify-link'>bli varslet</span> neste gang {{streamer}} går bor." "offlineNotifyOnly": "Denne strømmen er frakoblet. <span class='notify-link'>bli varslet</span> neste gang {{streamer}} går bor."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "Sist live {{timeAgo}} siden",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "Lær mer om chat moderering her.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Mangler oversettelse Testing.itemCount: rapporter</em></strong>", "itemCount": "<strong><em>Mangler oversettelse Testing.itemCount: rapporter</em></strong>",
"messageCount": "<strong><em>Mangler oversettelsestester.messageCount: rapport</em></strong>", "messageCount": "<strong><em>Mangler oversettelsestester.messageCount: rapport</em></strong>",
"noPluralKey": "<strong><em>mangler oversettelsestester.noPluralKey: Vennligst rapport</em></strong>", "noPluralKey": "<strong><em>mangler oversettelsestester.noPluralKey: Vennligst rapport</em></strong>",
"simpleKey": "<strong><em>mangler oversettelsestester.simpleKey: Rapporter</em></strong>" "simpleKey": "<strong><em>mangler oversettelsestester.simpleKey: Rapporter</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "Denne strømmen er frakoblet. Sjekk igjen snart!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "ਆਪਣੇ ਦਰਸ਼ਕਾਂ ਦੀ ਗਿਣਤੀ ਵਧਾਓ <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a> ਵਿੱਚ ਸ਼ਾਮਲ ਹੋ ਕੇ। ਅਗੇੇਂ ਬਾਰੇ ਜਾਣੂ ਹੋਣ ਲਈ ਇੱਕ ਬਾਹਰੀ ਸਰਵਿਸ ਜਿਸਨੂੰ Owncast ਪ੍ਰੋਜੈਕਟ ਦੁਆਰਾ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ। <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">ਹੋਰ ਜਾਣੋ</a>।", "directoryDescription": "ਆਪਣੇ ਦਰਸ਼ਕਾਂ ਦੀ ਗਿਣਤੀ ਵਧਾਓ <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a> ਵਿੱਚ ਸ਼ਾਮਲ ਹੋ ਕੇ। ਅਗੇੇਂ ਬਾਰੇ ਜਾਣੂ ਹੋਣ ਲਈ ਇੱਕ ਬਾਹਰੀ ਸਰਵਿਸ ਜਿਸਨੂੰ Owncast ਪ੍ਰੋਜੈਕਟ ਦੁਆਰਾ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ। <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">ਹੋਰ ਜਾਣੋ</a>।",
"offlineMessageDescription": "ਆਪਣੇ ਪੰਨੇ ਦੇ ਦ੍ਰਸ਼ਕਾਂ ਨੂੰ ਨਿਰਦਸ਼ਨ ਕੀਤਾ ਗਿਆ ਸੰਦੇਸ਼ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਸਟ੍ਰੀਮ ਨਹੀਂ ਕਰ ਰਹੇ ਹੁੰਦੇ। ਮਾਰਕਡਾਊਨ ਦਾ ਸਮਰਥਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।", "offlineMessageDescription": "ਆਪਣੇ ਪੰਨੇ ਦੇ ਦ੍ਰਸ਼ਕਾਂ ਨੂੰ ਨਿਰਦਸ਼ਨ ਕੀਤਾ ਗਿਆ ਸੰਦੇਸ਼ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਸਟ੍ਰੀਮ ਨਹੀਂ ਕਰ ਰਹੇ ਹੁੰਦੇ। ਮਾਰਕਡਾਊਨ ਦਾ ਸਮਰਥਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।",
"serverUrlRequiredForDirectory": "ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਯੋਗ ਬਣਾਉਣ ਲਈ ਤੁਹਾਨੂੰ ਉੱਪਰ ਆਪਣੇ <strong>ਸਰਵਰ ਯੂਆਰਐੱਲ</strong> ਨੂੰ ਸੈਟ ਕਰਨਾ ਹੋਵੇਗਾ।" "serverUrlRequiredForDirectory": "ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਯੋਗ ਬਣਾਉਣ ਲਈ ਤੁਹਾਨੂੰ ਉੱਪਰ ਆਪਣੇ <strong>ਸਰਵਰ ਯੂਆਰਐੱਲ</strong> ਨੂੰ ਸੈਟ ਕਰਨਾ ਹੋਵੇਗਾ।"
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>ਗੁਆਂਢੀ ਅਨੁਵਾਦ Admin.emojiPageDescription: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>", "emojiPageDescription": "<strong><em>ਗੁਆਂਢੀ ਅਨੁਵਾਦ Admin.emojiPageDescription: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"emojiUploadBulkGuide": "<strong><em>ਗੁਆਂਢੀ ਅਨੁਵਾਦ Admin.emojiUploadBulkGuide: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>", "emojiUploadBulkGuide": "<strong><em>ਗੁਆਂਢੀ ਅਨੁਵਾਦ Admin.emojiUploadBulkGuide: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"emojis": "<strong><em>ਗੁਆਂਢੀ ਅਨੁਵਾਦ Admin.emojis: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>", "emojis": "<strong><em>ਗੁਆਂਢੀ ਅਨੁਵਾਦ Admin.emojis: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"uploadNewEmoji": "<strong><em>ਗੁਆਂਢੀ ਅਨੁਵਾਦ Admin.uploadNewEmoji: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>" "uploadNewEmoji": "<strong><em>ਗੁਆਂਢੀ ਅਨੁਵਾਦ Admin.uploadNewEmoji: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "ਆਪਣੇ ਚੈੱਟ ਨੂੰ ਪਰੈਥੇ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ ਮੋਡਰੇਟਰਾਂ ਨੂੰ ਬੁਲਾਓ।",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast v{{versionNumber}}</a> ਦੁਆਰਾ ਚਾਲਿਤ" "poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast v{{versionNumber}}</a> ਦੁਆਰਾ ਚਾਲਿਤ"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "ਪਰਵਾਨਗੀ ਦੇਣਾ", "allowButton": "ਪਰਵਾਨਗੀ ਦੇਣਾ",
@@ -44,6 +96,7 @@
"deniedTitle": "ਤੁਹਾਡੇ ਡਿਵਾਈਸ 'ਤੇ ਸੂਚਨਾਵਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ", "deniedTitle": "ਤੁਹਾਡੇ ਡਿਵਾਈਸ 'ਤੇ ਸੂਚਨਾਵਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ",
"enabledDescription": "{{hostname}} ਤੋਂ ਪ PUSH ਸੂਚਨਾਵਾਂ ਅਣਜੋੜਣ ਲਈ, ਇਸ ਸਾਈਟ ਲਈ ਆਪਣੇ ਬ੍ਰਾਉਜ਼ਰ ਦੀਆਂ ਪਰਮਿਸ਼ਨਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰੋ ਅਤੇ ਸੂਚਨਾਵਾਂ ਨੂੰ ਬੰਦ ਕਰੋ। <a href='https://owncast.online/docs/notifications'>ਹੋਰ ਜਾਣੋ।</a>", "enabledDescription": "{{hostname}} ਤੋਂ ਪ PUSH ਸੂਚਨਾਵਾਂ ਅਣਜੋੜਣ ਲਈ, ਇਸ ਸਾਈਟ ਲਈ ਆਪਣੇ ਬ੍ਰਾਉਜ਼ਰ ਦੀਆਂ ਪਰਮਿਸ਼ਨਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰੋ ਅਤੇ ਸੂਚਨਾਵਾਂ ਨੂੰ ਬੰਦ ਕਰੋ। <a href='https://owncast.online/docs/notifications'>ਹੋਰ ਜਾਣੋ।</a>",
"enabledTitle": "ਸੂਚਨਾਵਾਂ ਚਾਲੂ ਹਨ", "enabledTitle": "ਸੂਚਨਾਵਾਂ ਚਾਲੂ ਹਨ",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "ਬ੍ਰਾਉਜ਼ਰ ਸੂਚਨਾ ਗਲਤੀ", "errorTitle": "ਬ੍ਰਾਉਜ਼ਰ ਸੂਚਨਾ ਗਲਤੀ",
"iosAddButton": "ਜੋੜੋ", "iosAddButton": "ਜੋੜੋ",
"iosAddToHomeScreen": "ਹੋਮ ਸਕਰੀਨ 'ਤੇ ਜਾਓ", "iosAddToHomeScreen": "ਹੋਮ ਸਕਰੀਨ 'ਤੇ ਜਾਓ",
@@ -60,120 +113,39 @@
"unsupported": "ਤੁਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਬ੍ਰਾਊਜ਼ਰ ਸੂਚਨਾਵਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਹੈ।", "unsupported": "ਤੁਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਬ੍ਰਾਊਜ਼ਰ ਸੂਚਨਾਵਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਹੈ।",
"unsupportedLocal": "ਸਥਾਨਕ ਸਰਵਰ ਲਈ ਬ੍ਰਾਊਜ਼ਰ ਸੂਚਨਾਵਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਹੈ।" "unsupportedLocal": "ਸਥਾਨਕ ਸਰਵਰ ਲਈ ਬ੍ਰਾਊਜ਼ਰ ਸੂਚਨਾਵਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਹੈ।"
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>", "chatOffline": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"componentError": "ਗਲਤੀ: {{message}}", "componentError": "ਗਲਤੀ: {{message}}",
"helloWorld": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>", "helloWorld": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"notificationMessage": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"offlineBasic": "ਇਹ ਸਟ੍ਰੀਮ ਅਫਲਾਈਨ ਹੈ। ਜਲਦੀ ਹੀ ਵਾਪਸ ਆਓ!", "offlineBasic": "ਇਹ ਸਟ੍ਰੀਮ ਅਫਲਾਈਨ ਹੈ। ਜਲਦੀ ਹੀ ਵਾਪਸ ਆਓ!",
"offlineFediverseOnly": "ਇਹ ਸਟ੍ਰੀਮ ਅਫਲਾਈਨ ਹੈ। ਜਅਦੋ {{streamer}} ਲਾਈਵ ਹੋਵੇਗਾ, ਗੇਰੀ ਮਨੱਤਾ ਤੋਂ <span class='follow-link'>ਜਾਣੋ</span>।", "offlineFediverseOnly": "ਇਹ ਸਟ੍ਰੀਮ ਅਫਲਾਈਨ ਹੈ। ਜਅਦੋ {{streamer}} ਲਾਈਵ ਹੋਵੇਗਾ, ਗੇਰੀ ਮਨੱਤਾ ਤੋਂ <span class='follow-link'>ਜਾਣੋ</span>।",
"offlineNotifyAndFediverse": "ਇਹ ਸਟ੍ਰੀਮ ਅਫਲਾਈਨ ਹੈ। ਜਦੋਂ {{streamer}} ਲਾਈਵ ਹੋਵੇਗਾ, ਤੁਸੀਂ <span class='notify-link'>ਜਾਣੋ</span> ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ <span class='follow-link'>ਫਾਲੋ</span> {{fediverseAccount}} ਫੈਡੀਵਰਸ 'ਤੇ।", "offlineNotifyAndFediverse": "ਇਹ ਸਟ੍ਰੀਮ ਅਫਲਾਈਨ ਹੈ। ਜਦੋਂ {{streamer}} ਲਾਈਵ ਹੋਵੇਗਾ, ਤੁਸੀਂ <span class='notify-link'>ਜਾਣੋ</span> ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ <span class='follow-link'>ਫਾਲੋ</span> {{fediverseAccount}} ਫੈਡੀਵਰਸ 'ਤੇ।",
"offlineNotifyOnly": "ਇਹ ਸਟ੍ਰੀਮ ਅਫਲਾਈਨ ਹੈ। <span class='notify-link'>ਜਾਣੋ</span> ਜਦੋਂ {{streamer}} ਲਾਈਵ ਹੋਵੇਗਾ।" "offlineNotifyOnly": "ਇਹ ਸਟ੍ਰੀਮ ਅਫਲਾਈਨ ਹੈ। <span class='notify-link'>ਜਾਣੋ</span> ਜਦੋਂ {{streamer}} ਲਾਈਵ ਹੋਵੇਗਾ।"
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "ਪਿਛਲੀਆਂ ਲਾਈਵ {{timeAgo}} ਪਹਿਲਾਂ",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "ਇੱਥੇ ਚੈੱਟ ਮੋਡਰੇਸ਼ਨ ਬਾਰੇ ਹੋਰ ਜਾਣੋ।",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>", "itemCount": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"messageCount": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>", "messageCount": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"noPluralKey": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>", "noPluralKey": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>",
"simpleKey": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>" "simpleKey": "<strong><em>ਗੁਆਂਢੀਆਂ ਅਣਜਾਣ: ਕਿਰਪਾ ਕਰਕੇ ਰਿਪੋਰਟ ਕਰੋ</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "ਇਹ ਸਟ੍ਰੀਮ ਆਫਲਾਇਨ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਜਲਦੀ ਵਾਪਸ ਆਓ!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Zwiększ liczbę swoich odbiorców poprzez pojawienie się w <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Jest to usługa zewnętrzna uruchomiona przez projekt Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Dowiedz się więcej</a>.", "directoryDescription": "Zwiększ liczbę swoich odbiorców poprzez pojawienie się w <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Jest to usługa zewnętrzna uruchomiona przez projekt Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Dowiedz się więcej</a>.",
"offlineMessageDescription": "Wiadomość offline jest wyświetlana odwiedzającym stronę, gdy nie strumieniujesz strumienia. Obsługiwane jest Markdown.", "offlineMessageDescription": "Wiadomość offline jest wyświetlana odwiedzającym stronę, gdy nie strumieniujesz strumienia. Obsługiwane jest Markdown.",
"serverUrlRequiredForDirectory": "Musisz ustawić powyższy adres <strong>Serwera</strong> aby włączyć katalog." "serverUrlRequiredForDirectory": "Musisz ustawić powyższy adres <strong>Serwera</strong> aby włączyć katalog."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Brak tłumaczenia Admin.emojiPageDescription: Proszę zgłosić</em></strong>", "emojiPageDescription": "<strong><em>Brak tłumaczenia Admin.emojiPageDescription: Proszę zgłosić</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Brakuje tłumaczenia Admin.emojiUploadBulkGuide: Zgłoś</em></strong>", "emojiUploadBulkGuide": "<strong><em>Brakuje tłumaczenia Admin.emojiUploadBulkGuide: Zgłoś</em></strong>",
"emojis": "<strong><em>Brakuje tłumaczenia Admin.emojis: Zgłoś</em></strong>", "emojis": "<strong><em>Brakuje tłumaczenia Admin.emojis: Zgłoś</em></strong>",
"uploadNewEmoji": "<strong><em>Brak tłumaczenia Admin.uploadNewEmoji: Proszę zgłosić</em></strong>" "uploadNewEmoji": "<strong><em>Brak tłumaczenia Admin.uploadNewEmoji: Proszę zgłosić</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "Przynieś moderatorom, aby utrzymać swój czat w kolejności.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Wspierane przez <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Wspierane przez <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Zezwól", "allowButton": "Zezwól",
@@ -44,6 +96,7 @@
"deniedTitle": "Powiadomienia są zablokowane na Twoim urządzeniu", "deniedTitle": "Powiadomienia są zablokowane na Twoim urządzeniu",
"enabledDescription": "Aby wyłączyć powiadomienia push od {{hostname}} uzyskaj dostęp do uprawnień przeglądarki dla tej witryny i wyłącz powiadomienia. <a href='https://owncast.online/docs/notifications'>Dowiedz się więcej.</a>", "enabledDescription": "Aby wyłączyć powiadomienia push od {{hostname}} uzyskaj dostęp do uprawnień przeglądarki dla tej witryny i wyłącz powiadomienia. <a href='https://owncast.online/docs/notifications'>Dowiedz się więcej.</a>",
"enabledTitle": "Powiadomienia są włączone", "enabledTitle": "Powiadomienia są włączone",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Błąd powiadomienia przeglądarki", "errorTitle": "Błąd powiadomienia przeglądarki",
"iosAddButton": "Dodaj", "iosAddButton": "Dodaj",
"iosAddToHomeScreen": "Dodaj do ekranu głównego", "iosAddToHomeScreen": "Dodaj do ekranu głównego",
@@ -60,120 +113,39 @@
"unsupported": "Powiadomienia przeglądarki nie są obsługiwane w przeglądarce.", "unsupported": "Powiadomienia przeglądarki nie są obsługiwane w przeglądarce.",
"unsupportedLocal": "Powiadomienia przeglądarki nie są obsługiwane dla serwerów lokalnych." "unsupportedLocal": "Powiadomienia przeglądarki nie są obsługiwane dla serwerów lokalnych."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Brakujące tłumaczenie Frontend.chatOffline: Zgłoś</em></strong>", "chatOffline": "<strong><em>Brakujące tłumaczenie Frontend.chatOffline: Zgłoś</em></strong>",
"componentError": "Błąd: {{message}}", "componentError": "Błąd: {{message}}",
"helloWorld": "<strong><em>Brakujące tłumaczenie Frontend.helloWorld: Proszę zgłosić</em></strong>", "helloWorld": "<strong><em>Brakujące tłumaczenie Frontend.helloWorld: Proszę zgłosić</em></strong>",
"notificationMessage": "<strong><em>Brakujące tłumaczenie Frontend.notificationMessage: Proszę zgłosić</em></strong>",
"offlineBasic": "Ten strumień jest offline. Sprawdź wkrótce!", "offlineBasic": "Ten strumień jest offline. Sprawdź wkrótce!",
"offlineFediverseOnly": "Ten strumień jest offline. <span class='follow-link'>Śledź</span> {{fediverseAccount}} na Fediwerse, aby zobaczyć kiedy następny {{streamer}} będzie na żywo.", "offlineFediverseOnly": "Ten strumień jest offline. <span class='follow-link'>Śledź</span> {{fediverseAccount}} na Fediwerse, aby zobaczyć kiedy następny {{streamer}} będzie na żywo.",
"offlineNotifyAndFediverse": "Ten strumień jest offline. Możesz <span class='notify-link'>zostać powiadomiony</span> następnym razem, gdy {{streamer}} pojawi się lub <span class='follow-link'>podążaj za</span> {{fediverseAccount}} na Fediverse.", "offlineNotifyAndFediverse": "Ten strumień jest offline. Możesz <span class='notify-link'>zostać powiadomiony</span> następnym razem, gdy {{streamer}} pojawi się lub <span class='follow-link'>podążaj za</span> {{fediverseAccount}} na Fediverse.",
"offlineNotifyOnly": "Ta transmisja jest wyłączona. <span class='notify-link'>Otrzymaj powiadomienie</span>, gdy następnym razem strona {{streamer}} zostanie uruchomiona." "offlineNotifyOnly": "Ta transmisja jest wyłączona. <span class='notify-link'>Otrzymaj powiadomienie</span>, gdy następnym razem strona {{streamer}} zostanie uruchomiona."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "Ostatnio na żywo {{timeAgo}} temu",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "Dowiedz się więcej o moderacji czatu tutaj.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Brakuje tłumaczenia Testing.itemCount: Zgłoś</em></strong>", "itemCount": "<strong><em>Brakuje tłumaczenia Testing.itemCount: Zgłoś</em></strong>",
"messageCount": "<strong><em>Brakuje tłumaczenia Testing.messageCount: Zgłoś</em></strong>", "messageCount": "<strong><em>Brakuje tłumaczenia Testing.messageCount: Zgłoś</em></strong>",
"noPluralKey": "<strong><em>Brak tłumaczenia Testing.noPluralKey: Proszę zgłosić</em></strong>", "noPluralKey": "<strong><em>Brak tłumaczenia Testing.noPluralKey: Proszę zgłosić</em></strong>",
"simpleKey": "<strong><em>Brakuje tłumaczenia Testing.simpleKey: Zgłoś</em></strong>" "simpleKey": "<strong><em>Brakuje tłumaczenia Testing.simpleKey: Zgłoś</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "Ten strumień jest offline. Sprawdź wkrótce!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Adicione sua instância do Owncast ao Fediverso",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Aumente o seu público aparecendo no <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Este é um serviço externo executado pelo projeto Owncasty. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Saiba mais</a>.", "directoryDescription": "Aumente o seu público aparecendo no <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Este é um serviço externo executado pelo projeto Owncasty. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Saiba mais</a>.",
"offlineMessageDescription": "A mensagem offline é exibida aos visitantes da página quando você não está transmitindo. Markdown é suportado.", "offlineMessageDescription": "A mensagem offline é exibida aos visitantes da página quando você não está transmitindo. Markdown é suportado.",
"serverUrlRequiredForDirectory": "Você deve definir a URL <strong>do servidor</strong> acima para habilitar o diretório." "serverUrlRequiredForDirectory": "Você deve definir a URL <strong>do servidor</strong> acima para habilitar o diretório."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disco",
"memory": "Memória",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Por favor aguarde",
"title": "Informação de Hardware",
"used": "utilizado"
},
"Help": {
"bugPlease": "Se você encontrou um bug, por favor",
"buildAddons": "Quero criar complementos para o Owncast",
"buildTools": "Você pode criar seus próprios bots, sobreposições, ferramentas e complementos com nossa",
"commonTasks": "Tarefas comuns",
"configureBroadcasting": "Ajude a configurar meu software de transmissão",
"configureInstance": "Quero configurar minha instância do owncast",
"customizeWebsite": "Quero personalizar meu site",
"developerApis": "developer APIs.",
"discussions": "discussões",
"documentation": "Documentação",
"embedStream": "Quero incorporar minha transmissão em outro site",
"faq": "Perguntas frequentes (FAQ)",
"fixProblems": "Resolva seus problemas",
"foundBug": "Encontrei um bug",
"generalAnswered": "A maioria das perguntas gerais são respondidas no nosso",
"generalQuestion": "Tenho uma pergunta geral",
"learnMore": "Saiba mais",
"letUsKnow": "informe-nos",
"orExist": "ou existem em nossas",
"other": "Outro",
"readDocs": "Leia a documentação",
"title": "Como podemos ajudar você?",
"troubleshooting": "Resolução de problemas",
"tweakVideo": "Quero ajustar minha saída de vídeo",
"useStorage": "Quero usar um provedor de armazenamento externo"
},
"LogTable": {
"error": "Erro",
"info": "Informações",
"level": "Nível",
"logs": "Logs",
"message": "Mensagem",
"timestamp": "Timestamp",
"warning": "Aviso"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "Notícias e Atualizações do Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Transmissão atual",
"currentViewers": "Espectadores atuais",
"last12Hours": "Últimas 12 horas",
"last24Hours": "Últimas 24 horas",
"last30Days": "Últimos 30 Dias",
"last3Months": "Últimos 3 meses",
"last6Months": "Últimos 6 meses",
"last7Days": "Últimos 7 dias",
"maxViewers": "máximo de espectadores",
"maxViewersLastStream": "Máximo de espectadores na última transmissão",
"maxViewersThisStream": "Máximo de espectadores nesta transmissão",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Por favor aguarde",
"title": "Informações do espectador",
"viewers": "Espectadores"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Falta tradução Admin.emojiPageDescription: Por favor, reporte</em></strong>", "emojiPageDescription": "<strong><em>Falta tradução Admin.emojiPageDescription: Por favor, reporte</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Falta tradução Admin.emojiUploadBulkGuide: Por favor, reporte</em></strong>", "emojiUploadBulkGuide": "<strong><em>Falta tradução Admin.emojiUploadBulkGuide: Por favor, reporte</em></strong>",
"emojis": "<strong><em>Falta tradução Admin.emojis: Por favor, reporte</em></strong>", "emojis": "<strong><em>Falta tradução Admin.emojis: Por favor, reporte</em></strong>",
"uploadNewEmoji": "<strong><em>Falta tradução Admin.uploadNewEmoji: Por favor, reporte</em></strong>" "uploadNewEmoji": "<strong><em>Falta tradução Admin.uploadNewEmoji: Por favor, reporte</em></strong>"
}, },
"Banned Users": "Usuários Banidos",
"Bring in moderators to help keep your chat in order": "Chame moderadores para ajudar a manter o chat em ordem.",
"CPU": "CPU",
"Chat Messages": "Mensagens de Chat",
"Chat is disabled": "Chat desativado",
"Chat is offline": "O chat está offline",
"Chat will be available when the stream is live": "O Chat estará disponível quando a transmissão estiver ativa.",
"Chat will continue to be disabled until you begin a live stream": "O chat continuará desativado até que você inicie uma transmissão ao vivo.",
"Click and never miss future streams!": "Clique e não perca futuras transmissões!",
"Common": { "Common": {
"poweredByOwncastVersion": "Desenvolvido por <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Desenvolvido por <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Tarefas comuns",
"Connected": "Conectado",
"Contribute": "Contribua",
"Current stream": "Transmissão atual",
"Current viewers": "Espectadores atuais",
"Disk": "Disco",
"Documentation": "Documentação",
"Embed your video onto other sites": "Incorporar seu vídeo em outros sites",
"Enable Owncast social features": "Habilitar recursos sociais do Owncast",
"Error": "Erro",
"FAQ": "Perguntas frequentes (FAQ)",
"Find an audience on the Owncast Directory": "Encontre um público no diretório do Owncast",
"Fix your problems": "Resolva seus problemas",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Autorizar", "allowButton": "Autorizar",
@@ -44,6 +96,7 @@
"deniedTitle": "As notificações estão bloqueadas no seu dispositivo", "deniedTitle": "As notificações estão bloqueadas no seu dispositivo",
"enabledDescription": "Para desativar notificações push de permissões de acesso {{hostname}} ao seu navegador para este site e desativar as notificações. <a href='https://owncast.online/docs/notifications'>Saiba mais.</a>", "enabledDescription": "Para desativar notificações push de permissões de acesso {{hostname}} ao seu navegador para este site e desativar as notificações. <a href='https://owncast.online/docs/notifications'>Saiba mais.</a>",
"enabledTitle": "As notificações estão habilitadas", "enabledTitle": "As notificações estão habilitadas",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Erro de notificação do navegador", "errorTitle": "Erro de notificação do navegador",
"iosAddButton": "Adicionar", "iosAddButton": "Adicionar",
"iosAddToHomeScreen": "Adicionar à tela inicial", "iosAddToHomeScreen": "Adicionar à tela inicial",
@@ -60,120 +113,39 @@
"unsupported": "As notificações do navegador não são suportadas no seu navegador.", "unsupported": "As notificações do navegador não são suportadas no seu navegador.",
"unsupportedLocal": "Notificações de navegador não são suportadas por servidores locais." "unsupportedLocal": "Notificações de navegador não são suportadas por servidores locais."
}, },
"Footer": {
"contribute": "Contribua",
"documentation": "Documentação",
"source": "Fonte"
},
"Header": {
"chatOffline": "O chat está offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Ir para o conteúdo da página",
"skipToFooter": "Pular para o rodapé",
"skipToOfflineMessage": "Pular para mensagem offline",
"skipToPlayer": "Pular para o player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Falta tradução do Frontend.chatOffline: Por favor, reporte</em></strong>", "chatOffline": "<strong><em>Falta tradução do Frontend.chatOffline: Por favor, reporte</em></strong>",
"componentError": "Erro: {{message}}", "componentError": "Erro: {{message}}",
"helloWorld": "<strong><em>Falta tradução do Frontend.helloWorld: Por favor, reporte</em></strong>", "helloWorld": "<strong><em>Falta tradução do Frontend.helloWorld: Por favor, reporte</em></strong>",
"notificationMessage": "<strong><em>Falta tradução do Frontend.notificationMessage: Por favor, informe</em></strong>",
"offlineBasic": "Esta transmissão está offline. Volte em breve!", "offlineBasic": "Esta transmissão está offline. Volte em breve!",
"offlineFediverseOnly": "Esta transmissão está off-line. <span class='follow-link'>Siga</span> {{fediverseAccount}} no Fediverse para ver a próxima vez que {{streamer}} estiver ao vivo.", "offlineFediverseOnly": "Esta transmissão está off-line. <span class='follow-link'>Siga</span> {{fediverseAccount}} no Fediverse para ver a próxima vez que {{streamer}} estiver ao vivo.",
"offlineNotifyAndFediverse": "Esta transmissão está offline. <span class='notify-link'>Pode ser notificado</span> na próxima vez que {{streamer}} for ao ar ou <span class='follow-link'>siga</span> {{fediverseAccount}} no Fediverse.", "offlineNotifyAndFediverse": "Esta transmissão está offline. <span class='notify-link'>Pode ser notificado</span> na próxima vez que {{streamer}} for ao ar ou <span class='follow-link'>siga</span> {{fediverseAccount}} no Fediverse.",
"offlineNotifyOnly": "Esta transmissão está offline. U <span class='notify-link'>Seja notificado</span> na próxima vez que {{streamer}} for ao ar." "offlineNotifyOnly": "Esta transmissão está offline. U <span class='notify-link'>Seja notificado</span> na próxima vez que {{streamer}} for ao ar."
}, },
"Hardware Info": "Informação de Hardware",
"Healthy Stream": "Transmissão Saudável",
"Help configuring my broadcasting software": "Ajude a configurar meu software de transmissão",
"Hidden messages": "Mensagens Ocultas",
"Hide": "Ocultar",
"How can we help you?": "Como podemos ajudar você?",
"I found a bug": "Encontrei um bug",
"I have a general question": "Tenho uma pergunta geral",
"I want to build add-ons for Owncast": "Quero criar complementos para o Owncast",
"I want to configure my owncast instance": "Quero configurar minha instância do owncast",
"I want to customize my website": "Quero personalizar meu site",
"I want to embed my stream into another site": "Quero incorporar minha transmissão em outro site",
"I want to tweak my video output": "Quero ajustar minha saída de vídeo",
"I want to use an external storage provider": "Quero usar um provedor de armazenamento externo",
"IP Bans": "Banimentos de IP",
"If you found a bug, then please": "Se você encontrou um bug, por favor",
"Inbound Audio Stream": "Fluxo de áudio de entrada",
"Inbound Stream Details": "Detalhes do fluxo de entrada",
"Inbound Video Stream": "Fluxo de vídeo de entrada",
"Info": "Informações",
"Input": "Entrada",
"Last 12 hours": "Últimas 12 horas",
"Last 24 hours": "Últimas 24 horas",
"Last 3 months": "Últimos 3 meses",
"Last 30 days": "Últimos 30 Dias",
"Last 6 months": "Últimos 6 meses",
"Last 7 days": "Últimos 7 dias",
"Last live ago": "Última transmissão realizada {{timeAgo}} atrás",
"Learn how to point your existing software to your new server and start streaming your content": "Aprenda a apontar seu software existente para seu novo servidor e comece a transmitir seu conteúdo.",
"Learn how you can add your Owncast stream to other sites you control": "Saiba como adicionar sua transmissão do Owncast a outros sites que você controla.",
"Learn more": "Saiba mais",
"Learn more about chat moderation here": "Aprenda mais sobre moderação de sala de chat aqui.",
"Level": "Nível",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "Liste-se no diretório do Owncast e exiba sua transmissão. Habilite-o em"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Gerencie as mensagens dos espectadores que aparecem em sua transmissão.",
"Max viewers last stream": "Máximo de espectadores na última transmissão",
"Max viewers this stream": "Máximo de espectadores nesta transmissão",
"Memory": "Memória",
"Message": "Mensagem",
"Moderators": "Moderadores",
"Most general questions are answered in our": "A maioria das perguntas gerais são respondidas no nosso",
"News & Updates from Owncast": "Notícias e Atualizações do Owncast",
"No": "Não",
"No hardware details have been collected yet": "Nenhum detalhe de hardware foi coletado ainda.",
"No news": "Sem notícias.",
"No stream is active": "Nenhuma transmissão está ativa",
"No viewer data has been collected yet": "Nenhum dado do espectador foi coletado ainda.",
"Notify": "Notificar",
"Other": "Outro",
"Outbound Audio Stream": "Fluxo de áudio de saída",
"Outbound Stream Details": "Detalhes do fluxo de saída",
"Outbound Video Stream": "Fluxo de vídeo de saída",
"Overridden via command line": "Substituído pela linha de comando.",
"Peak viewer count": "Pico de contagem de espectadores",
"Playback Health": "Status da reprodução",
"Please wait": "Por favor aguarde",
"Read the Docs": "Leia a documentação",
"Show": "Mostrar",
"Skip to footer": "Pular para o rodapé",
"Skip to offline message": "Pular para mensagem offline",
"Skip to page content": "Ir para o conteúdo da página",
"Skip to player": "Pular para o player",
"Source": "Fonte",
"Stay updated!": "Mantenha-se atualizado!",
"Stream health represents": "A saúde da transmissão representa",
"Stream started": "Transmissão iniciada",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Falta tradução Testing.itemContt: Por favor, reporte</em></strong>", "itemCount": "<strong><em>Falta tradução Testing.itemContt: Por favor, reporte</em></strong>",
"messageCount": "<strong><em>Falta tradução Testing.messageContt: Por favor, reporte</em></strong>", "messageCount": "<strong><em>Falta tradução Testing.messageContt: Por favor, reporte</em></strong>",
"noPluralKey": "<strong><em>Falta de tradução Testing.noPluralKey: Por favor, reporte</em></strong>", "noPluralKey": "<strong><em>Falta de tradução Testing.noPluralKey: Por favor, reporte</em></strong>",
"simpleKey": "<strong><em>Falta de tradução Testing.simpleKey: Por favor, reporte</em></strong>" "simpleKey": "<strong><em>Falta de tradução Testing.simpleKey: Por favor, reporte</em></strong>"
}, }
"Time": "Horário",
"Timestamp": "Timestamp",
"Troubleshooting": "Resolução de problemas",
"Use your broadcasting software": "Use seu software de transmissão",
"User": "Usuário",
"View": "Visualizar",
"Viewer Info": "Informações do espectador",
"Viewers": "Espectadores",
"Visible messages": "Mensagens visíveis",
"Visit the": "Visite a",
"Warning": "Aviso",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "Quando uma transmissão está ativa e o chat está habilitado, os clientes de chat conectados serão exibidos aqui.",
"Yes": "Sim",
"You can build your own bots, overlays, tools and add-ons with our": "Você pode criar seus próprios bots, sobreposições, ferramentas e complementos com nossa",
"You should start one": "Você deveria começar uma.",
"developer APIs": "APIs de desenvolvedor.",
"discussions": "discussões",
"documentation": "documentação",
"let us know": "informe-nos",
"max viewers": "máximo de espectadores",
"of all known players": {
" Other player status is unknown": "de todos os players conhecidos. O status de outro player é desconhecido."
},
"offline": "offline",
"offline_basic": "Esta transmissão está offline. Volte em breve!",
"or exist in our": "ou existem em nossas",
"settings": "configurações.",
"to configure additional details about your viewers": "para configurar detalhes adicionais sobre seus espectadores.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "para que sua instância faça parte do Fediverso, permitindo que as pessoas sigam, compartilhem e se envolvam com seu fluxo ao vivo.",
"used": "utilizado"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Добавьте свой экземпляр Owncast в Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Увеличьте свою аудиторию, появляясь в <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Каталоге Owncast</strong></a>. Это внешний сервис, управляемый проектом Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Узнайте больше</a>.", "directoryDescription": "Увеличьте свою аудиторию, появляясь в <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Каталоге Owncast</strong></a>. Это внешний сервис, управляемый проектом Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Узнайте больше</a>.",
"offlineMessageDescription": "Оффлайн сообщение отображается посетителям ваших страниц, когда вы не транслируете. Поддерживается Markdown.", "offlineMessageDescription": "Оффлайн сообщение отображается посетителям ваших страниц, когда вы не транслируете. Поддерживается Markdown.",
"serverUrlRequiredForDirectory": "Вы должны установить <strong>сервер URL</strong> выше, чтобы включить каталог." "serverUrlRequiredForDirectory": "Вы должны установить <strong>сервер URL</strong> выше, чтобы включить каталог."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Диск",
"memory": "Память",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Пожалуйста, подождите",
"title": "Информация об оборудовании",
"used": "используется"
},
"Help": {
"bugPlease": "Если вы нашли ошибку, пожалуйста,",
"buildAddons": "Я хочу создать дополнения для Owncast",
"buildTools": "Вы можете создавать собственные боты, наложения, инструменты и дополнения с помощью нашего",
"commonTasks": "Общие задачи",
"configureBroadcasting": "Помогите настроить программное обеспечение для трансляции",
"configureInstance": "Я хочу настроить свой экземпляр owncast",
"customizeWebsite": "Я хочу настроить свой сайт",
"developerApis": "developer APIs.",
"discussions": "обсуждения",
"documentation": "Документация",
"embedStream": "Я хочу вставить мой стрим на другой сайт",
"faq": "FAQ",
"fixProblems": "Устранение проблем",
"foundBug": "Я нашел ошибку",
"generalAnswered": "Ответы на большинство общих вопросов вы найдете в нашем",
"generalQuestion": "У меня есть общий вопрос",
"learnMore": "Подробнее",
"letUsKnow": "сообщите нам",
"orExist": "или существовать в нашем",
"other": "Другое",
"readDocs": "Прочитайте документацию",
"title": "Чем мы можем вам помочь?",
"troubleshooting": "Устранение неполадок",
"tweakVideo": "Я хочу настроить видеовыход",
"useStorage": "Я хочу использовать внешний поставщик услуг хранения данных"
},
"LogTable": {
"error": "Ошибка",
"info": "Информация",
"level": "Уровень",
"logs": "Журналы",
"message": "Сообщение",
"timestamp": "Временная метка",
"warning": "Предупреждение"
},
"NewsFeed": {
"link": "Ссылка",
"noNews": "No news.",
"title": "Новости и обновления от Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Текущая трансляция",
"currentViewers": "Текущие зрители",
"last12Hours": "Последние 12 часов",
"last24Hours": "Последние 24 часа",
"last30Days": "Последние 30 дней",
"last3Months": "Последние 3 месяца",
"last6Months": "Последние 6 месяцев",
"last7Days": "Последние 7 дней",
"maxViewers": "Максимум зрителей",
"maxViewersLastStream": "Максимальное количество зрителей на последнем стриме",
"maxViewersThisStream": "Максимальное количество зрителей в этом стриме",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Пожалуйста, подождите",
"title": "Информация о зрителе",
"viewers": "Зрителей"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Отсутствует Admin.emojiPageDescription: Пожалуйста, сообщите</em></strong>", "emojiPageDescription": "<strong><em>Отсутствует Admin.emojiPageDescription: Пожалуйста, сообщите</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Отсутствует Admin.emojiUploadBulkGuide: пожалуйста, сообщите</em></strong>", "emojiUploadBulkGuide": "<strong><em>Отсутствует Admin.emojiUploadBulkGuide: пожалуйста, сообщите</em></strong>",
"emojis": "<strong><em>Отсутствует Admin.emojis: Пожалуйста, сообщите</em></strong>", "emojis": "<strong><em>Отсутствует Admin.emojis: Пожалуйста, сообщите</em></strong>",
"uploadNewEmoji": "<strong><em>Отсутствует Admin.uploadNewEmoji: Пожалуйста, сообщите</em></strong>" "uploadNewEmoji": "<strong><em>Отсутствует Admin.uploadNewEmoji: Пожалуйста, сообщите</em></strong>"
}, },
"Banned Users": "Заблокированные пользователи",
"Bring in moderators to help keep your chat in order": "Привлеките модераторов, которые помогут поддерживать порядок в чате.",
"CPU": "CPU",
"Chat Messages": "Сообщения в чате",
"Chat is disabled": "Чат отключен",
"Chat is offline": "Чат в автономном режиме",
"Chat will be available when the stream is live": "Чат будет доступен во время прямой трансляции.",
"Chat will continue to be disabled until you begin a live stream": "Чат будет отключен до тех пор, пока вы не начнете прямую трансляцию.",
"Click and never miss future streams!": "Кликните и никогда не пропустите будущие стримы!",
"Common": { "Common": {
"poweredByOwncastVersion": "При поддержке <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "При поддержке <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Общие задачи",
"Connected": "Подключен",
"Contribute": "Внести вклад",
"Current stream": "Текущая трансляция",
"Current viewers": "Текущие зрители",
"Disk": "Диск",
"Documentation": "Документация",
"Embed your video onto other sites": "Встраивайте свое видео на другие сайты",
"Enable Owncast social features": "Включите социальные функции Owncast",
"Error": "Ошибка",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Найдите аудиторию в каталоге Owncast",
"Fix your problems": "Устранение проблем",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Разрешить", "allowButton": "Разрешить",
@@ -44,6 +96,7 @@
"deniedTitle": "Уведомления заблокированы на вашем устройстве", "deniedTitle": "Уведомления заблокированы на вашем устройстве",
"enabledDescription": "Чтобы отключить push-уведомления от {{hostname}}, перейдите в настройки браузера для этого сайта и отключите уведомления. <a href='https://owncast.online/docs/notifications'>Узнать больше.</a>", "enabledDescription": "Чтобы отключить push-уведомления от {{hostname}}, перейдите в настройки браузера для этого сайта и отключите уведомления. <a href='https://owncast.online/docs/notifications'>Узнать больше.</a>",
"enabledTitle": "Уведомления включены", "enabledTitle": "Уведомления включены",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Ошибка уведомления браузера", "errorTitle": "Ошибка уведомления браузера",
"iosAddButton": "Добавить", "iosAddButton": "Добавить",
"iosAddToHomeScreen": "Добавить на главный экран", "iosAddToHomeScreen": "Добавить на главный экран",
@@ -60,120 +113,39 @@
"unsupported": "Уведомления браузера не поддерживаются в браузере.", "unsupported": "Уведомления браузера не поддерживаются в браузере.",
"unsupportedLocal": "Уведомления браузера не поддерживаются для локальных серверов." "unsupportedLocal": "Уведомления браузера не поддерживаются для локальных серверов."
}, },
"Footer": {
"contribute": "Внести вклад",
"documentation": "Документация",
"source": "Источник"
},
"Header": {
"chatOffline": "Чат в автономном режиме",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Перейти к основному содержимому",
"skipToFooter": "Перейти к нижнему колонтитулу",
"skipToOfflineMessage": "Перейти к оффлайн сообщению",
"skipToPlayer": "Перейти к плееру"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Отсутствует перевод Frontend.chatOffline: Пожалуйста, сообщите</em></strong>", "chatOffline": "<strong><em>Отсутствует перевод Frontend.chatOffline: Пожалуйста, сообщите</em></strong>",
"componentError": "Ошибка: {{message}}", "componentError": "Ошибка: {{message}}",
"helloWorld": "<strong><em>Отсутствует Frontend.helloWorld: Пожалуйста, сообщите</em></strong>", "helloWorld": "<strong><em>Отсутствует Frontend.helloWorld: Пожалуйста, сообщите</em></strong>",
"notificationMessage": "<strong><em>Отсутствует перевод Frontend.notificationMessage: Пожалуйста, сообщите</em></strong>",
"offlineBasic": "Этот поток оффлайн. Возвращайтесь в ближайшее время!", "offlineBasic": "Этот поток оффлайн. Возвращайтесь в ближайшее время!",
"offlineFediverseOnly": "Этот поток отключен. <span class='follow-link'>Следите за</span> {{fediverseAccount}} на Fediverse, чтобы узнать, когда {{streamer}} выйдет в эфир в следующий раз.", "offlineFediverseOnly": "Этот поток отключен. <span class='follow-link'>Следите за</span> {{fediverseAccount}} на Fediverse, чтобы узнать, когда {{streamer}} выйдет в эфир в следующий раз.",
"offlineNotifyAndFediverse": "Этот поток отключен. Вы можете <span class='notify-link'>получить уведомление о</span> следующем выходе {{streamer}} в прямой эфир или <span class='follow-link'>следить за</span> {{fediverseAccount}} на Fediverse.", "offlineNotifyAndFediverse": "Этот поток отключен. Вы можете <span class='notify-link'>получить уведомление о</span> следующем выходе {{streamer}} в прямой эфир или <span class='follow-link'>следить за</span> {{fediverseAccount}} на Fediverse.",
"offlineNotifyOnly": "Этот поток отключен. <span class='notify-link'>Получите уведомление</span>, когда {{streamer}} появится в следующий раз." "offlineNotifyOnly": "Этот поток отключен. <span class='notify-link'>Получите уведомление</span>, когда {{streamer}} появится в следующий раз."
}, },
"Hardware Info": "Информация об оборудовании",
"Healthy Stream": "Качество трансляции",
"Help configuring my broadcasting software": "Помогите настроить программное обеспечение для трансляции",
"Hidden messages": "Скрытые сообщения",
"Hide": "Скрыть",
"How can we help you?": "Чем мы можем вам помочь?",
"I found a bug": "Я нашел ошибку",
"I have a general question": "У меня есть общий вопрос",
"I want to build add-ons for Owncast": "Я хочу создать дополнения для Owncast",
"I want to configure my owncast instance": "Я хочу настроить свой экземпляр owncast",
"I want to customize my website": "Я хочу настроить свой сайт",
"I want to embed my stream into another site": "Я хочу вставить мой стрим на другой сайт",
"I want to tweak my video output": "Я хочу настроить видеовыход",
"I want to use an external storage provider": "Я хочу использовать внешний поставщик услуг хранения данных",
"IP Bans": "Блокировка IP",
"If you found a bug, then please": "Если вы нашли ошибку, пожалуйста,",
"Inbound Audio Stream": "Входящий аудиопоток",
"Inbound Stream Details": "Информация о входящем потоке",
"Inbound Video Stream": "Входящий видеопоток",
"Info": "Информация",
"Input": "Вход",
"Last 12 hours": "Последние 12 часов",
"Last 24 hours": "Последние 24 часа",
"Last 3 months": "Последние 3 месяца",
"Last 30 days": "Последние 30 дней",
"Last 6 months": "Последние 6 месяцев",
"Last 7 days": "Последние 7 дней",
"Last live ago": "Последний раз в прямом эфире {{timeAgo}} назад",
"Learn how to point your existing software to your new server and start streaming your content": "Узнайте, как настроить имеющееся программное обеспечение на новый сервер и начать потоковую передачу контента.",
"Learn how you can add your Owncast stream to other sites you control": "Узнайте, как добавить свой поток Owncast на другие сайты, которые вы контролируете.",
"Learn more": "Подробнее",
"Learn more about chat moderation here": "Узнайте больше о модерации чата здесь.",
"Level": "Уровень",
"Link": "Ссылка",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "Внесите себя в каталог Owncast и покажите свой поток. Включите его в"
},
"Logs": "Журналы",
"Manage the messages from viewers that show up on your stream": "Управляйте сообщениями от зрителей, которые появляются в вашем стриме.",
"Max viewers last stream": "Максимальное количество зрителей на последнем стриме",
"Max viewers this stream": "Максимальное количество зрителей в этом стриме",
"Memory": "Память",
"Message": "Сообщение",
"Moderators": "Модераторы",
"Most general questions are answered in our": "Ответы на большинство общих вопросов вы найдете в нашем",
"News & Updates from Owncast": "Новости и обновления от Owncast",
"No": "Нет",
"No hardware details have been collected yet": "Информация об оборудовании еще не собрана.",
"No news": "Нет новостей.",
"No stream is active": "Ни один поток не активен",
"No viewer data has been collected yet": "Данные о зрителях еще не собраны.",
"Notify": "Уведомление",
"Other": "Другое",
"Outbound Audio Stream": "Исходящий аудиопоток",
"Outbound Stream Details": "Подробности исходящего стрима",
"Outbound Video Stream": "Исходящий видеопоток",
"Overridden via command line": "Переопределяется через командную строку.",
"Peak viewer count": "Максимальное количество просмотров",
"Playback Health": "Качество воспроизведения",
"Please wait": "Пожалуйста, подождите",
"Read the Docs": "Прочитайте документацию",
"Show": "Показать",
"Skip to footer": "Перейти к нижнему колонтитулу",
"Skip to offline message": "Перейти к оффлайн сообщению",
"Skip to page content": "Перейти к основному содержимому",
"Skip to player": "Перейти к плееру",
"Source": "Источник",
"Stay updated!": "Оставайтесь в курсе!",
"Stream health represents": "Здоровье ручья представляет собой",
"Stream started": "Стрим запущен",
"TROUBLESHOOT": "ПОИСК НЕИСПРАВНОСТЕЙ",
"Testing": { "Testing": {
"itemCount": "<strong><em>Отсутствует тестирование переводов.itemCount: Пожалуйста, сообщите</em></strong>", "itemCount": "<strong><em>Отсутствует тестирование переводов.itemCount: Пожалуйста, сообщите</em></strong>",
"messageCount": "<strong><em>Отсутствует тестирование переводов.messageCount: Пожалуйста, сообщите</em></strong>", "messageCount": "<strong><em>Отсутствует тестирование переводов.messageCount: Пожалуйста, сообщите</em></strong>",
"noPluralKey": "<strong><em>Отсутствует тестирование переводов.noPluralKey: пожалуйста, сообщите</em></strong>", "noPluralKey": "<strong><em>Отсутствует тестирование переводов.noPluralKey: пожалуйста, сообщите</em></strong>",
"simpleKey": "<strong><em>Отсутствует тестирование переводов.simpleKey: пожалуйста, сообщите</em></strong>" "simpleKey": "<strong><em>Отсутствует тестирование переводов.simpleKey: пожалуйста, сообщите</em></strong>"
}, }
"Time": "Время",
"Timestamp": "Временная метка",
"Troubleshooting": "Устранение неполадок",
"Use your broadcasting software": "Используйте свое программное обеспечение для вещания",
"User": "Пользователь",
"View": "Просмотр",
"Viewer Info": "Информация о зрителе",
"Viewers": "Зрителей",
"Visible messages": "Видимые сообщения",
"Visit the": "Перейдите на",
"Warning": "Предупреждение",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "Когда поток активен и чат включен, здесь будут отображаться подключенные клиенты чата.",
"Yes": "Да",
"You can build your own bots, overlays, tools and add-ons with our": "Вы можете создавать собственные боты, наложения, инструменты и дополнения с помощью нашего",
"You should start one": "Вам стоит начать.",
"developer APIs": "API разработчика.",
"discussions": "обсуждения",
"documentation": "документация",
"let us know": "сообщите нам",
"max viewers": "Максимум зрителей",
"of all known players": {
" Other player status is unknown": "из всех известных плееров. Статус других плееров неизвестен."
},
"offline": "офлайн",
"offline_basic": "Этот поток оффлайн. Возвращайтесь в ближайшее время!",
"or exist in our": "или существовать в нашем",
"settings": "настройки.",
"to configure additional details about your viewers": "чтобы настроить дополнительные сведения о зрителях.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "чтобы ваш экземпляр присоединился к Fediverse, что позволит людям следить за вашей прямой трансляцией, делиться ею и участвовать в ней.",
"used": "используется"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Öka din publik genom att synas i <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Detta är en extern tjänst som drivs av projektet Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Läs mer</a>.", "directoryDescription": "Öka din publik genom att synas i <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a>. Detta är en extern tjänst som drivs av projektet Owncast. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Läs mer</a>.",
"offlineMessageDescription": "Meddelandet offline visas för dina sidbesökare när du inte streamar. Markdown stöds.", "offlineMessageDescription": "Meddelandet offline visas för dina sidbesökare när du inte streamar. Markdown stöds.",
"serverUrlRequiredForDirectory": "Du måste ställa in din <strong>Server-URL</strong> ovan för att aktivera katalogen." "serverUrlRequiredForDirectory": "Du måste ställa in din <strong>Server-URL</strong> ovan för att aktivera katalogen."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Saknad översättning Admin.emojiPageBeskrivning: Vänligen rapportera</em></strong>", "emojiPageDescription": "<strong><em>Saknad översättning Admin.emojiPageBeskrivning: Vänligen rapportera</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Saknad översättning Admin.emojiUploadBulkGuide: Vänligen rapportera</em></strong>", "emojiUploadBulkGuide": "<strong><em>Saknad översättning Admin.emojiUploadBulkGuide: Vänligen rapportera</em></strong>",
"emojis": "<strong><em>Saknad översättning Admin.emojis: Vänligen rapportera</em></strong>", "emojis": "<strong><em>Saknad översättning Admin.emojis: Vänligen rapportera</em></strong>",
"uploadNewEmoji": "<strong><em>Saknad översättning Admin.uploadNewEmoji: Vänligen rapportera</em></strong>" "uploadNewEmoji": "<strong><em>Saknad översättning Admin.uploadNewEmoji: Vänligen rapportera</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "Ta med moderatorer för att hålla din chatt i ordning.",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Drivs av <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Drivs av <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Tillåt", "allowButton": "Tillåt",
@@ -44,6 +96,7 @@
"deniedTitle": "Aviseringar är blockerade på din enhet", "deniedTitle": "Aviseringar är blockerade på din enhet",
"enabledDescription": "För att inaktivera push-meddelanden från {{hostname}} åtkomst till din webbläsares behörigheter för denna webbplats och stänga av meddelanden. <a href='https://owncast.online/docs/notifications'>Läs mer.</a>", "enabledDescription": "För att inaktivera push-meddelanden från {{hostname}} åtkomst till din webbläsares behörigheter för denna webbplats och stänga av meddelanden. <a href='https://owncast.online/docs/notifications'>Läs mer.</a>",
"enabledTitle": "Aviseringar är aktiverade", "enabledTitle": "Aviseringar är aktiverade",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Fel vid avisering i webbläsaren", "errorTitle": "Fel vid avisering i webbläsaren",
"iosAddButton": "Lägg till", "iosAddButton": "Lägg till",
"iosAddToHomeScreen": "Lägg till på startskärmen", "iosAddToHomeScreen": "Lägg till på startskärmen",
@@ -60,120 +113,39 @@
"unsupported": "Webbläsaraviseringar stöds inte i din webbläsare.", "unsupported": "Webbläsaraviseringar stöds inte i din webbläsare.",
"unsupportedLocal": "Webbläsaraviseringar stöds inte för lokala servrar." "unsupportedLocal": "Webbläsaraviseringar stöds inte för lokala servrar."
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Saknad översättning Frontend.chatOffline: Vänligen rapportera</em></strong>", "chatOffline": "<strong><em>Saknad översättning Frontend.chatOffline: Vänligen rapportera</em></strong>",
"componentError": "Fel: {{message}}", "componentError": "Fel: {{message}}",
"helloWorld": "<strong><em>Saknad översättning Frontend.helloWorld: Please report</em></strong>", "helloWorld": "<strong><em>Saknad översättning Frontend.helloWorld: Please report</em></strong>",
"notificationMessage": "<strong><em>Saknad översättning Frontend.notificationMeddelande: Vänligen rapportera</em></strong>",
"offlineBasic": "Denna ström är offline. Kom tillbaka snart!", "offlineBasic": "Denna ström är offline. Kom tillbaka snart!",
"offlineFediverseOnly": "Denna ström är offline. <span class='follow-link'>Följ</span> {{fediverseAccount}} på Fediverse för att se nästa gång {{streamer}} går live.", "offlineFediverseOnly": "Denna ström är offline. <span class='follow-link'>Följ</span> {{fediverseAccount}} på Fediverse för att se nästa gång {{streamer}} går live.",
"offlineNotifyAndFediverse": "Denna ström är offline. Du kan <span class='notify-link'>meddelas</span> nästa gång {{streamer}} går live eller <span class='follow-link'>följ</span> {{fediverseAccount}} på Fediverse.", "offlineNotifyAndFediverse": "Denna ström är offline. Du kan <span class='notify-link'>meddelas</span> nästa gång {{streamer}} går live eller <span class='follow-link'>följ</span> {{fediverseAccount}} på Fediverse.",
"offlineNotifyOnly": "Denna ström är offline. <span class='notify-link'>meddelas</span> nästa gång {{streamer}} går live." "offlineNotifyOnly": "Denna ström är offline. <span class='notify-link'>meddelas</span> nästa gång {{streamer}} går live."
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "Senast live {{timeAgo}} sedan",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "Läs mer om moderering av chatten här.",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Saknad översättning Testing.itemCount: Please report</em></strong>", "itemCount": "<strong><em>Saknad översättning Testing.itemCount: Please report</em></strong>",
"messageCount": "<strong><em>Saknad översättning Testing.messageCount: Please report</em></strong>", "messageCount": "<strong><em>Saknad översättning Testing.messageCount: Please report</em></strong>",
"noPluralKey": "<strong><em>Saknad översättning Testing.noPluralKey: Vänligen rapportera</em></strong>", "noPluralKey": "<strong><em>Saknad översättning Testing.noPluralKey: Vänligen rapportera</em></strong>",
"simpleKey": "<strong><em>Saknad översättning Testing.simpleKey: Vänligen rapportera</em></strong>" "simpleKey": "<strong><em>Saknad översättning Testing.simpleKey: Vänligen rapportera</em></strong>"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "Denna ström är offline. Kom tillbaka snart!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+104 -132
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "เพิ่มผู้ชมของคุณโดยการปรากฏใน <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a> นี่เป็นบริการภายนอกที่ดำเนินการโดยโครงการ Owncast <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">เรียนรู้เพิ่มเติม</a>", "directoryDescription": "เพิ่มผู้ชมของคุณโดยการปรากฏใน <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast Directory</strong></a> นี่เป็นบริการภายนอกที่ดำเนินการโดยโครงการ Owncast <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">เรียนรู้เพิ่มเติม</a>",
"offlineMessageDescription": "ข้อความออฟไลน์จะแสดงให้ผู้เข้าชมหน้าของคุณเมื่อคุณไม่ได้สตรีม มาร์กอัปได้รับการสนับสนุน.", "offlineMessageDescription": "ข้อความออฟไลน์จะแสดงให้ผู้เข้าชมหน้าของคุณเมื่อคุณไม่ได้สตรีม มาร์กอัปได้รับการสนับสนุน.",
"serverUrlRequiredForDirectory": "คุณต้องตั้งค่า <strong>URL เซิร์ฟเวอร์</strong> ข้างต้นเพื่อเปิดใช้งานไดเรกทอรี." "serverUrlRequiredForDirectory": "คุณต้องตั้งค่า <strong>URL เซิร์ฟเวอร์</strong> ข้างต้นเพื่อเปิดใช้งานไดเรกทอรี."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>การแปลที่ขาดหายไป Admin.emojiPageDescription: กรุณาแจ้งให้ทราบ</em></strong>", "emojiPageDescription": "<strong><em>การแปลที่ขาดหายไป Admin.emojiPageDescription: กรุณาแจ้งให้ทราบ</em></strong>",
"emojiUploadBulkGuide": "<strong><em>การแปลที่ขาดหายไป Admin.emojiUploadBulkGuide: กรุณาแจ้งให้ทราบ</em></strong>", "emojiUploadBulkGuide": "<strong><em>การแปลที่ขาดหายไป Admin.emojiUploadBulkGuide: กรุณาแจ้งให้ทราบ</em></strong>",
"emojis": "<strong><em>การแปลที่ขาดหายไป Admin.emojis: กรุณาแจ้งให้ทราบ</em></strong>", "emojis": "<strong><em>การแปลที่ขาดหายไป Admin.emojis: กรุณาแจ้งให้ทราบ</em></strong>",
"uploadNewEmoji": "<strong><em>การแปลที่ขาดหายไป Admin.uploadNewEmoji: กรุณาแจ้งให้ทราบ</em></strong>" "uploadNewEmoji": "<strong><em>การแปลที่ขาดหายไป Admin.uploadNewEmoji: กรุณาแจ้งให้ทราบ</em></strong>"
}, },
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "นำผู้ดูแลเข้ามาเพื่อช่วยให้การสนทนาของคุณเรียบร้อย",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Powered by <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "อนุญาต", "allowButton": "อนุญาต",
@@ -44,6 +96,7 @@
"deniedTitle": "การแจ้งเตือนถูกบล็อกบนอุปกรณ์ของคุณ", "deniedTitle": "การแจ้งเตือนถูกบล็อกบนอุปกรณ์ของคุณ",
"enabledDescription": "เพื่อปิดการแจ้งเตือนแบบพุชจาก {{hostname}} ให้เข้าถึงการอนุญาตในเบราว์เซอร์ของคุณสำหรับเว็บไซต์นี้และปิดการแจ้งเตือน <a href='https://owncast.online/docs/notifications'>เรียนรู้เพิ่มเติม.</a>", "enabledDescription": "เพื่อปิดการแจ้งเตือนแบบพุชจาก {{hostname}} ให้เข้าถึงการอนุญาตในเบราว์เซอร์ของคุณสำหรับเว็บไซต์นี้และปิดการแจ้งเตือน <a href='https://owncast.online/docs/notifications'>เรียนรู้เพิ่มเติม.</a>",
"enabledTitle": "การแจ้งเตือนเปิดใช้งานแล้ว", "enabledTitle": "การแจ้งเตือนเปิดใช้งานแล้ว",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "ข้อผิดพลาดการแจ้งเตือนบนเบราว์เซอร์", "errorTitle": "ข้อผิดพลาดการแจ้งเตือนบนเบราว์เซอร์",
"iosAddButton": "เพิ่ม", "iosAddButton": "เพิ่ม",
"iosAddToHomeScreen": "เพิ่มไปที่หน้าจอหลัก", "iosAddToHomeScreen": "เพิ่มไปที่หน้าจอหลัก",
@@ -60,120 +113,39 @@
"unsupported": "เบราว์เซอร์ของคุณไม่รองรับการแจ้งเตือนในเบราว์เซอร์", "unsupported": "เบราว์เซอร์ของคุณไม่รองรับการแจ้งเตือนในเบราว์เซอร์",
"unsupportedLocal": "เบราว์เซอร์ไม่รองรับการแจ้งเตือนสำหรับเซิร์ฟเวอร์ท้องถิ่น" "unsupportedLocal": "เบราว์เซอร์ไม่รองรับการแจ้งเตือนสำหรับเซิร์ฟเวอร์ท้องถิ่น"
}, },
"chatOffline": "<strong><em>Missing translation Frontend.chatOffline: Please report</em></strong>", "Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "Chat is offline",
"componentError": "Error: {{message}}", "componentError": "Error: {{message}}",
"helloWorld": "<strong><em>Missing translation Frontend.helloWorld: Please report</em></strong>", "helloWorld": "Hello world",
"notificationMessage": "<strong><em>Missing translation Frontend.notificationMessage: Please report</em></strong>",
"offlineBasic": "สตรีมนี้ออฟไลน์ กรุณาตรวจสอบอีกครั้งในภายหลัง!", "offlineBasic": "สตรีมนี้ออฟไลน์ กรุณาตรวจสอบอีกครั้งในภายหลัง!",
"offlineFediverseOnly": "สตรีมนี้ออฟไลน์ <span class='follow-link'>ติดตาม</span> {{fediverseAccount}} บน Fediverse เพื่อดูเมื่อ {{streamer}} เริ่มถ่ายทอดสดครั้งต่อไป", "offlineFediverseOnly": "สตรีมนี้ออฟไลน์ <span class='follow-link'>ติดตาม</span> {{fediverseAccount}} บน Fediverse เพื่อดูเมื่อ {{streamer}} เริ่มถ่ายทอดสดครั้งต่อไป",
"offlineNotifyAndFediverse": "สตรีมนี้ออฟไลน์ คุณสามารถ <span class='notify-link'>รับการแจ้งเตือน</span> เมื่อ {{streamer}} เริ่มถ่ายทอดสดอีกครั้งหรือ <span class='follow-link'>ติดตาม</span> {{fediverseAccount}} บน Fediverse", "offlineNotifyAndFediverse": "สตรีมนี้ออฟไลน์ คุณสามารถ <span class='notify-link'>รับการแจ้งเตือน</span> เมื่อ {{streamer}} เริ่มถ่ายทอดสดอีกครั้งหรือ <span class='follow-link'>ติดตาม</span> {{fediverseAccount}} บน Fediverse",
"offlineNotifyOnly": "สตรีมนี้ออฟไลน์ <span class='notify-link'>รับการแจ้งเตือน</span> เมื่อ {{streamer}} เริ่มถ่ายทอดสด" "offlineNotifyOnly": "สตรีมนี้ออฟไลน์ <span class='notify-link'>รับการแจ้งเตือน</span> เมื่อ {{streamer}} เริ่มถ่ายทอดสด"
}, },
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "ถ่ายทอดสดล่าสุดเมื่อ {{timeAgo}} ที่ผ่านมา",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "เรียนรู้เพิ่มเติมเกี่ยวกับการดูแลการสนทนาได้ที่นี่",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": { "Testing": {
"itemCount": "<strong><em>Missing translation Testing.itemCount: Please report</em></strong>", "itemCount": "You have {{count}} items",
"messageCount": "<strong><em>Missing translation Testing.messageCount: Please report</em></strong>", "messageCount": "You have {{count}} messages from {{sender}}",
"noPluralKey": "<strong><em>Missing translation Testing.noPluralKey: Please report</em></strong>", "noPluralKey": "This key has no plural variants - {{count}} things",
"simpleKey": "<strong><em>Missing translation Testing.simpleKey: Please report</em></strong>" "simpleKey": "Simple translation text"
}, }
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "สตรีมนี้ออฟไลน์ กรุณาตรวจสอบกลับอีกครั้งในไม่ช้า!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Thêm phiên bản Owncast của bạn vào Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "Tăng cường khán giả của bạn bằng cách xuất hiện trong <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Danh bạ Owncast</strong></a>. Đây là một dịch vụ bên ngoài do dự án Owncast vận hành. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Tìm hiểu thêm</a>.", "directoryDescription": "Tăng cường khán giả của bạn bằng cách xuất hiện trong <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Danh bạ Owncast</strong></a>. Đây là một dịch vụ bên ngoài do dự án Owncast vận hành. <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">Tìm hiểu thêm</a>.",
"offlineMessageDescription": "Thông điệp ngoại tuyến sẽ được hiển thị cho khách truy cập trang của bạn khi bạn không phát sóng. Markdown được hỗ trợ.", "offlineMessageDescription": "Thông điệp ngoại tuyến sẽ được hiển thị cho khách truy cập trang của bạn khi bạn không phát sóng. Markdown được hỗ trợ.",
"serverUrlRequiredForDirectory": "Bạn phải thiết lập <strong>URL máy chủ</strong> của mình ở trên để kích hoạt thư mục." "serverUrlRequiredForDirectory": "Bạn phải thiết lập <strong>URL máy chủ</strong> của mình ở trên để kích hoạt thư mục."
}, },
"HardwareInfo": {
"cpu": "CPU",
"disk": "Ổ đĩa",
"memory": "Bộ nhớ",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Vui lòng đợi",
"title": "Thông tin phần cứng",
"used": "đã sử dụng"
},
"Help": {
"bugPlease": "Nếu bạn phát hiện lỗi, vui lòng",
"buildAddons": "Tôi muốn xây dựng tiện ích mở rộng cho Owncast",
"buildTools": "Bạn có thể xây dựng bot, lớp phủ, công cụ và tiện ích mở rộng riêng với",
"commonTasks": "Tác vụ thông dụng",
"configureBroadcasting": "Trợ giúp cấu hình phần mềm phát sóng của tôi",
"configureInstance": "Tôi muốn cấu hình phiên bản Owncast của mình",
"customizeWebsite": "Tôi muốn tùy chỉnh trang web của mình",
"developerApis": "developer APIs.",
"discussions": "thảo luận",
"documentation": "Tài liệu",
"embedStream": "Tôi muốn nhúng stream của mình vào trang web khác",
"faq": "FAQ",
"fixProblems": "Giải quyết vấn đề của bạn",
"foundBug": "Tôi phát hiện lỗi",
"generalAnswered": "Hầu hết các câu hỏi chung được trả lời trong",
"generalQuestion": "Tôi có câu hỏi chung",
"learnMore": "Tìm hiểu thêm",
"letUsKnow": "cho chúng tôi biết",
"orExist": "hoặc có trong",
"other": "Khác",
"readDocs": "Đọc tài liệu",
"title": "Chúng tôi có thể giúp gì cho bạn?",
"troubleshooting": "Xử lý sự cố",
"tweakVideo": "Tôi muốn điều chỉnh đầu ra video",
"useStorage": "Tôi muốn sử dụng nhà cung cấp lưu trữ bên ngoài"
},
"LogTable": {
"error": "Lỗi",
"info": "Thông tin",
"level": "Mức độ",
"logs": "Nhật ký",
"message": "Tin nhắn",
"timestamp": "Thời gian",
"warning": "Cảnh báo"
},
"NewsFeed": {
"link": "Liên kết",
"noNews": "No news.",
"title": "Tin tức & Cập nhật từ Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Stream hiện tại",
"currentViewers": "Số người xem hiện tại",
"last12Hours": "12 giờ qua",
"last24Hours": "24 giờ qua",
"last30Days": "30 ngày qua",
"last3Months": "3 tháng qua",
"last6Months": "6 tháng qua",
"last7Days": "7 ngày qua",
"maxViewers": "người xem tối đa",
"maxViewersLastStream": "Số người xem tối đa stream trước",
"maxViewersThisStream": "Số người xem tối đa stream này",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Vui lòng đợi",
"title": "Thông tin người xem",
"viewers": "Người xem"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>Thiếu bản dịch Admin.emojiPageDescription: Vui lòng báo cáo</em></strong>", "emojiPageDescription": "<strong><em>Thiếu bản dịch Admin.emojiPageDescription: Vui lòng báo cáo</em></strong>",
"emojiUploadBulkGuide": "<strong><em>Thiếu bản dịch Admin.emojiUploadBulkGuide: Vui lòng báo cáo</em></strong>", "emojiUploadBulkGuide": "<strong><em>Thiếu bản dịch Admin.emojiUploadBulkGuide: Vui lòng báo cáo</em></strong>",
"emojis": "<strong><em>Thiếu bản dịch Admin.emojis: Vui lòng báo cáo</em></strong>", "emojis": "<strong><em>Thiếu bản dịch Admin.emojis: Vui lòng báo cáo</em></strong>",
"uploadNewEmoji": "<strong><em>Thiếu bản dịch Admin.uploadNewEmoji: Vui lòng báo cáo</em></strong>" "uploadNewEmoji": "<strong><em>Thiếu bản dịch Admin.uploadNewEmoji: Vui lòng báo cáo</em></strong>"
}, },
"Banned Users": "Người dùng bị cấm",
"Bring in moderators to help keep your chat in order": "Mang đến những người điều hành để giúp giữ cho cuộc trò chuyện của bạn có trật tự.",
"CPU": "CPU",
"Chat Messages": "Tin nhắn trò chuyện",
"Chat is disabled": "Trò chuyện đã bị vô hiệu hóa",
"Chat is offline": "Trò chuyện đang ngoại tuyến",
"Chat will be available when the stream is live": "Trò chuyện sẽ khả dụng khi stream trực tiếp",
"Chat will continue to be disabled until you begin a live stream": "Trò chuyện sẽ tiếp tục bị vô hiệu hóa cho đến khi bạn bắt đầu phát trực tiếp",
"Click and never miss future streams!": "Nhấp để không bỏ lỡ các stream trong tương lai!",
"Common": { "Common": {
"poweredByOwncastVersion": "Được cung cấp bởi <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Được cung cấp bởi <a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Tác vụ thông dụng",
"Connected": "Đã kết nối",
"Contribute": "Đóng góp",
"Current stream": "Stream hiện tại",
"Current viewers": "Số người xem hiện tại",
"Disk": "Ổ đĩa",
"Documentation": "Tài liệu",
"Embed your video onto other sites": "Nhúng video của bạn vào các trang web khác",
"Enable Owncast social features": "Kích hoạt tính năng xã hội của Owncast",
"Error": "Lỗi",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Tìm khán giả trên Thư mục Owncast",
"Fix your problems": "Giải quyết vấn đề của bạn",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "Cho phép", "allowButton": "Cho phép",
@@ -44,6 +96,7 @@
"deniedTitle": "Thông báo đã bị chặn trên thiết bị của bạn", "deniedTitle": "Thông báo đã bị chặn trên thiết bị của bạn",
"enabledDescription": "Để vô hiệu hóa thông báo đẩy từ {{hostname}}, hãy truy cập quyền trình duyệt của bạn cho trang web này và tắt thông báo. <a href='https://owncast.online/docs/notifications'>Tìm hiểu thêm.</a>", "enabledDescription": "Để vô hiệu hóa thông báo đẩy từ {{hostname}}, hãy truy cập quyền trình duyệt của bạn cho trang web này và tắt thông báo. <a href='https://owncast.online/docs/notifications'>Tìm hiểu thêm.</a>",
"enabledTitle": "Thông báo đã được bật", "enabledTitle": "Thông báo đã được bật",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "Lỗi thông báo trình duyệt", "errorTitle": "Lỗi thông báo trình duyệt",
"iosAddButton": "Thêm", "iosAddButton": "Thêm",
"iosAddToHomeScreen": "Thêm vào màn hình chính", "iosAddToHomeScreen": "Thêm vào màn hình chính",
@@ -60,120 +113,39 @@
"unsupported": "Thông báo trình duyệt không được hỗ trợ trong trình duyệt của bạn.", "unsupported": "Thông báo trình duyệt không được hỗ trợ trong trình duyệt của bạn.",
"unsupportedLocal": "Thông báo trình duyệt không được hỗ trợ cho các máy chủ cục bộ." "unsupportedLocal": "Thông báo trình duyệt không được hỗ trợ cho các máy chủ cục bộ."
}, },
"Footer": {
"contribute": "Đóng góp",
"documentation": "Tài liệu",
"source": "Mã nguồn"
},
"Header": {
"chatOffline": "Trò chuyện đang ngoại tuyến",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Chuyển đến nội dung trang",
"skipToFooter": "Chuyển đến chân trang",
"skipToOfflineMessage": "Chuyển đến tin nhắn ngoại tuyến",
"skipToPlayer": "Chuyển đến trình phát"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>Thiếu bản dịch Frontend.chatOffline: Vui lòng báo cáo</em></strong>", "chatOffline": "<strong><em>Thiếu bản dịch Frontend.chatOffline: Vui lòng báo cáo</em></strong>",
"componentError": "Lỗi: {{message}}", "componentError": "Lỗi: {{message}}",
"helloWorld": "<strong><em>Thiếu bản dịch Frontend.helloWorld: Vui lòng báo cáo</em></strong>", "helloWorld": "<strong><em>Thiếu bản dịch Frontend.helloWorld: Vui lòng báo cáo</em></strong>",
"notificationMessage": "<strong><em>Thiếu bản dịch Frontend.notificationMessage: Vui lòng báo cáo</em></strong>",
"offlineBasic": "Luồng này đang ngoại tuyến. Hãy quay lại sau!", "offlineBasic": "Luồng này đang ngoại tuyến. Hãy quay lại sau!",
"offlineFediverseOnly": "Luồng này đang ngoại tuyến. <span class='follow-link'>Theo dõi</span> {{fediverseAccount}} trên Fediverse để xem lần tới {{streamer}} trực tiếp.", "offlineFediverseOnly": "Luồng này đang ngoại tuyến. <span class='follow-link'>Theo dõi</span> {{fediverseAccount}} trên Fediverse để xem lần tới {{streamer}} trực tiếp.",
"offlineNotifyAndFediverse": "Luồng này đang ngoại tuyến. Bạn có thể <span class='notify-link'>được thông báo</span> khi {{streamer}} trực tiếp hoặc <span class='follow-link'>theo dõi</span> {{fediverseAccount}} trên Fediverse.", "offlineNotifyAndFediverse": "Luồng này đang ngoại tuyến. Bạn có thể <span class='notify-link'>được thông báo</span> khi {{streamer}} trực tiếp hoặc <span class='follow-link'>theo dõi</span> {{fediverseAccount}} trên Fediverse.",
"offlineNotifyOnly": "Luồng này đang ngoại tuyến. <span class='notify-link'>Được thông báo</span> khi {{streamer}} trực tiếp." "offlineNotifyOnly": "Luồng này đang ngoại tuyến. <span class='notify-link'>Được thông báo</span> khi {{streamer}} trực tiếp."
}, },
"Hardware Info": "Thông tin phần cứng",
"Healthy Stream": "Stream ổn định",
"Help configuring my broadcasting software": "Trợ giúp cấu hình phần mềm phát sóng của tôi",
"Hidden messages": "Tin nhắn ẩn",
"Hide": "Ẩn",
"How can we help you?": "Chúng tôi có thể giúp gì cho bạn?",
"I found a bug": "Tôi phát hiện lỗi",
"I have a general question": "Tôi có câu hỏi chung",
"I want to build add-ons for Owncast": "Tôi muốn xây dựng tiện ích mở rộng cho Owncast",
"I want to configure my owncast instance": "Tôi muốn cấu hình phiên bản Owncast của mình",
"I want to customize my website": "Tôi muốn tùy chỉnh trang web của mình",
"I want to embed my stream into another site": "Tôi muốn nhúng stream của mình vào trang web khác",
"I want to tweak my video output": "Tôi muốn điều chỉnh đầu ra video",
"I want to use an external storage provider": "Tôi muốn sử dụng nhà cung cấp lưu trữ bên ngoài",
"IP Bans": "IP bị cấm",
"If you found a bug, then please": "Nếu bạn phát hiện lỗi, vui lòng",
"Inbound Audio Stream": "Luồng âm thanh đi vào",
"Inbound Stream Details": "Chi tiết luồng đi vào",
"Inbound Video Stream": "Luồng video đi vào",
"Info": "Thông tin",
"Input": "Đầu vào",
"Last 12 hours": "12 giờ qua",
"Last 24 hours": "24 giờ qua",
"Last 3 months": "3 tháng qua",
"Last 30 days": "30 ngày qua",
"Last 6 months": "6 tháng qua",
"Last 7 days": "7 ngày qua",
"Last live ago": "Lần phát trực tiếp cuối cùng {{timeAgo}} trước",
"Learn how to point your existing software to your new server and start streaming your content": "Tìm hiểu cách kết nối phần mềm hiện có của bạn với máy chủ mới và bắt đầu phát trực tuyến nội dung của bạn",
"Learn how you can add your Owncast stream to other sites you control": "Tìm hiểu cách thêm luồng Owncast của bạn vào các trang web bạn quản lý",
"Learn more": "Tìm hiểu thêm",
"Learn more about chat moderation here": "Tìm hiểu thêm về việc điều chỉnh chat ở đây.",
"Level": "Mức độ",
"Link": "Liên kết",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "Đăng ký trong Thư mục Owncast và giới thiệu stream của bạn. Kích hoạt tính năng trong"
},
"Logs": "Nhật ký",
"Manage the messages from viewers that show up on your stream": "Quản lý tin nhắn từ người xem hiển thị trên stream của bạn",
"Max viewers last stream": "Số người xem tối đa stream trước",
"Max viewers this stream": "Số người xem tối đa stream này",
"Memory": "Bộ nhớ",
"Message": "Tin nhắn",
"Moderators": "Người kiểm duyệt",
"Most general questions are answered in our": "Hầu hết các câu hỏi chung được trả lời trong",
"News & Updates from Owncast": "Tin tức & Cập nhật từ Owncast",
"No": "Không",
"No hardware details have been collected yet": "Chưa có thông tin phần cứng nào được thu thập",
"No news": "Không có tin tức",
"No stream is active": "Không có stream nào đang hoạt động",
"No viewer data has been collected yet": "Chưa có dữ liệu người xem nào được thu thập",
"Notify": "Thông báo",
"Other": "Khác",
"Outbound Audio Stream": "Luồng âm thanh đi ra",
"Outbound Stream Details": "Chi tiết luồng đi ra",
"Outbound Video Stream": "Luồng video đi ra",
"Overridden via command line": "Đã ghi đè qua dòng lệnh",
"Peak viewer count": "Số người xem cao nhất",
"Playback Health": "Tình trạng phát lại",
"Please wait": "Vui lòng đợi",
"Read the Docs": "Đọc tài liệu",
"Show": "Hiện",
"Skip to footer": "Chuyển đến chân trang",
"Skip to offline message": "Chuyển đến tin nhắn ngoại tuyến",
"Skip to page content": "Chuyển đến nội dung trang",
"Skip to player": "Chuyển đến trình phát",
"Source": "Mã nguồn",
"Stay updated!": "Cập nhật thường xuyên!",
"Stream health represents": "Tình trạng stream thể hiện",
"Stream started": "Stream đã bắt đầu",
"TROUBLESHOOT": "XỬ LÝ SỰ CỐ",
"Testing": { "Testing": {
"itemCount": "<strong><em>Thiếu bản dịch Testing.itemCount: Vui lòng báo cáo</em></strong>", "itemCount": "<strong><em>Thiếu bản dịch Testing.itemCount: Vui lòng báo cáo</em></strong>",
"messageCount": "<strong><em>Thiếu bản dịch Testing.messageCount: Vui lòng báo cáo</em></strong>", "messageCount": "<strong><em>Thiếu bản dịch Testing.messageCount: Vui lòng báo cáo</em></strong>",
"noPluralKey": "<strong><em>Thiếu bản dịch Testing.noPluralKey: Vui lòng báo cáo</em></strong>", "noPluralKey": "<strong><em>Thiếu bản dịch Testing.noPluralKey: Vui lòng báo cáo</em></strong>",
"simpleKey": "<strong><em>Thiếu bản dịch Testing.simpleKey: Vui lòng báo cáo</em></strong>" "simpleKey": "<strong><em>Thiếu bản dịch Testing.simpleKey: Vui lòng báo cáo</em></strong>"
}, }
"Time": "Thời gian",
"Timestamp": "Thời gian",
"Troubleshooting": "Xử lý sự cố",
"Use your broadcasting software": "Sử dụng phần mềm phát sóng của bạn",
"User": "Người dùng",
"View": "Xem",
"Viewer Info": "Thông tin người xem",
"Viewers": "Người xem",
"Visible messages": "Tin nhắn hiển thị",
"Visit the": "Truy cập",
"Warning": "Cảnh báo",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "Khi stream đang hoạt động và trò chuyện được bật, các kết nối trò chuyện sẽ được hiển thị tại đây",
"Yes": "Có",
"You can build your own bots, overlays, tools and add-ons with our": "Bạn có thể xây dựng bot, lớp phủ, công cụ và tiện ích mở rộng riêng với",
"You should start one": "Bạn nên bắt đầu một stream",
"developer APIs": "API cho nhà phát triển của chúng tôi",
"discussions": "thảo luận",
"documentation": "tài liệu hướng dẫn",
"let us know": "cho chúng tôi biết",
"max viewers": "người xem tối đa",
"of all known players": {
" Other player status is unknown": "của tất cả các trình phát đã biết. Trạng thái trình phát khác không xác định"
},
"offline": "ngoại tuyến",
"offline_basic": "Luồng này đang ngoại tuyến. Vui lòng kiểm tra lại sau!",
"or exist in our": "hoặc có trong",
"settings": "cài đặt",
"to configure additional details about your viewers": "để cấu hình thêm thông tin về người xem của bạn",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "để phiên bản của bạn tham gia Fediverse, cho phép mọi người theo dõi, chia sẻ và tương tác với stream trực tiếp của bạn",
"used": "đã sử dụng"
} }
+98 -126
View File
@@ -1,41 +1,93 @@
{ {
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": { "Admin": {
"EditInstanceDetails": { "EditInstanceDetails": {
"directoryDescription": "透過出現在<a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast 目錄</strong></a>來增加您的觀眾。這是由 Owncast 專案運營的外部服務。<a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">了解更多</a>。", "directoryDescription": "透過出現在<a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast 目錄</strong></a>來增加您的觀眾。這是由 Owncast 專案運營的外部服務。<a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">了解更多</a>。",
"offlineMessageDescription": "當您不在串流時,離線訊息會顯示給您的頁面訪客。支援 Markdown。", "offlineMessageDescription": "當您不在串流時,離線訊息會顯示給您的頁面訪客。支援 Markdown。",
"serverUrlRequiredForDirectory": "您必須在上方設定<strong>伺服器 URL</strong>,才能啟用目錄。" "serverUrlRequiredForDirectory": "您必須在上方設定<strong>伺服器 URL</strong>,才能啟用目錄。"
}, },
"HardwareInfo": {
"cpu": "中央處理器",
"disk": "磁碟",
"memory": "記憶體",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "請稍後",
"title": "硬體資訊",
"used": "使用情況"
},
"Help": {
"bugPlease": "如果您發現 Bug,請",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "文件",
"embedStream": "I want to embed my stream into another site",
"faq": "常見問題",
"fixProblems": "Fix your problems",
"foundBug": "报告 Bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "我有一個一般性問題",
"learnMore": "了解更多",
"letUsKnow": "告知我們",
"orExist": "or exist in our",
"other": "其他",
"readDocs": "閱讀文件",
"title": "我們該怎樣幫助你?",
"troubleshooting": "疑難排解",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "錯誤",
"info": "資訊",
"level": "水平",
"logs": "紀錄",
"message": "訊息",
"timestamp": "時間戳記",
"warning": "警告"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "目前收看人數",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "請稍後",
"title": "觀看人訊息",
"viewers": "瀏覽者"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>缺少翻譯 Admin.emojiPageDescription:請報告</em></strong>", "emojiPageDescription": "<strong><em>缺少翻譯 Admin.emojiPageDescription:請報告</em></strong>",
"emojiUploadBulkGuide": "<strong><em>缺少翻譯 Admin.emojiUploadBulkGuide:請報告</em></strong>", "emojiUploadBulkGuide": "<strong><em>缺少翻譯 Admin.emojiUploadBulkGuide:請報告</em></strong>",
"emojis": "<strong><em>缺少翻譯 Admin.emojis:請報告</em></strong>", "emojis": "<strong><em>缺少翻譯 Admin.emojis:請報告</em></strong>",
"uploadNewEmoji": "<strong><em>缺少翻譯 Admin.uploadNewEmoji:請報告</em></strong>" "uploadNewEmoji": "<strong><em>缺少翻譯 Admin.uploadNewEmoji:請報告</em></strong>"
}, },
"Banned Users": "被遮蔽的用戶",
"Bring in moderators to help keep your chat in order": "邀請版主幫忙維持聊天秩序。",
"CPU": "中央處理器",
"Chat Messages": "聊天訊息",
"Chat is disabled": "聊天已禁用。",
"Chat is offline": "聊天室已離線。",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": { "Common": {
"poweredByOwncastVersion": "Powered by<a href='https://owncast.online'>Owncast v{{versionNumber}}</a>" "poweredByOwncastVersion": "Powered by<a href='https://owncast.online'>Owncast v{{versionNumber}}</a>"
}, },
"Common tasks": "Common tasks",
"Connected": "已連接",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "目前收看人數",
"Disk": "磁碟",
"Documentation": "文件",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "錯誤",
"FAQ": "常見問題",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": { "Frontend": {
"BrowserNotifyModal": { "BrowserNotifyModal": {
"allowButton": "允許", "allowButton": "允許",
@@ -44,6 +96,7 @@
"deniedTitle": "您的設備已阻止通知", "deniedTitle": "您的設備已阻止通知",
"enabledDescription": "要禁用來自{{hostname}}的推送通知,請訪問您對此網站的瀏覽器許可權並關閉通知。<a href='https://owncast.online/docs/notifications'>了解更多。</a>", "enabledDescription": "要禁用來自{{hostname}}的推送通知,請訪問您對此網站的瀏覽器許可權並關閉通知。<a href='https://owncast.online/docs/notifications'>了解更多。</a>",
"enabledTitle": "通知已啟用", "enabledTitle": "通知已啟用",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "瀏覽器通知錯誤", "errorTitle": "瀏覽器通知錯誤",
"iosAddButton": "新增", "iosAddButton": "新增",
"iosAddToHomeScreen": "加入主畫面", "iosAddToHomeScreen": "加入主畫面",
@@ -60,120 +113,39 @@
"unsupported": "您的瀏覽器不支援瀏覽器通知。", "unsupported": "您的瀏覽器不支援瀏覽器通知。",
"unsupportedLocal": "您的瀏覽器不支援本地伺服器的瀏覽器通知。" "unsupportedLocal": "您的瀏覽器不支援本地伺服器的瀏覽器通知。"
}, },
"Footer": {
"contribute": "Contribute",
"documentation": "文件",
"source": "源導"
},
"Header": {
"chatOffline": "聊天室已離線。",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "跳到至頁腳",
"skipToOfflineMessage": "跳到至離線訊息",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>缺少翻譯 Frontend.chatOffline:請報告</em></strong>", "chatOffline": "<strong><em>缺少翻譯 Frontend.chatOffline:請報告</em></strong>",
"componentError": "錯誤: {{message}}", "componentError": "錯誤: {{message}}",
"helloWorld": "<strong><em>缺少翻譯 Frontend.helloWorld:請報告</em></strong>", "helloWorld": "<strong><em>缺少翻譯 Frontend.helloWorld:請報告</em></strong>",
"notificationMessage": "<strong><em>缺少翻譯 Frontend.notificationMessage:請報告</em></strong>",
"offlineBasic": "此串流已離線。請稍後再回來查看!", "offlineBasic": "此串流已離線。請稍後再回來查看!",
"offlineFediverseOnly": "此串流已離線。請在 Fediverse<span class='follow-link'>上追</span>蹤 {{fediverseAccount}} ,以查看 {{streamer}} 的下次直播時間。", "offlineFediverseOnly": "此串流已離線。請在 Fediverse<span class='follow-link'>上追</span>蹤 {{fediverseAccount}} ,以查看 {{streamer}} 的下次直播時間。",
"offlineNotifyAndFediverse": "此串流已離線。您可以在 {{streamer}} 上線時<span class='notify-link'>收到通知,</span>或在 Fediverse<span class='follow-link'>上追蹤</span> {{fediverseAccount}}。", "offlineNotifyAndFediverse": "此串流已離線。您可以在 {{streamer}} 上線時<span class='notify-link'>收到通知,</span>或在 Fediverse<span class='follow-link'>上追蹤</span> {{fediverseAccount}}。",
"offlineNotifyOnly": "此串流已離線。下次 {{streamer}} 上線時,您<span class='notify-link'>將會收到通知</span>。" "offlineNotifyOnly": "此串流已離線。下次 {{streamer}} 上線時,您<span class='notify-link'>將會收到通知</span>。"
}, },
"Hardware Info": "硬體資訊",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "隱藏",
"How can we help you?": "我們該怎樣幫助你?",
"I found a bug": "报告 Bug",
"I have a general question": "我有一個一般性問題",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP 封鎖",
"If you found a bug, then please": "如果您發現 Bug,請",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "資訊",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "上次實況時間:{{timeAgo}}前",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "了解更多",
"Learn more about chat moderation here": "在此瞭解更多關於聊天管理的資訊。",
"Level": "水平",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "紀錄",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "記憶體",
"Message": "訊息",
"Moderators": "版主",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "否",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "沒有新聞。",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "通知",
"Other": "其他",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "請稍後",
"Read the Docs": "閱讀文件",
"Show": "顯示",
"Skip to footer": "跳到至頁腳",
"Skip to offline message": "跳到至離線訊息",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "源導",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "實況已開始",
"TROUBLESHOOT": "排除故障",
"Testing": { "Testing": {
"itemCount": "<strong><em>遺失翻譯 Testing.itemCount:請報告</em></strong>", "itemCount": "<strong><em>遺失翻譯 Testing.itemCount:請報告</em></strong>",
"messageCount": "<strong><em>遺失翻譯 Testing.messageCount:請報告</em></strong>", "messageCount": "<strong><em>遺失翻譯 Testing.messageCount:請報告</em></strong>",
"noPluralKey": "<strong><em>遺失翻譯 Testing.noPluralKey:請報告</em></strong>", "noPluralKey": "<strong><em>遺失翻譯 Testing.noPluralKey:請報告</em></strong>",
"simpleKey": "<strong><em>遺失翻譯 Testing.simpleKey:請報告</em></strong>" "simpleKey": "<strong><em>遺失翻譯 Testing.simpleKey:請報告</em></strong>"
}, }
"Time": "時間",
"Timestamp": "時間戳記",
"Troubleshooting": "疑難排解",
"Use your broadcasting software": "Use your broadcasting software",
"User": "用戶",
"View": "查看",
"Viewer Info": "觀看人訊息",
"Viewers": "瀏覽者",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "警告",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "是",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "告知我們",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "已離線",
"offline_basic": "此串流已離線。請稍後再回來查看!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "使用情況"
} }
+1 -3
View File
@@ -16,7 +16,7 @@
"build-styles": "cd ./style-definitions && style-dictionary build && ./build.sh && cd -", "build-styles": "cd ./style-definitions && style-dictionary build && ./build.sh && cd -",
"test": "jest", "test": "jest",
"format": "prettier --write **/*.{js,ts,jsx,tsx,css,md,scss}", "format": "prettier --write **/*.{js,ts,jsx,tsx,css,md,scss}",
"translate": "i18next -c i18next-parser.config.mjs && node scripts/i18n-extract.js" "translate": "node scripts/i18n-extract.js"
}, },
"dependencies": { "dependencies": {
"@ant-design/icons": "4.8.3", "@ant-design/icons": "4.8.3",
@@ -45,7 +45,6 @@
"date-fns": "^4.0.0", "date-fns": "^4.0.0",
"glob": "^11.0.3", "glob": "^11.0.3",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"i18next-parser": "^9.1.0",
"i18next-scanner": "^4.6.0", "i18next-scanner": "^4.6.0",
"interweave": "^13.0.0", "interweave": "^13.0.0",
"interweave-autolink": "^5.1.0", "interweave-autolink": "^5.1.0",
@@ -98,7 +97,6 @@
"@storybook/theming": "^8.3.6", "@storybook/theming": "^8.3.6",
"@svgr/webpack": "8.1.0", "@svgr/webpack": "8.1.0",
"@testing-library/react": "^16.3.0", "@testing-library/react": "^16.3.0",
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"@types/markdown-it": "14.1.2", "@types/markdown-it": "14.1.2",
"@types/node": "22.17.2", "@types/node": "22.17.2",
+14 -8
View File
@@ -5,6 +5,7 @@ import { useTranslation } from 'next-export-i18n';
import { fetchData, FETCH_INTERVAL, HARDWARE_STATS } from '../../utils/apis'; import { fetchData, FETCH_INTERVAL, HARDWARE_STATS } from '../../utils/apis';
import { Chart } from '../../components/admin/Chart'; import { Chart } from '../../components/admin/Chart';
import { StatisticItem } from '../../components/admin/StatisticItem'; import { StatisticItem } from '../../components/admin/StatisticItem';
import { Localization } from '../../types/localization';
import { AdminLayout } from '../../components/layouts/AdminLayout'; import { AdminLayout } from '../../components/layouts/AdminLayout';
@@ -55,13 +56,13 @@ export default function HardwareInfo() {
if (!hardwareStatus.cpu) { if (!hardwareStatus.cpu) {
return ( return (
<div> <div>
<Typography.Title>{t('Hardware Info')}</Typography.Title> <Typography.Title>{t(Localization.Admin.HardwareInfo.title)}</Typography.Title>
<Alert <Alert
style={{ marginTop: '10px' }} style={{ marginTop: '10px' }}
banner banner
message={t('Please wait')} message={t(Localization.Admin.HardwareInfo.pleaseWait)}
description={t('No hardware details have been collected yet.')} description={t(Localization.Admin.HardwareInfo.noDetails)}
type="info" type="info"
/> />
<Spin spinning style={{ width: '100%', margin: '10px' }} /> <Spin spinning style={{ width: '100%', margin: '10px' }} />
@@ -75,19 +76,19 @@ export default function HardwareInfo() {
const series = [ const series = [
{ {
name: t('CPU'), name: t(Localization.Admin.HardwareInfo.cpu),
color: '#B63FFF', color: '#B63FFF',
data: hardwareStatus.cpu, data: hardwareStatus.cpu,
pointStyle: 'rect', pointStyle: 'rect',
}, },
{ {
name: t('Memory'), name: t(Localization.Admin.HardwareInfo.memory),
color: '#2087E2', color: '#2087E2',
data: hardwareStatus.memory, data: hardwareStatus.memory,
pointStyle: 'circle', pointStyle: 'circle',
}, },
{ {
name: t('Disk'), name: t(Localization.Admin.HardwareInfo.disk),
color: '#FF7700', color: '#FF7700',
data: hardwareStatus.disk, data: hardwareStatus.disk,
pointStyle: 'rectRounded', pointStyle: 'rectRounded',
@@ -96,7 +97,7 @@ export default function HardwareInfo() {
return ( return (
<> <>
<Typography.Title>{t('Hardware Info')}</Typography.Title> <Typography.Title>{t(Localization.Admin.HardwareInfo.title)}</Typography.Title>
<br /> <br />
<div> <div>
<Row gutter={[16, 16]} justify="space-around"> <Row gutter={[16, 16]} justify="space-around">
@@ -132,7 +133,12 @@ export default function HardwareInfo() {
</Col> </Col>
</Row> </Row>
<Chart title={`% ${t('used')}`} dataCollections={series} color="#FF7700" unit="%" /> <Chart
title={`% ${t(Localization.Admin.HardwareInfo.used)}`}
dataCollections={series}
color="#FF7700"
unit="%"
/>
</div> </div>
</> </>
); );
+31 -30
View File
@@ -6,6 +6,7 @@ import React, { ReactElement } from 'react';
import dynamic from 'next/dynamic'; import dynamic from 'next/dynamic';
import { useTranslation } from 'next-export-i18n'; import { useTranslation } from 'next-export-i18n';
import { Localization } from '../../types/localization';
import { AdminLayout } from '../../components/layouts/AdminLayout'; import { AdminLayout } from '../../components/layouts/AdminLayout';
// Lazy loaded components // Lazy loaded components
@@ -56,7 +57,7 @@ export default function Help() {
const questions = [ const questions = [
{ {
icon: <SettingTwoTone style={{ fontSize: '24px' }} />, icon: <SettingTwoTone style={{ fontSize: '24px' }} />,
title: t('I want to configure my owncast instance'), title: t(Localization.Admin.Help.configureInstance),
content: ( content: (
<div> <div>
<a <a
@@ -64,14 +65,14 @@ export default function Help() {
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
<LinkOutlined /> {t('Learn more')} <LinkOutlined /> {t(Localization.Admin.Help.learnMore)}
</a> </a>
</div> </div>
), ),
}, },
{ {
icon: <CameraTwoTone style={{ fontSize: '24px' }} />, icon: <CameraTwoTone style={{ fontSize: '24px' }} />,
title: t('Help configuring my broadcasting software'), title: t(Localization.Admin.Help.configureBroadcasting),
content: ( content: (
<div> <div>
<a <a
@@ -79,14 +80,14 @@ export default function Help() {
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
<LinkOutlined /> {t('Learn more')} <LinkOutlined /> {t(Localization.Admin.Help.learnMore)}
</a> </a>
</div> </div>
), ),
}, },
{ {
icon: <Html5TwoTone style={{ fontSize: '24px' }} />, icon: <Html5TwoTone style={{ fontSize: '24px' }} />,
title: t('I want to embed my stream into another site'), title: t(Localization.Admin.Help.embedStream),
content: ( content: (
<div> <div>
<a <a
@@ -94,14 +95,14 @@ export default function Help() {
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
<LinkOutlined /> {t('Learn more')} <LinkOutlined /> {t(Localization.Admin.Help.learnMore)}
</a> </a>
</div> </div>
), ),
}, },
{ {
icon: <EditTwoTone style={{ fontSize: '24px' }} />, icon: <EditTwoTone style={{ fontSize: '24px' }} />,
title: t('I want to customize my website'), title: t(Localization.Admin.Help.customizeWebsite),
content: ( content: (
<div> <div>
<a <a
@@ -109,14 +110,14 @@ export default function Help() {
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
<LinkOutlined /> {t('Learn more')} <LinkOutlined /> {t(Localization.Admin.Help.learnMore)}
</a> </a>
</div> </div>
), ),
}, },
{ {
icon: <SlidersTwoTone style={{ fontSize: '24px' }} />, icon: <SlidersTwoTone style={{ fontSize: '24px' }} />,
title: t('I want to tweak my video output'), title: t(Localization.Admin.Help.tweakVideo),
content: ( content: (
<div> <div>
<a <a
@@ -124,14 +125,14 @@ export default function Help() {
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
<LinkOutlined /> {t('Learn more')} <LinkOutlined /> {t(Localization.Admin.Help.learnMore)}
</a> </a>
</div> </div>
), ),
}, },
{ {
icon: <DatabaseTwoTone style={{ fontSize: '24px' }} />, icon: <DatabaseTwoTone style={{ fontSize: '24px' }} />,
title: t('I want to use an external storage provider'), title: t(Localization.Admin.Help.useStorage),
content: ( content: (
<div> <div>
<a <a
@@ -139,7 +140,7 @@ export default function Help() {
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
<LinkOutlined /> {t('Learn more')} <LinkOutlined /> {t(Localization.Admin.Help.learnMore)}
</a> </a>
</div> </div>
), ),
@@ -149,58 +150,58 @@ export default function Help() {
const otherResources = [ const otherResources = [
{ {
icon: <BugTwoTone style={{ fontSize: '24px' }} />, icon: <BugTwoTone style={{ fontSize: '24px' }} />,
title: t('I found a bug'), title: t(Localization.Admin.Help.foundBug),
content: ( content: (
<div> <div>
{t('If you found a bug, then please')} {t(Localization.Admin.Help.bugPlease)}
<a <a
href="https://github.com/owncast/owncast/issues/new/choose" href="https://github.com/owncast/owncast/issues/new/choose"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
{' '} {' '}
{t('let us know')} {t(Localization.Admin.Help.letUsKnow)}
</a> </a>
</div> </div>
), ),
}, },
{ {
icon: <QuestionCircleTwoTone style={{ fontSize: '24px' }} />, icon: <QuestionCircleTwoTone style={{ fontSize: '24px' }} />,
title: t('I have a general question'), title: t(Localization.Admin.Help.generalQuestion),
content: ( content: (
<div> <div>
{t('Most general questions are answered in our')} {t(Localization.Admin.Help.generalAnswered)}
<a <a
href="https://owncast.online/faq/?source=admin" href="https://owncast.online/faq/?source=admin"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
{' '} {' '}
{t('FAQ')} {t(Localization.Admin.Help.faq)}
</a>{' '} </a>{' '}
{t('or exist in our')}{' '} {t(Localization.Admin.Help.orExist)}{' '}
<a <a
href="https://github.com/owncast/owncast/discussions" href="https://github.com/owncast/owncast/discussions"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
{t('discussions')} {t(Localization.Admin.Help.discussions)}
</a> </a>
</div> </div>
), ),
}, },
{ {
icon: <ApiTwoTone style={{ fontSize: '24px' }} />, icon: <ApiTwoTone style={{ fontSize: '24px' }} />,
title: t('I want to build add-ons for Owncast'), title: t(Localization.Admin.Help.buildAddons),
content: ( content: (
<div> <div>
{t('You can build your own bots, overlays, tools and add-ons with our')} {t(Localization.Admin.Help.buildTools)}
<a <a
href="https://owncast.online/thirdparty?source=admin" href="https://owncast.online/thirdparty?source=admin"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
&nbsp;{t('developer APIs.')}&nbsp; &nbsp;{t(Localization.Admin.Help.developerApis)}&nbsp;
</a> </a>
</div> </div>
), ),
@@ -209,11 +210,11 @@ export default function Help() {
return ( return (
<div className="help-page"> <div className="help-page">
<Title style={{ textAlign: 'center' }}>{t('How can we help you?')}</Title> <Title style={{ textAlign: 'center' }}>{t(Localization.Admin.Help.title)}</Title>
<Row gutter={[16, 16]} justify="space-around" align="middle"> <Row gutter={[16, 16]} justify="space-around" align="middle">
<Col xs={24} lg={12} style={{ textAlign: 'center' }}> <Col xs={24} lg={12} style={{ textAlign: 'center' }}>
<Result status="500" /> <Result status="500" />
<Title level={2}>{t('Troubleshooting')}</Title> <Title level={2}>{t(Localization.Admin.Help.troubleshooting)}</Title>
<Button <Button
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
@@ -221,12 +222,12 @@ export default function Help() {
icon={<LinkOutlined />} icon={<LinkOutlined />}
type="primary" type="primary"
> >
{t('Fix your problems')} {t(Localization.Admin.Help.fixProblems)}
</Button> </Button>
</Col> </Col>
<Col xs={24} lg={12} style={{ textAlign: 'center' }}> <Col xs={24} lg={12} style={{ textAlign: 'center' }}>
<Result status="404" /> <Result status="404" />
<Title level={2}>{t('Documentation')}</Title> <Title level={2}>{t(Localization.Admin.Help.documentation)}</Title>
<Button <Button
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
@@ -234,12 +235,12 @@ export default function Help() {
icon={<LinkOutlined />} icon={<LinkOutlined />}
type="primary" type="primary"
> >
{t('Read the Docs')} {t(Localization.Admin.Help.readDocs)}
</Button> </Button>
</Col> </Col>
</Row> </Row>
<Divider /> <Divider />
<Title level={2}>{t('Common tasks')}</Title> <Title level={2}>{t(Localization.Admin.Help.commonTasks)}</Title>
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
{questions.map(question => ( {questions.map(question => (
<Col xs={24} lg={12} key={question.title}> <Col xs={24} lg={12} key={question.title}>
@@ -250,7 +251,7 @@ export default function Help() {
))} ))}
</Row> </Row>
<Divider /> <Divider />
<Title level={2}>{t('Other')}</Title> <Title level={2}>{t(Localization.Admin.Help.other)}</Title>
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
{otherResources.map(question => ( {otherResources.map(question => (
<Col xs={24} lg={12} key={question.title}> <Col xs={24} lg={12} key={question.title}>
+19 -14
View File
@@ -12,6 +12,7 @@ import { ServerStatusContext } from '../../utils/server-status-context';
import { VIEWERS_OVER_TIME, ACTIVE_VIEWER_DETAILS, fetchData } from '../../utils/apis'; import { VIEWERS_OVER_TIME, ACTIVE_VIEWER_DETAILS, fetchData } from '../../utils/apis';
import { AdminLayout } from '../../components/layouts/AdminLayout'; import { AdminLayout } from '../../components/layouts/AdminLayout';
import { Localization } from '../../types/localization';
// Lazy loaded components // Lazy loaded components
@@ -36,13 +37,13 @@ export default function ViewersOverTime() {
} }
const times = [ const times = [
{ title: t('Current stream'), start: streamStart }, { title: t(Localization.Admin.ViewerInfo.currentStream), start: streamStart },
{ title: t('Last 12 hours'), start: sub(new Date(), { hours: 12 }) }, { title: t(Localization.Admin.ViewerInfo.last12Hours), start: sub(new Date(), { hours: 12 }) },
{ title: t('Last 24 hours'), start: sub(new Date(), { hours: 24 }) }, { title: t(Localization.Admin.ViewerInfo.last24Hours), start: sub(new Date(), { hours: 24 }) },
{ title: t('Last 7 days'), start: sub(new Date(), { days: 7 }) }, { title: t(Localization.Admin.ViewerInfo.last7Days), start: sub(new Date(), { days: 7 }) },
{ title: t('Last 30 days'), start: sub(new Date(), { days: 30 }) }, { title: t(Localization.Admin.ViewerInfo.last30Days), start: sub(new Date(), { days: 30 }) },
{ title: t('Last 3 months'), start: sub(new Date(), { months: 3 }) }, { title: t(Localization.Admin.ViewerInfo.last3Months), start: sub(new Date(), { months: 3 }) },
{ title: t('Last 6 months'), start: sub(new Date(), { months: 6 }) }, { title: t(Localization.Admin.ViewerInfo.last6Months), start: sub(new Date(), { months: 6 }) },
]; ];
const [loadingChart, setLoadingChart] = useState(true); const [loadingChart, setLoadingChart] = useState(true);
@@ -96,13 +97,13 @@ export default function ViewersOverTime() {
return ( return (
<> <>
<Typography.Title>{t('Viewer Info')}</Typography.Title> <Typography.Title>{t(Localization.Admin.ViewerInfo.title)}</Typography.Title>
<br /> <br />
<Row gutter={[16, 16]} justify="space-around"> <Row gutter={[16, 16]} justify="space-around">
{online && ( {online && (
<Col span={8} md={8}> <Col span={8} md={8}>
<StatisticItem <StatisticItem
title={t('Current viewers')} title={t(Localization.Admin.ViewerInfo.currentViewers)}
value={viewerCount.toString()} value={viewerCount.toString()}
prefix={<UserOutlined />} prefix={<UserOutlined />}
/> />
@@ -110,14 +111,18 @@ export default function ViewersOverTime() {
)} )}
<Col md={online ? 8 : 12}> <Col md={online ? 8 : 12}>
<StatisticItem <StatisticItem
title={online ? t('Max viewers this stream') : t('Max viewers last stream')} title={
online
? t(Localization.Admin.ViewerInfo.maxViewersThisStream)
: t(Localization.Admin.ViewerInfo.maxViewersLastStream)
}
value={sessionPeakViewerCount.toString()} value={sessionPeakViewerCount.toString()}
prefix={<UserOutlined />} prefix={<UserOutlined />}
/> />
</Col> </Col>
<Col md={online ? 8 : 12}> <Col md={online ? 8 : 12}>
<StatisticItem <StatisticItem
title={t('max viewers')} title={t(Localization.Admin.ViewerInfo.maxViewers)}
value={overallPeakViewerCount.toString()} value={overallPeakViewerCount.toString()}
prefix={<UserOutlined />} prefix={<UserOutlined />}
/> />
@@ -127,8 +132,8 @@ export default function ViewersOverTime() {
<Alert <Alert
style={{ marginTop: '10px' }} style={{ marginTop: '10px' }}
banner banner
message={t('Please wait')} message={t(Localization.Admin.ViewerInfo.pleaseWait)}
description={t('No viewer data has been collected yet.')} description={t(Localization.Admin.ViewerInfo.noData)}
type="info" type="info"
/> />
)} )}
@@ -136,7 +141,7 @@ export default function ViewersOverTime() {
<Spin spinning={!viewerInfo.length || loadingChart}> <Spin spinning={!viewerInfo.length || loadingChart}>
{viewerInfo.length > 0 && ( {viewerInfo.length > 0 && (
<Chart <Chart
title={t('Viewers')} title={t(Localization.Admin.ViewerInfo.viewers)}
data={viewerInfo} data={viewerInfo}
color="#2087E2" color="#2087E2"
unit="viewers" unit="viewers"
+60 -2
View File
@@ -38,7 +38,14 @@ function sortObjectKeys(obj) {
function scanTranslationKeys() { function scanTranslationKeys() {
const files = glob.sync('**/*.{ts,tsx,js,jsx}', { const files = glob.sync('**/*.{ts,tsx,js,jsx}', {
ignore: ['node_modules/**', '.next/**', 'out/**'], ignore: [
'node_modules/**',
'.next/**',
'out/**',
'storybook-static/**',
'coverage/**',
'.storybook/**',
],
}); });
const results = {}; const results = {};
@@ -101,6 +108,57 @@ function scanTranslationKeys() {
defaultText || `<strong><em>Missing translation ${key}: Please report</em></strong>`; defaultText || `<strong><em>Missing translation ${key}: Please report</em></strong>`;
} }
}, },
CallExpression(p) {
const { node } = p;
// Check if this is a call to t() function
if (node.callee.type !== 'Identifier' || node.callee.name !== 't') return;
// Check if the first argument is a Localization key
if (node.arguments.length === 0) return;
const firstArg = node.arguments[0];
let key = null;
// Handle t(Localization.Frontend.NameChangeModal.placeholder)
if (firstArg.type === 'MemberExpression') {
const dotPath = getDotPath(firstArg);
if (dotPath) {
key = dotPath;
}
}
// Handle t("some.string.key") - but only if it looks like a translation key
else if (firstArg.type === 'StringLiteral') {
const { value } = firstArg;
// Only include string literals that follow our translation key pattern:
// - Must have dots for hierarchy (e.g., Frontend.Component.key)
// - Must start with a capital letter (namespace convention)
// - Must not contain spaces (translation keys shouldn't have spaces)
// - Must not be common JS patterns like prototype methods
if (
value.includes('.') &&
/^[A-Z][a-zA-Z0-9]*\./.test(value) &&
!value.includes(' ') &&
!value.includes('prototype') &&
!value.includes('()') &&
value.split('.').length >= 2 &&
value.split('.').length <= 5
) {
// Reasonable depth for translation keys
key = value;
}
}
if (key) {
// For t() calls, we don't have defaultText, so use the fallback
if (!results[key]) {
console.log(`[i18n] Found t() call with key: ${key} in ${file}`);
}
results[key] =
results[key] || `<strong><em>Missing translation ${key}: Please report</em></strong>`;
}
},
}); });
} }
@@ -164,7 +222,7 @@ function updateTranslationFile(flatTranslations) {
if (changed) { if (changed) {
const merged = sortObjectKeys(mergeDeep(existing, newNestedTranslations)); const merged = sortObjectKeys(mergeDeep(existing, newNestedTranslations));
fs.writeFileSync(TRANSLATIONS_PATH, JSON.stringify(merged, null, 2)); fs.writeFileSync(TRANSLATIONS_PATH, JSON.stringify(merged, null, '\t'));
console.log(`[i18n] Updated ${TRANSLATIONS_PATH}`); console.log(`[i18n] Updated ${TRANSLATIONS_PATH}`);
} else { } else {
console.log('[i18n] No new keys to add.'); console.log('[i18n] No new keys to add.');
+2 -2
View File
@@ -60,9 +60,9 @@ export const ComplexHTMLTranslation: Story = {
}, },
}; };
export const NotificationMessage: Story = { export const ComplexHTMLMessage: Story = {
args: { args: {
translationKey: Localization.Frontend.notificationMessage, translationKey: Localization.Frontend.offlineNotifyOnly,
vars: { vars: {
streamer: 'MyAwesomeStream', streamer: 'MyAwesomeStream',
}, },
+1 -1
View File
@@ -110,7 +110,7 @@ body {
a { a {
color: var(--theme-color-action); color: var(--theme-color-action);
word-break: break-word; overflow-wrap: break-word;
&:hover { &:hover {
color: var(--theme-color-action-hover); color: var(--theme-color-action-hover);
+660
View File
@@ -0,0 +1,660 @@
import fs from 'fs';
import path from 'path';
import { Localization } from '../types/localization';
/**
* Comprehensive localization test suite to verify that translation keys exist
* across multiple languages and that the localization system is working correctly.
*/
describe('Localization Keys Cross-Language Validation', () => {
const i18nDir = path.join(__dirname, '../i18n');
// Get all available language directories
const getAvailableLanguages = (): string[] =>
fs.readdirSync(i18nDir).filter(item => {
const itemPath = path.join(i18nDir, item);
return fs.statSync(itemPath).isDirectory() && item !== 'en'; // Exclude English as it's our reference
});
// Load translation file for a specific language
const loadTranslationFile = (language: string): Record<string, any> => {
try {
const translationPath = path.join(i18nDir, language, 'translation.json');
const content = fs.readFileSync(translationPath, 'utf-8');
return JSON.parse(content);
} catch {
return {};
}
};
// Helper function to get nested value from object using dot notation
const getNestedValue = (obj: Record<string, any>, key: string): any =>
key
.split('.')
.reduce(
(current, prop) => (current && current[prop] !== undefined ? current[prop] : undefined),
obj,
);
// Helper function to check if a key exists in a translation object
const keyExists = (translations: Record<string, any>, key: string): boolean =>
getNestedValue(translations, key) !== undefined;
// Load English translations as reference
const englishTranslations = loadTranslationFile('en');
const availableLanguages = getAvailableLanguages();
describe('Core Frontend Component Keys', () => {
const testKeys = [
// NameChangeModal keys
{
key: Localization.Frontend.NameChangeModal.description,
name: 'NameChangeModal.description',
},
{
key: Localization.Frontend.NameChangeModal.placeholder,
name: 'NameChangeModal.placeholder',
},
{ key: Localization.Frontend.NameChangeModal.buttonText, name: 'NameChangeModal.buttonText' },
{ key: Localization.Frontend.NameChangeModal.colorLabel, name: 'NameChangeModal.colorLabel' },
{ key: Localization.Frontend.NameChangeModal.authInfo, name: 'NameChangeModal.authInfo' },
{ key: Localization.Frontend.NameChangeModal.overLimit, name: 'NameChangeModal.overLimit' },
// Header component keys
{
key: Localization.Frontend.Header.skipToPlayer,
name: 'Header.skipToPlayer',
},
{
key: Localization.Frontend.Header.skipToOfflineMessage,
name: 'Header.skipToOfflineMessage',
},
{
key: Localization.Frontend.Header.skipToContent,
name: 'Header.skipToContent',
},
{
key: Localization.Frontend.Header.skipToFooter,
name: 'Header.skipToFooter',
},
{
key: Localization.Frontend.Header.chatWillBeAvailable,
name: 'Header.chatWillBeAvailable',
},
{
key: Localization.Frontend.Header.chatOffline,
name: 'Header.chatOffline',
},
// Footer component keys
{
key: Localization.Frontend.Footer.documentation,
name: 'Footer.documentation',
},
{
key: Localization.Frontend.Footer.contribute,
name: 'Footer.contribute',
},
{
key: Localization.Frontend.Footer.source,
name: 'Footer.source',
},
// BrowserNotifyModal keys (sample)
{
key: Localization.Frontend.BrowserNotifyModal.unsupported,
name: 'BrowserNotifyModal.unsupported',
},
{
key: Localization.Frontend.BrowserNotifyModal.allowButton,
name: 'BrowserNotifyModal.allowButton',
},
{
key: Localization.Frontend.BrowserNotifyModal.enabledTitle,
name: 'BrowserNotifyModal.enabledTitle',
},
{
key: Localization.Frontend.BrowserNotifyModal.mainDescription,
name: 'BrowserNotifyModal.mainDescription',
},
// Offline messages
{ key: Localization.Frontend.offlineBasic, name: 'Frontend.offlineBasic' },
{ key: Localization.Frontend.offlineNotifyOnly, name: 'Frontend.offlineNotifyOnly' },
// Error handling
{ key: Localization.Frontend.componentError, name: 'Frontend.componentError' },
];
test('should verify all test keys exist in English translation file', () => {
testKeys.forEach(({ key }) => {
const value = getNestedValue(englishTranslations, key);
expect(keyExists(englishTranslations, key)).toBe(true);
expect(value).toBeDefined();
expect(typeof value).toBe('string');
});
});
testKeys.forEach(({ key, name }) => {
test(`should verify "${name}" exists across all available languages`, () => {
const missingLanguages: string[] = [];
const emptyTranslationLanguages: string[] = [];
availableLanguages.forEach(language => {
const translations = loadTranslationFile(language);
if (!keyExists(translations, key)) {
missingLanguages.push(language);
} else {
const value = getNestedValue(translations, key);
if (!value || value.trim() === '') {
emptyTranslationLanguages.push(language);
}
}
});
// Log warnings for missing translations but don't fail the test
if (missingLanguages.length > 0) {
console.warn(`⚠️ Key "${key}" is missing in languages: ${missingLanguages.join(', ')}`);
}
if (emptyTranslationLanguages.length > 0) {
console.warn(
`⚠️ Key "${key}" has empty translations in languages: ${emptyTranslationLanguages.join(', ')}`,
);
}
// At minimum, ensure the key exists in English
expect(keyExists(englishTranslations, key)).toBe(true);
});
});
});
describe('Admin Component Keys', () => {
const adminTestKeys = [
// EditInstanceDetails
{
key: Localization.Admin.EditInstanceDetails.offlineMessageDescription,
name: 'Admin.EditInstanceDetails.offlineMessageDescription',
},
{
key: Localization.Admin.EditInstanceDetails.directoryDescription,
name: 'Admin.EditInstanceDetails.directoryDescription',
},
{
key: Localization.Admin.EditInstanceDetails.serverUrlRequiredForDirectory,
name: 'Admin.EditInstanceDetails.serverUrlRequiredForDirectory',
},
// HardwareInfo
{
key: Localization.Admin.HardwareInfo.title,
name: 'Admin.HardwareInfo.title',
},
{
key: Localization.Admin.HardwareInfo.pleaseWait,
name: 'Admin.HardwareInfo.pleaseWait',
},
{
key: Localization.Admin.HardwareInfo.noDetails,
name: 'Admin.HardwareInfo.noDetails',
},
{
key: Localization.Admin.HardwareInfo.cpu,
name: 'Admin.HardwareInfo.cpu',
},
{
key: Localization.Admin.HardwareInfo.memory,
name: 'Admin.HardwareInfo.memory',
},
{
key: Localization.Admin.HardwareInfo.disk,
name: 'Admin.HardwareInfo.disk',
},
{
key: Localization.Admin.HardwareInfo.used,
name: 'Admin.HardwareInfo.used',
},
// Help page keys
{
key: Localization.Admin.Help.title,
name: 'Admin.Help.title',
},
{
key: Localization.Admin.Help.configureInstance,
name: 'Admin.Help.configureInstance',
},
{
key: Localization.Admin.Help.learnMore,
name: 'Admin.Help.learnMore',
},
{
key: Localization.Admin.Help.configureBroadcasting,
name: 'Admin.Help.configureBroadcasting',
},
{
key: Localization.Admin.Help.troubleshooting,
name: 'Admin.Help.troubleshooting',
},
{
key: Localization.Admin.Help.documentation,
name: 'Admin.Help.documentation',
},
{
key: Localization.Admin.Help.commonTasks,
name: 'Admin.Help.commonTasks',
},
// LogTable keys
{
key: Localization.Admin.LogTable.level,
name: 'Admin.LogTable.level',
},
{
key: Localization.Admin.LogTable.info,
name: 'Admin.LogTable.info',
},
{
key: Localization.Admin.LogTable.warning,
name: 'Admin.LogTable.warning',
},
{
key: Localization.Admin.LogTable.error,
name: 'Admin.LogTable.error',
},
{
key: Localization.Admin.LogTable.timestamp,
name: 'Admin.LogTable.timestamp',
},
{
key: Localization.Admin.LogTable.message,
name: 'Admin.LogTable.message',
},
{
key: Localization.Admin.LogTable.logs,
name: 'Admin.LogTable.logs',
},
// NewsFeed keys
{
key: Localization.Admin.NewsFeed.link,
name: 'Admin.NewsFeed.link',
},
{
key: Localization.Admin.NewsFeed.noNews,
name: 'Admin.NewsFeed.noNews',
},
{
key: Localization.Admin.NewsFeed.title,
name: 'Admin.NewsFeed.title',
},
// ViewerInfo keys
{
key: Localization.Admin.ViewerInfo.title,
name: 'Admin.ViewerInfo.title',
},
{
key: Localization.Admin.ViewerInfo.currentStream,
name: 'Admin.ViewerInfo.currentStream',
},
{
key: Localization.Admin.ViewerInfo.last12Hours,
name: 'Admin.ViewerInfo.last12Hours',
},
{
key: Localization.Admin.ViewerInfo.last24Hours,
name: 'Admin.ViewerInfo.last24Hours',
},
{
key: Localization.Admin.ViewerInfo.currentViewers,
name: 'Admin.ViewerInfo.currentViewers',
},
{
key: Localization.Admin.ViewerInfo.maxViewersThisStream,
name: 'Admin.ViewerInfo.maxViewersThisStream',
},
{
key: Localization.Admin.ViewerInfo.viewers,
name: 'Admin.ViewerInfo.viewers',
},
];
adminTestKeys.forEach(({ key, name }) => {
test(`should verify admin key "${name}" has appropriate translation structure`, () => {
const englishValue = getNestedValue(englishTranslations, key);
// Admin keys might have missing translation indicators
expect(englishValue).toBeDefined();
expect(typeof englishValue).toBe('string');
// Check if it's a missing translation placeholder
if (englishValue.includes('Missing translation')) {
// console.warn(
// `⚠️ Admin key "${key}" appears to have missing translation in English: ${englishValue}`,
// );
}
});
});
test('should identify missing admin keys in localization.ts vs translation files', () => {
const missingAdminKeys = [
{ key: Localization.Admin.emojis, name: 'Admin.emojis' },
{ key: Localization.Admin.settings, name: 'Admin.settings' },
{
key: Localization.Admin.Chat.moderationMessagesSent,
name: 'Admin.Chat.moderationMessagesSent',
},
];
missingAdminKeys.forEach(({ key, name }) => {
const englishValue = getNestedValue(englishTranslations, key);
if (!englishValue) {
console.warn(
`⚠️ Admin key "${name}" (${key}) is not present in translation files - consider adding it or removing from localization.ts`,
);
} else if (englishValue.includes('Missing translation')) {
console.warn(
`⚠️ Admin key "${name}" (${key}) has placeholder translation: ${englishValue}`,
);
}
});
// This test always passes but generates useful warnings
expect(true).toBe(true);
});
});
describe('Common Keys', () => {
const commonTestKeys = [
{ key: Localization.Common.poweredByOwncastVersion, name: 'Common.poweredByOwncastVersion' },
];
commonTestKeys.forEach(({ key, name }) => {
test(`should verify common key "${name}" exists in English`, () => {
expect(keyExists(englishTranslations, key)).toBe(true);
const value = getNestedValue(englishTranslations, key);
expect(value).toBeDefined();
expect(typeof value).toBe('string');
});
});
test('should identify missing common keys in localization.ts vs translation files', () => {
// All Common keys are now properly used and extracted automatically
// Only poweredByOwncastVersion remains as it's actually used in Footer.tsx
const englishValue = getNestedValue(
englishTranslations,
Localization.Common.poweredByOwncastVersion,
);
expect(englishValue).toBeDefined();
expect(typeof englishValue).toBe('string');
// console.log(`✓ Common key "poweredByOwncastVersion" found: "${englishValue}"`);
});
});
describe('Legacy Frontend Keys (Direct String Values)', () => {
// These are keys that still use the old direct translation string approach
const legacyKeys = [
{
key: Localization.Frontend.chatDisabled,
name: 'chatDisabled',
expectedValue: 'Chat is disabled',
},
{
key: Localization.Frontend.currentViewers,
name: 'currentViewers',
expectedValue: 'Current viewers',
},
{ key: Localization.Frontend.connected, name: 'connected', expectedValue: 'Connected' },
{
key: Localization.Frontend.healthyStream,
name: 'healthyStream',
expectedValue: 'Healthy Stream',
},
{
key: Localization.Frontend.lastLiveAgo,
name: 'lastLiveAgo',
expectedValue: 'Last live {{timeAgo}} ago',
},
{
key: Localization.Frontend.maxViewers,
name: 'maxViewers',
expectedValue: 'Max viewers this stream',
},
];
legacyKeys.forEach(({ key, name, expectedValue }) => {
test(`should verify legacy frontend key "${name}" uses direct string value`, () => {
// These keys use direct string values instead of namespace keys
expect(key).toBe(expectedValue);
// But we should also verify they exist in the translation file for some languages
const value = getNestedValue(englishTranslations, key);
if (value) {
expect(typeof value).toBe('string');
}
});
});
});
describe('Localization Summary Report', () => {
test('should provide a concise summary of localization status', () => {
const criticalIssues: string[] = [];
const warnings: string[] = [];
// Check NameChangeModal keys (new feature)
const nameChangeKeys = [
Localization.Frontend.NameChangeModal.description,
Localization.Frontend.NameChangeModal.placeholder,
Localization.Frontend.NameChangeModal.buttonText,
];
const criticalLanguages = ['de', 'es', 'fr', 'it', 'ja', 'ru', 'zh'];
let missingCriticalTranslations = 0;
nameChangeKeys.forEach(key => {
criticalLanguages.forEach(lang => {
const langTranslations = loadTranslationFile(lang);
if (!keyExists(langTranslations, key)) {
missingCriticalTranslations++;
}
});
});
if (missingCriticalTranslations > 0) {
warnings.push(
`NameChangeModal needs translations in ${Math.floor(missingCriticalTranslations / nameChangeKeys.length)} major languages`,
);
}
// Check for keys that shouldn't be in localization.ts
const problematicKeys = [Localization.Admin.settings];
problematicKeys.forEach(key => {
if (!getNestedValue(englishTranslations, key)) {
criticalIssues.push(
`Key "${key}" exists in localization.ts but not in translation files`,
);
}
});
// Print summary
// console.log('\n🔍 Localization Status Summary:');
if (criticalIssues.length === 0 && warnings.length === 0) {
console.log('✅ All critical localization keys are properly configured');
} else {
if (criticalIssues.length > 0) {
console.log('❌ Critical Issues:');
criticalIssues.forEach(issue => console.log(` - ${issue}`));
}
if (warnings.length > 0) {
console.log('⚠️ Warnings:');
warnings.forEach(warning => console.log(` - ${warning}`));
}
}
// console.log(`📊 Languages supported: ${availableLanguages.length + 1} (including English)`);
// console.log('💡 Run with LOCALIZATION_VERBOSE=true for detailed warnings\n');
// Test always passes - this is just informational
expect(true).toBe(true);
});
});
describe('Language Coverage Report', () => {
test('should generate language coverage report for key components', () => {
const reportKeys = [
Localization.Frontend.NameChangeModal.placeholder,
Localization.Frontend.BrowserNotifyModal.allowButton,
Localization.Frontend.offlineBasic,
Localization.Common.poweredByOwncastVersion,
];
const report: Record<string, { total: number; missing: number; coverage: string }> = {};
availableLanguages.forEach(language => {
const translations = loadTranslationFile(language);
const missing = reportKeys.filter(key => !keyExists(translations, key)).length;
const total = reportKeys.length;
const coverage = (((total - missing) / total) * 100).toFixed(1);
report[language] = {
total,
missing,
coverage: `${coverage}%`,
};
});
// console.log('\n📊 Translation Coverage Report for Key Components:');
// console.log('Language\tCoverage\tMissing Keys');
// console.log('--------\t--------\t------------');
// Object.entries(report)
// .sort((a, b) => parseFloat(b[1].coverage) - parseFloat(a[1].coverage))
// .forEach(([lang, stats]) => {
// console.log(`${lang}\t\t${stats.coverage}\t\t${stats.missing}/${stats.total}`);
// });
// Test passes if we have the report data
expect(Object.keys(report).length).toBeGreaterThan(0);
});
});
describe('Translation File Structure Validation', () => {
test('should verify all language directories have translation.json files', () => {
availableLanguages.forEach(language => {
const translationPath = path.join(i18nDir, language, 'translation.json');
expect(fs.existsSync(translationPath)).toBe(true);
// Verify the file can be parsed as JSON
expect(() => {
const content = fs.readFileSync(translationPath, 'utf-8');
JSON.parse(content);
}).not.toThrow();
});
});
test('should verify English translation file has expected structure', () => {
expect(englishTranslations).toBeDefined();
expect(typeof englishTranslations).toBe('object');
// Check for expected top-level sections
expect(englishTranslations.Frontend).toBeDefined();
expect(englishTranslations.Common).toBeDefined();
// Check for specific component sections
expect(englishTranslations.Frontend.NameChangeModal).toBeDefined();
expect(englishTranslations.Frontend.BrowserNotifyModal).toBeDefined();
});
});
describe('Localization System Integration Test', () => {
test('should verify the translation hook works with our localization keys', () => {
// This test verifies that the actual translation system can resolve our keys
// We'll use a sample of our keys to test the integration
const testKeys = [
Localization.Frontend.NameChangeModal.placeholder,
Localization.Frontend.BrowserNotifyModal.allowButton,
Localization.Common.poweredByOwncastVersion,
];
testKeys.forEach(key => {
const value = getNestedValue(englishTranslations, key);
expect(value).toBeDefined();
expect(typeof value).toBe('string');
expect(value.length).toBeGreaterThan(0);
});
});
test('should verify interpolation variables are correctly structured', () => {
// Test keys that should have interpolation variables
const interpolationTests = [
{
key: Localization.Frontend.componentError,
expectedVars: ['message'],
description: 'Component error message should interpolate {{message}}',
},
{
key: Localization.Common.poweredByOwncastVersion,
expectedVars: ['versionNumber'],
description: 'Powered by Owncast should interpolate {{versionNumber}}',
},
{
key: Localization.Frontend.offlineNotifyOnly,
expectedVars: ['streamer'],
description: 'Offline notify message should interpolate {{streamer}}',
},
];
interpolationTests.forEach(({ key, expectedVars }) => {
const value = getNestedValue(englishTranslations, key);
expect(value).toBeDefined();
expectedVars.forEach(varName => {
const hasVariable = value.includes(`{{${varName}}}`);
expect(hasVariable).toBe(true);
});
});
});
});
describe('Localization.ts Type Safety', () => {
test('should verify localization keys match expected patterns', () => {
// Test that nested component keys follow the namespace pattern
expect(Localization.Frontend.NameChangeModal.placeholder).toMatch(
/^Frontend\.NameChangeModal\./,
);
expect(Localization.Frontend.BrowserNotifyModal.allowButton).toMatch(
/^Frontend\.BrowserNotifyModal\./,
);
expect(Localization.Admin.Chat.moderationMessagesSent).toMatch(/^Admin\.Chat\./);
expect(Localization.Common.poweredByOwncastVersion).toMatch(/^Common\./);
// Test that basic frontend keys are direct translation strings
expect(typeof Localization.Frontend.chatOffline).toBe('string');
expect(typeof Localization.Frontend.currentViewers).toBe('string');
expect(typeof Localization.Frontend.connected).toBe('string');
});
test('should verify all localization keys are strings', () => {
const validateKeys = (obj: any, keyPath = ''): void => {
Object.entries(obj).forEach(([key, value]) => {
const currentPath = keyPath ? `${keyPath}.${key}` : key;
if (typeof value === 'object' && value !== null) {
validateKeys(value, currentPath);
} else {
expect(typeof value).toBe('string');
expect(value).toBeTruthy(); // Ensure no empty strings
}
});
};
validateKeys(Localization);
});
});
});
+28 -30
View File
@@ -7,43 +7,41 @@ import { Localization } from '../types/localization';
jest.mock('next-export-i18n', () => ({ jest.mock('next-export-i18n', () => ({
useTranslation: () => ({ useTranslation: () => ({
t: (key: string, vars?: Record<string, any>) => { t: (key: string, vars?: Record<string, any>) => {
// Use the actual keys as in localization.ts and translation.json // Simulate the actual translation structure from the JSON files
const translations: Record<string, string> = { const translations: Record<string, any> = {
// Frontend translations
'Frontend.helloWorld': 'Hello <strong>{{name}}</strong>, welcome to the world!',
'Frontend.componentError': 'Error: {{message}}',
'Frontend.offlineBasic': 'This stream is offline. Check back soon!',
'Frontend.offlineNotifyOnly':
"This stream is offline. <span class='notify-link'>Be notified</span> the next time {{streamer}} goes live.",
// Testing translations
'Testing.simpleKey': 'Simple translation text',
'Testing.itemCount': 'You have {{count}} items',
'Testing.itemCount_one': 'You have {{count}} item',
'Testing.messageCount': 'You have {{count}} messages from {{sender}}',
'Testing.messageCount_one': 'You have {{count}} message from {{sender}}',
'Testing.noPluralKey': 'This key has no plural variants - {{count}} things',
// Legacy flat keys for backwards compatibility
hello_world: 'Hello <strong>{{name}}</strong>, welcome to the world!', hello_world: 'Hello <strong>{{name}}</strong>, welcome to the world!',
chat_offline: 'Chat is offline', chat_offline: 'Chat is offline',
notification_message: notification_message:
'You can <a href="#">click here</a> to receive notifications when {{streamer}} goes live.', 'You can <a href="#">click here</a> to receive notifications when {{streamer}} goes live.',
component_error: 'Error: {{message}}', component_error: 'Error: {{message}}',
offline_basic: 'This stream is offline. Check back soon!', offline_basic: 'This stream is offline. Check back soon!',
// Testing keys
'Testing.simpleKey': 'Simple translation text',
'Testing.itemCount_one': 'You have {{count}} item',
'Testing.itemCount': 'You have {{count}} items',
'Testing.messageCount_one': 'You have {{count}} message from {{sender}}',
'Testing.messageCount': 'You have {{count}} messages from {{sender}}',
'Testing.noPluralKey': 'This key has no plural variants - {{count}} things',
}; };
let result = translations[key]; let result = translations[key];
// If not found, try to fallback to a snake_case version (for legacy or fallback) // If not found, return the key itself (as real i18n would do)
if (!result && key.includes('.')) {
const [ns, k] = key.split('.');
// Try snake_case
const snakeKey = `${ns}.${k
.replace(/([A-Z])/g, '_$1')
.toLowerCase()
.replace(/^_/, '')}`;
result = translations[snakeKey];
}
// If still not found, return the key itself
if (!result) { if (!result) {
result = key; result = key;
} }
// Simple variable replacement for testing // Simple variable replacement for testing
if (vars) { if (vars && typeof result === 'string') {
Object.keys(vars).forEach(varKey => { Object.keys(vars).forEach(varKey => {
result = result.replace(new RegExp(`{{${varKey}}}`, 'g'), vars[varKey]); result = result.replace(new RegExp(`{{${varKey}}}`, 'g'), vars[varKey]);
}); });
@@ -95,18 +93,18 @@ describe('Translation Component', () => {
expect(element).toHaveClass('custom-class'); expect(element).toHaveClass('custom-class');
}); });
test('should render notification message with HTML link', () => { test('should render notification message with HTML content', () => {
render( render(
<Translation <Translation
translationKey={Localization.Frontend.notificationMessage} translationKey={Localization.Frontend.offlineNotifyOnly}
vars={{ streamer: 'TestStreamer' }} vars={{ streamer: 'TestStreamer' }}
/>, />,
); );
// Check that the link is rendered // Check that the HTML content is rendered
const linkElement = screen.getByText('click here'); const linkElement = screen.getByText('Be notified');
expect(linkElement.tagName).toBe('A'); expect(linkElement.tagName).toBe('SPAN');
expect(linkElement).toHaveAttribute('href', '#'); expect(linkElement).toHaveClass('notify-link');
// Check that the variable is interpolated // Check that the variable is interpolated
expect(screen.getByText(/TestStreamer/)).toBeInTheDocument(); expect(screen.getByText(/TestStreamer/)).toBeInTheDocument();
@@ -115,7 +113,7 @@ describe('Translation Component', () => {
test('should render with all props combined', () => { test('should render with all props combined', () => {
render( render(
<Translation <Translation
translationKey={Localization.Frontend.notificationMessage} translationKey={Localization.Frontend.offlineNotifyOnly}
vars={{ streamer: 'TestStreamer' }} vars={{ streamer: 'TestStreamer' }}
className="notification-style" className="notification-style"
/>, />,
@@ -125,7 +123,7 @@ describe('Translation Component', () => {
const element = screen.getByText((_, e) => { const element = screen.getByText((_, e) => {
const hasText = const hasText =
e?.textContent === e?.textContent ===
'You can click here to receive notifications when TestStreamer goes live.'; 'This stream is offline. Be notified the next time TestStreamer goes live.';
const isSpan = e?.tagName === 'SPAN'; const isSpan = e?.tagName === 'SPAN';
return hasText && isSpan; return hasText && isSpan;
}); });
+149 -58
View File
@@ -14,7 +14,7 @@ export const Localization = {
chatWillBeAvailable: 'Chat will be available when the stream is live', chatWillBeAvailable: 'Chat will be available when the stream is live',
// Stream information and statistics // Stream information and statistics
lastLiveAgo: 'Last live ago', lastLiveAgo: 'Last live {{timeAgo}} ago',
currentViewers: 'Current viewers', currentViewers: 'Current viewers',
maxViewers: 'Max viewers this stream', maxViewers: 'Max viewers this stream',
noStreamActive: 'No stream is active', noStreamActive: 'No stream is active',
@@ -41,44 +41,70 @@ export const Localization = {
embedVideo: 'Embed your video onto other sites', embedVideo: 'Embed your video onto other sites',
// Complex HTML translations with variables // Complex HTML translations with variables
helloWorld: 'hello_world', helloWorld: 'Frontend.helloWorld',
notificationMessage: 'notification_message', complexMessage: 'Frontend.complexMessage',
complexMessage: 'complex_message',
// Errors // Errors
componentError: 'component_error', componentError: 'Frontend.componentError',
// Browser notifications - organized by component // Browser notifications - organized by component
BrowserNotifyModal: { BrowserNotifyModal: {
unsupported: 'browser_notify_unsupported', unsupported: 'Frontend.BrowserNotifyModal.unsupported',
unsupportedLocal: 'browser_notify_unsupported_local', unsupportedLocal: 'Frontend.BrowserNotifyModal.unsupportedLocal',
iosTitle: 'browser_notify_ios_title', iosTitle: 'Frontend.BrowserNotifyModal.iosTitle',
iosDescription: 'browser_notify_ios_description', iosDescription: 'Frontend.BrowserNotifyModal.iosDescription',
iosShareButton: 'browser_notify_ios_share_button', iosShareButton: 'Frontend.BrowserNotifyModal.iosShareButton',
iosAddToHomeScreen: 'browser_notify_ios_add_to_home_screen', iosAddToHomeScreen: 'Frontend.BrowserNotifyModal.iosAddToHomeScreen',
iosAddButton: 'browser_notify_ios_add_button', iosAddButton: 'Frontend.BrowserNotifyModal.iosAddButton',
iosNameAndTap: 'browser_notify_ios_name_and_tap', iosNameAndTap: 'Frontend.BrowserNotifyModal.iosNameAndTap',
iosComeBack: 'browser_notify_ios_come_back', iosComeBack: 'Frontend.BrowserNotifyModal.iosComeBack',
iosAllowPrompt: 'browser_notify_ios_allow_prompt', iosAllowPrompt: 'Frontend.BrowserNotifyModal.iosAllowPrompt',
permissionWantsTo: 'browser_notify_permission_wants_to', permissionWantsTo: 'Frontend.BrowserNotifyModal.permissionWantsTo',
showNotifications: 'browser_notify_show_notifications', showNotifications: 'Frontend.BrowserNotifyModal.showNotifications',
allowButton: 'browser_notify_allow_button', allowButton: 'Frontend.BrowserNotifyModal.allowButton',
blockButton: 'browser_notify_block_button', blockButton: 'Frontend.BrowserNotifyModal.blockButton',
enabledTitle: 'browser_notify_enabled_title', enabledTitle: 'Frontend.BrowserNotifyModal.enabledTitle',
enabledDescription: 'browser_notify_enabled_description', enabledDescription: 'Frontend.BrowserNotifyModal.enabledDescription',
deniedTitle: 'browser_notify_denied_title', deniedTitle: 'Frontend.BrowserNotifyModal.deniedTitle',
deniedDescription: 'browser_notify_denied_description', deniedDescription: 'Frontend.BrowserNotifyModal.deniedDescription',
mainDescription: 'browser_notify_main_description', mainDescription: 'Frontend.BrowserNotifyModal.mainDescription',
learnMore: 'browser_notify_learn_more', learnMore: 'Frontend.BrowserNotifyModal.learnMore',
errorTitle: 'browser_notify_error_title', errorTitle: 'Frontend.BrowserNotifyModal.errorTitle',
errorMessage: 'browser_notify_error_message', errorMessage: 'Frontend.BrowserNotifyModal.errorMessage',
},
// Name change modal - organized by component
NameChangeModal: {
description: 'Frontend.NameChangeModal.description',
placeholder: 'Frontend.NameChangeModal.placeholder',
buttonText: 'Frontend.NameChangeModal.buttonText',
colorLabel: 'Frontend.NameChangeModal.colorLabel',
authInfo: 'Frontend.NameChangeModal.authInfo',
overLimit: 'Frontend.NameChangeModal.overLimit',
},
// Header component
Header: {
skipToPlayer: 'Frontend.Header.skipToPlayer',
skipToOfflineMessage: 'Frontend.Header.skipToOfflineMessage',
skipToContent: 'Frontend.Header.skipToContent',
skipToFooter: 'Frontend.Header.skipToFooter',
chatWillBeAvailable: 'Frontend.Header.chatWillBeAvailable',
chatOffline: 'Frontend.Header.chatOffline',
},
// Footer component
Footer: {
documentation: 'Frontend.Footer.documentation',
contribute: 'Frontend.Footer.contribute',
source: 'Frontend.Footer.source',
}, },
// Offline banner messages // Offline banner messages
offlineBasic: 'offline_basic', offlineBasic: 'Frontend.offlineBasic',
offlineNotifyOnly: 'offline_notify_only', offlineNotifyOnly: 'Frontend.offlineNotifyOnly',
offlineFediverseOnly: 'offline_fediverse_only', offlineFediverseOnly: 'Frontend.offlineFediverseOnly',
offlineNotifyAndFediverse: 'offline_notify_and_fediverse', offlineNotifyAndFediverse: 'Frontend.offlineNotifyAndFediverse',
}, },
/** /**
@@ -86,17 +112,15 @@ export const Localization = {
*/ */
Admin: { Admin: {
// Emoji management // Emoji management
emojis: 'Emojis', emojis: 'Admin.emojis',
emojiPageDescription: emojiPageDescription: 'Admin.emojiPageDescription',
'Here you can upload new custom emojis for usage in the chat. When uploading a new emoji, the filename without extension will be used as emoji name. Additionally, emoji names are case-insensitive. For best results, ensure all emoji have unique names.', emojiUploadBulkGuide: 'Admin.emojiUploadBulkGuide',
emojiUploadBulkGuide: uploadNewEmoji: 'Admin.uploadNewEmoji',
'Want to upload custom emojis in bulk? Check out our <a href="https://owncast.online/docs/chat/emoji" rel="noopener noreferrer" target="_blank">Emoji guide</a>.', deleteEmoji: 'Admin.deleteEmoji',
uploadNewEmoji: 'Upload new emoji',
deleteEmoji: 'Delete emoji',
// Settings and configuration // Settings and configuration
settings: 'settings', settings: 'Admin.settings',
overriddenViaCommandLine: 'Overridden via command line', overriddenViaCommandLine: 'Admin.overriddenViaCommandLine',
Chat: { Chat: {
moderationMessagesSent: 'Admin.Chat.moderationMessagesSent', moderationMessagesSent: 'Admin.Chat.moderationMessagesSent',
@@ -119,32 +143,99 @@ export const Localization = {
bitrateGoodForHigh: 'Admin.VideoVariantForm.bitrateGoodForHigh', bitrateGoodForHigh: 'Admin.VideoVariantForm.bitrateGoodForHigh',
}, },
// Hardware monitoring page
HardwareInfo: {
title: 'Admin.HardwareInfo.title',
pleaseWait: 'Admin.HardwareInfo.pleaseWait',
noDetails: 'Admin.HardwareInfo.noDetails',
cpu: 'Admin.HardwareInfo.cpu',
memory: 'Admin.HardwareInfo.memory',
disk: 'Admin.HardwareInfo.disk',
used: 'Admin.HardwareInfo.used',
},
// Help page
Help: {
title: 'Admin.Help.title',
configureInstance: 'Admin.Help.configureInstance',
learnMore: 'Admin.Help.learnMore',
configureBroadcasting: 'Admin.Help.configureBroadcasting',
embedStream: 'Admin.Help.embedStream',
customizeWebsite: 'Admin.Help.customizeWebsite',
tweakVideo: 'Admin.Help.tweakVideo',
useStorage: 'Admin.Help.useStorage',
foundBug: 'Admin.Help.foundBug',
bugPlease: 'Admin.Help.bugPlease',
letUsKnow: 'Admin.Help.letUsKnow',
generalQuestion: 'Admin.Help.generalQuestion',
generalAnswered: 'Admin.Help.generalAnswered',
faq: 'Admin.Help.faq',
orExist: 'Admin.Help.orExist',
discussions: 'Admin.Help.discussions',
buildAddons: 'Admin.Help.buildAddons',
buildTools: 'Admin.Help.buildTools',
developerApis: 'Admin.Help.developerApis',
troubleshooting: 'Admin.Help.troubleshooting',
fixProblems: 'Admin.Help.fixProblems',
documentation: 'Admin.Help.documentation',
readDocs: 'Admin.Help.readDocs',
commonTasks: 'Admin.Help.commonTasks',
other: 'Admin.Help.other',
},
// Log table component
LogTable: {
level: 'Admin.LogTable.level',
info: 'Admin.LogTable.info',
warning: 'Admin.LogTable.warning',
error: 'Admin.LogTable.error',
timestamp: 'Admin.LogTable.timestamp',
message: 'Admin.LogTable.message',
logs: 'Admin.LogTable.logs',
},
// News feed component
NewsFeed: {
link: 'Admin.NewsFeed.link',
noNews: 'Admin.NewsFeed.noNews',
title: 'Admin.NewsFeed.title',
},
// Viewer info page
ViewerInfo: {
title: 'Admin.ViewerInfo.title',
currentStream: 'Admin.ViewerInfo.currentStream',
last12Hours: 'Admin.ViewerInfo.last12Hours',
last24Hours: 'Admin.ViewerInfo.last24Hours',
last7Days: 'Admin.ViewerInfo.last7Days',
last30Days: 'Admin.ViewerInfo.last30Days',
last3Months: 'Admin.ViewerInfo.last3Months',
last6Months: 'Admin.ViewerInfo.last6Months',
currentViewers: 'Admin.ViewerInfo.currentViewers',
maxViewersThisStream: 'Admin.ViewerInfo.maxViewersThisStream',
maxViewersLastStream: 'Admin.ViewerInfo.maxViewersLastStream',
maxViewers: 'Admin.ViewerInfo.maxViewers',
pleaseWait: 'Admin.ViewerInfo.pleaseWait',
noData: 'Admin.ViewerInfo.noData',
viewers: 'Admin.ViewerInfo.viewers',
},
// Logging and monitoring // Logging and monitoring
info: 'Info', info: 'Admin.info',
warning: 'Warning', warning: 'Admin.warning',
error: 'Error', error: 'Admin.error',
level: 'Level', level: 'Admin.level',
timestamp: 'Timestamp', timestamp: 'Admin.timestamp',
message: 'Message', message: 'Admin.message',
logs: 'Logs', logs: 'Admin.logs',
}, },
/** /**
* Common keys shared across both frontend and admin interfaces * Common keys shared across both frontend and admin interfaces
*/ */
Common: { Common: {
// Basic UI elements
yes: 'Yes',
no: 'No',
// Documentation and help
documentation: 'Documentation',
contribute: 'Contribute',
source: 'Source',
// Branding // Branding
poweredByOwncast: 'Powered by Owncast', poweredByOwncastVersion: 'Common.poweredByOwncastVersion',
poweredByOwncastVersion: 'powered_by_owncast_version',
}, },
/** /**