chore: Update translations

This commit is contained in:
Kieran 2023-12-05 11:14:47 +00:00
parent 8cbc7f0633
commit aaf832a9af
23 changed files with 250 additions and 64 deletions

View File

@ -176,15 +176,15 @@ export function ChatMessage({
style={
isTablet
? {
display: showZapDialog || isHovering ? "flex" : "none",
}
display: showZapDialog || isHovering ? "flex" : "none",
}
: {
position: "fixed",
top: topOffset ? topOffset - 12 : 0,
left: leftOffset ? leftOffset - 32 : 0,
opacity: showZapDialog || isHovering ? 1 : 0,
pointerEvents: showZapDialog || isHovering ? "auto" : "none",
}
position: "fixed",
top: topOffset ? topOffset - 12 : 0,
left: leftOffset ? leftOffset - 32 : 0,
opacity: showZapDialog || isHovering ? 1 : 0,
pointerEvents: showZapDialog || isHovering ? "auto" : "none",
}
}>
{zapTarget && (
<SendZapsDialog

View File

@ -23,7 +23,7 @@ export function LiveVideoPlayer(props: VideoPlayerProps) {
const streamCached = useMemo(() => props.stream, [props.stream]);
const [status, setStatus] = useState<VideoStatus>();
const [src, setSrc] = useState<string>();
const [levels, setLevels] = useState<Array<{ level: number, height: number }>>();
const [levels, setLevels] = useState<Array<{ level: number; height: number }>>();
const [level, setLevel] = useState<number>(-1);
const [playState, setPlayState] = useState(true);
const [volume, setVolume] = useState(1);
@ -50,10 +50,12 @@ export function LiveVideoPlayer(props: VideoPlayerProps) {
});
hls.on(Hls.Events.MANIFEST_PARSED, () => {
setStatus(VideoStatus.Online);
setLevels(hls.levels.map((a, i) => ({
level: i,
height: a.height
})));
setLevels(
hls.levels.map((a, i) => ({
level: i,
height: a.height,
}))
);
});
hls.on(Hls.Events.LEVEL_SWITCHING, (_, l) => {
console.debug("HLS Level Switch", l);
@ -64,7 +66,7 @@ export function LiveVideoPlayer(props: VideoPlayerProps) {
// @ts-ignore Can write anyway
hlsObj.current = null;
hls.destroy();
}
};
} catch (e) {
console.error(e);
setStatus(VideoStatus.Offline);
@ -110,59 +112,63 @@ export function LiveVideoPlayer(props: VideoPlayerProps) {
return (
<div className="relative">
{status === VideoStatus.Online && <div className="absolute opacity-0 hover:opacity-100 transition-opacity w-full h-full z-20 bg-[#00000055]" onClick={() => {
if (video.current) {
if (playState) {
video.current.pause();
} else {
video.current.play();
}
}
}}>
<div className="absolute w-full h-full flex items-center justify-center pointer">
<Icon name={playState ? "pause" : "play"} size={80} />
</div>
<div className="absolute flex gap-1 bottom-0 w-full bg-[rgba(0,0,0,0.5)]" onClick={e => e.stopPropagation()}>
<div className="grow">
<StatePill state={props.status as StreamState} />
</div>
<div className="flex gap-1 items-center">
<Icon name="volume" />
<div className="relative w-[104px] h-full border" onMouseDown={changeVolume} onMouseMove={e => {
if (e.buttons > 0) {
changeVolume(e);
{status === VideoStatus.Online && (
<div
className="absolute opacity-0 hover:opacity-100 transition-opacity w-full h-full z-20 bg-[#00000055]"
onClick={() => {
if (video.current) {
if (playState) {
video.current.pause();
} else {
video.current.play();
}
}}>
<div className="absolute h-full w-[4px] bg-white" style={{
left: `${Math.floor(100 * volume)}px`
}}></div>
}
}}>
<div className="absolute w-full h-full flex items-center justify-center pointer">
<Icon name={playState ? "pause" : "play"} size={80} />
</div>
<div className="absolute flex gap-1 bottom-0 w-full bg-[rgba(0,0,0,0.5)]" onClick={e => e.stopPropagation()}>
<div className="grow">
<StatePill state={props.status as StreamState} />
</div>
<div className="flex gap-1 items-center">
<Icon name="volume" />
<div
className="relative w-[104px] h-full border"
onMouseDown={changeVolume}
onMouseMove={e => {
if (e.buttons > 0) {
changeVolume(e);
}
}}>
<div
className="absolute h-full w-[4px] bg-white"
style={{
left: `${Math.floor(100 * volume)}px`,
}}></div>
</div>
</div>
<div>
<select onChange={e => setLevel(Number(e.target.value))}>
<option value={-1}>
<FormattedMessage defaultMessage="Auto" id="NXI/XL" />
</option>
{levels?.map(v => (
<option value={v.level} key={v.level}>
<FormattedMessage defaultMessage="{n}p" id="YagVIe" values={{ n: v.height }} />
</option>
))}
</select>
</div>
</div>
<div>
<select onChange={e => setLevel(Number(e.target.value))}>
<option value={-1}>
<FormattedMessage defaultMessage="Auto" id="NXI/XL" />
</option>
{levels?.map(v => <option value={v.level} key={v.level}>
<FormattedMessage defaultMessage="{n}p" id="YagVIe" values={{ n: v.height }} />
</option>)}
</select>
</div>
</div>
</div>}
{
status === VideoStatus.Offline && <div className="absolute w-full h-full z-20 bg-[#000000aa] flex items-center justify-center text-3xl font-bold uppercase">
)}
{status === VideoStatus.Offline && (
<div className="absolute w-full h-full z-20 bg-[#000000aa] flex items-center justify-center text-3xl font-bold uppercase">
<FormattedMessage defaultMessage="Offline" id="7UOvbT" />
</div>
}
<video
className="z-10"
ref={video}
autoPlay={true}
poster={props.poster}
src={src}
playsInline={true}
/>
</div >
)}
<video className="z-10" ref={video} autoPlay={true} poster={props.poster} src={src} playsInline={true} />
</div>
);
}
}

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Insert text to speak"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, it's safe"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Yes, I am over 18"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "This method is insecure. We recommend using a {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Вмъкнете текст за изговаряне"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ок, безопасно е"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Да, Аз съм на 18 или повече"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {курс}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Този метод не е сигурен. Препоръчваме ви да използвате {ностърлинк}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "পড়ার জন্য মূলপাঠ সন্নিবেশ করুন"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "ঠিক আছে, এটা নিরাপদ"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "হ্যাঁ, আমি ১৮ বছরের উর্ধ্বে"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "এই পদ্ধতিটি নিরাপদ নয়। আমরা একটি {nostrlink} ব্যবহারের পরামর্শ দিচ্ছি।"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Indsæt tekst for at tale"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Okay, det er sikkert"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Ja, jeg er over 18 år"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Denne metode er usikker. Vi anbefaler at bruge en {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Musik"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Text zum Sprechen einfügen"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, er ist gesichert"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Ja, ich bin über 18 Jahre alt"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Diese Methode ist unsicher. Wir empfehlen die Verwendung von {nostrlink}"
},

View File

@ -150,4 +150,4 @@
"y867Vs": "Volume",
"yzKwBQ": "eg. nsec1xyz",
"zVDHAu": "Zap Alert"
}
}

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Insertar texto para hablar"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, es seguro"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Sí, tengo más de 18 años"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Este método es inseguro. Le recomendamos que utilice {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Insert text to speak"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "باشه، امن است"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "بله، من بالای ۱۸ سال هستم"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "This method is insecure. We recommend using a {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Lisää teksti puheeksi"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, se on turvassa"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Kyllä, olen yli 18"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Tämä menetelmä ei ole turvallinen. Suosittelemme käyttämään {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Insérer un texte pour parler"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, c'est sûr"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Oui, j'ai plus de 18 ans"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Cette méthode n'est pas sécurisée. Nous vous recommandons d'utiliser un {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Szöveg beszúrása a beszédfelolvasáshoz"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, biztonságos"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Igen, 18 éves elmúltam"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Ez a módszer nem biztonságos. Javasoljuk a {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Inserisci il testo da pronunciare"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, è sicuro"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Sì, ho più di 18 anni"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Questo metodo non è sicuro. Si consiglia di utilizzare un sito {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "テキストを挿入して話す"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "はい、大丈夫です"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "はい、18歳以上です"
},
@ -261,6 +267,9 @@
"defaultMessage": "{rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "この方法は安全ではありません。 {nostrlink}。"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Tekst invoegen om te spreken"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Oké, het is veilig"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Ja, ik ben ouder dan 18"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Deze methode is onveilig. We raden aan een {nostrlink}te gebruiken."
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Insira texto para fala"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, está seguro"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Sim, eu sou maior de 18"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Este método é inseguro. Recomendamos usar um {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Вставка текста для выступления"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ок, безопасно"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Да, я старше 18 лет"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Этот метод небезопасен. Мы рекомендуем использовать {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Infoga text att prata"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Ok, det är säkert"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Ja, jag är över 18 år"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Denna metod är osäker. Vi rekommenderar att du använder en {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Ingiza maandishi ili kuzungumza"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "Sawa, ni salama"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "Ndiyo, nina zaidi ya miaka 18"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "Njia hii haina usalama. Tunapendekeza utumie {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "Insert text to speak"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "ฉันจัดเก็บรหัสไว้ดีแล้ว"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "ฉันอายุมากกว่า 18 ปี"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "This method is insecure. We recommend using a {nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "输入要转为语音的文本"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "好,是安全的"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "是的我已满18岁"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "这个方式不安全。我们建议使用{nostrlink}"
},

View File

@ -80,6 +80,9 @@
"79lLl+": {
"defaultMessage": "Music"
},
"7UOvbT": {
"defaultMessage": "Offline"
},
"8YT6ja": {
"defaultMessage": "輸入要轉為語音的文本"
},
@ -191,6 +194,9 @@
"My6HwN": {
"defaultMessage": "好,是安全的"
},
"NXI/XL": {
"defaultMessage": "Auto"
},
"O2Cy6m": {
"defaultMessage": "是的我已滿18歲"
},
@ -261,6 +267,9 @@
"defaultMessage": "@ {rate}",
"description": "Showing zap amount in USD @ rate"
},
"YagVIe": {
"defaultMessage": "{n}p"
},
"Z8ZOEY": {
"defaultMessage": "這個方式不安全。我們建議使用{nostrlink}"
},