Compare commits
168 Commits
12.117.1-s
...
develop
Author | SHA1 | Date | |
---|---|---|---|
5e529eb605 | |||
890bef35eb | |||
8aa3787ffc | |||
2b05de0204 | |||
6cc945b53c | |||
c60db40175 | |||
fbc1ec67cf | |||
f66626e6e6 | |||
c7b6e0cbf9 | |||
0a83ec26c8 | |||
bd5712581a | |||
677f6bd6e1 | |||
ea6f538109 | |||
3a540dd1f6 | |||
2be42c0e4b | |||
38e8d2cdb5 | |||
3d8c8af0e8 | |||
d06e9e7e0c | |||
8bc3406c3c | |||
f817979d22 | |||
123fedb5c4 | |||
d01fde57ae | |||
657959dd30 | |||
ac50efc5d1 | |||
1e17b7db6b | |||
e0cea2facc | |||
167a7201c2 | |||
581738f264 | |||
cb18ce16a0 | |||
356d28928a | |||
3bd7f3d301 | |||
fa7c8024d6 | |||
5bff0cb41f | |||
6de468573a | |||
6fb825afdc | |||
f15e9b1e4e | |||
f97146be98 | |||
09ff9f76d0 | |||
95ec171479 | |||
177ee5645e | |||
98a768c28f | |||
a1c97e6700 | |||
41c0505043 | |||
ade3b8e3fb | |||
7817bfac2e | |||
b59e0cda52 | |||
c366a9aa48 | |||
|
a6287d4436 | ||
99a028facf | |||
|
8f00846e44 | ||
|
d8a4837df6 | ||
|
070d91e16e | ||
|
18f778a335 | ||
|
9c48c97047 | ||
|
3a7fbf9406 | ||
c56f8fd953 | |||
9f6e6ac3c8 | |||
35659b6a6a | |||
542349855e | |||
b73d50db29 | |||
d20b109d61 | |||
72983ff9e1 | |||
b1ad672df8 | |||
38ae0c4c1e | |||
bf781707c5 | |||
6214d65ff5 | |||
|
a2a1636c10 | ||
|
606d7dbc22 | ||
|
e60a6cc621 | ||
|
d4b146e77a | ||
|
406d088421 | ||
|
7c89a27e61 | ||
|
20aee2deed | ||
|
255f19bd23 | ||
|
06aeb49625 | ||
|
1b014bc3e5 | ||
|
a9e13693a5 | ||
|
0b99ffa8f9 | ||
|
d4e284c859 | ||
|
eff9cdd8a7 | ||
|
057d1642c8 | ||
|
9db2380c20 | ||
|
9132c72545 | ||
|
4c3d094a45 | ||
|
f337459c6e | ||
2d4dfc5137 | |||
2ea8e811d5 | |||
|
e41810f142 | ||
|
25f4c8688a | ||
|
d9ff2dd471 | ||
|
2c2c7d4966 | ||
|
2d8e7b4da7 | ||
|
786b150ea7 | ||
|
47b2e56967 | ||
|
e0dce77678 | ||
|
4373019b36 | ||
|
0dfb9f8291 | ||
|
773139b737 | ||
|
806a80a1e5 | ||
|
450076cfa4 | ||
a151a14632 | |||
d93c88e179 | |||
|
253f005e80 | ||
|
dddc076d01 | ||
|
c97dc7fe93 | ||
|
8a09de6b28 | ||
62cfc4ce13 | |||
15a8ec6e45 | |||
8bc0b8e53d | |||
|
46ec0303b7 | ||
|
55220a31e8 | ||
|
cabbe8c308 | ||
|
3b1669fb6b | ||
|
395e18e584 | ||
|
1c3715a43a | ||
|
e3aa39e050 | ||
|
c4830dcf3a | ||
|
cb35ace047 | ||
|
d8767fa87b | ||
|
5ec10f9ff7 | ||
|
f22c32af05 | ||
|
b31f09692a | ||
|
3a9da78901 | ||
|
dea5e6207e | ||
|
2cd70b80a2 | ||
|
bdaa35d11f | ||
|
b934c738a6 | ||
|
f3164c9cf2 | ||
|
78f061b9db | ||
|
14c2f9e47e | ||
|
b5bf4e75a6 | ||
|
6dcee5aa5c | ||
|
519c8b419b | ||
|
b7f4cb6433 | ||
|
595bf6fc69 | ||
|
36f083c189 | ||
|
f835421d70 | ||
|
756eeb51f3 | ||
|
9f5c8f42e0 | ||
|
212b2c738b | ||
|
92f9392bcf | ||
|
bd8db402e6 | ||
|
d93ad43c49 | ||
|
ab9fcc863f | ||
|
c64b3c9c43 | ||
|
3acfeb1680 | ||
|
e371120c8b | ||
|
43ee600fb3 | ||
|
b6556c7ff1 | ||
|
9d5901a779 | ||
|
59b7b0f832 | ||
|
035ec0a874 | ||
|
9ed6a9701a | ||
|
53d24c2ba1 | ||
|
62226b985a | ||
|
d72ac908f4 | ||
|
00be79ce13 | ||
|
8261321dac | ||
|
4761ff7444 | ||
|
d1f1430b84 | ||
|
39ee039fcb | ||
|
9606ba0454 | ||
|
50e3ca19bc | ||
|
9a1f5afde9 | ||
|
716cb23acb | ||
|
e83dd90e07 | ||
|
66f1aaf5f7 | ||
|
17afbc3c46 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -13,6 +13,9 @@ report.*.json
|
|||||||
cypress/screenshots
|
cypress/screenshots
|
||||||
cypress/videos
|
cypress/videos
|
||||||
|
|
||||||
|
# Coverage
|
||||||
|
coverage
|
||||||
|
|
||||||
# config
|
# config
|
||||||
/.config/*
|
/.config/*
|
||||||
!/.config/example.yml
|
!/.config/example.yml
|
||||||
|
30
CHANGELOG.md
30
CHANGELOG.md
@ -9,6 +9,36 @@
|
|||||||
You should also include the user name that made the change.
|
You should also include the user name that made the change.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
## 12.119.0 (2022/09/10)
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
- Client: Add following badge to user preview popup @nvisser
|
||||||
|
- Client: mobile twitter url can be used as widget @caipira113
|
||||||
|
- Client: Improve clock widget @syuilo
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
- マイグレーションに失敗する問題を修正
|
||||||
|
- Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo
|
||||||
|
- Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo
|
||||||
|
|
||||||
|
## 12.118.1 (2022/08/08)
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
- Client: can not show some setting pages @syuilo
|
||||||
|
|
||||||
|
## 12.118.0 (2022/08/07)
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
- Client: 設定のバックアップ/リストア機能
|
||||||
|
- Client: Add vi-VN language support
|
||||||
|
- Client: Add unix time widget @syuilo
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
- Server: リモートユーザーを正しくブロックできるように修正する @xianonn
|
||||||
|
- Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo
|
||||||
|
- Client: MiAuth認証ページが機能していない @syuilo
|
||||||
|
- Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa
|
||||||
|
|
||||||
## 12.117.1 (2022/07/19)
|
## 12.117.1 (2022/07/19)
|
||||||
|
|
||||||
### Improvements
|
### Improvements
|
||||||
|
@ -140,6 +140,34 @@ Misskey uses Vue(v3) as its front-end framework.
|
|||||||
- **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.**
|
- **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.**
|
||||||
- Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome.
|
- Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome.
|
||||||
|
|
||||||
|
## nirax
|
||||||
|
niraxは、Misskeyで使用しているオリジナルのフロントエンドルーティングシステムです。
|
||||||
|
**vue-routerから影響を多大に受けているので、まずはvue-routerについて学ぶことをお勧めします。**
|
||||||
|
|
||||||
|
### ルート定義
|
||||||
|
ルート定義は、以下の形式のオブジェクトの配列です。
|
||||||
|
|
||||||
|
``` ts
|
||||||
|
{
|
||||||
|
name?: string;
|
||||||
|
path: string;
|
||||||
|
component: Component;
|
||||||
|
query?: Record<string, string>;
|
||||||
|
loginRequired?: boolean;
|
||||||
|
hash?: string;
|
||||||
|
globalCacheKey?: string;
|
||||||
|
children?: RouteDef[];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Warning**
|
||||||
|
> 現状、ルートは定義された順に評価されます。
|
||||||
|
> たとえば、`/foo/:id`ルート定義の次に`/foo/bar`ルート定義がされていた場合、後者がマッチすることはありません。
|
||||||
|
|
||||||
|
### 複数のルーター
|
||||||
|
vue-routerとの最大の違いは、niraxは複数のルーターが存在することを許可している点です。
|
||||||
|
これにより、アプリ内ウィンドウでブラウザとは個別にルーティングすることなどが可能になります。
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
### How to resolve conflictions occurred at yarn.lock?
|
### How to resolve conflictions occurred at yarn.lock?
|
||||||
|
|
||||||
|
17
ROADMAP.md
17
ROADMAP.md
@ -6,14 +6,17 @@ Also, the later tasks are more indefinite and are subject to change as developme
|
|||||||
This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development.
|
This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development.
|
||||||
|
|
||||||
- Make the number of type errors zero (backend)
|
- Make the number of type errors zero (backend)
|
||||||
- Probably need to switch some libraries to others that make it difficult to reduce type errors
|
- Probably need to switch some libraries to others that make it difficult to reduce type errors
|
||||||
- e.g. koa to fastify https://github.com/misskey-dev/misskey/issues/7537
|
- e.g. koa to fastify https://github.com/misskey-dev/misskey/issues/7537
|
||||||
- Improve CI
|
- Improve CI
|
||||||
- Fix tests
|
- Fix tests
|
||||||
- mocha, jest, etc. do not support the combination of `TypeScript + ESM + Path alias`, and the tests currently do not work.
|
- mocha, jest, etc. do not support the combination of `TypeScript + ESM + Path alias`, and the tests currently do not work.
|
||||||
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986
|
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986
|
||||||
- Add more tests
|
- Add more tests
|
||||||
- May need to implement a mechanism that allows for DI
|
- May need to implement a mechanism that allows for DI
|
||||||
|
- https://github.com/misskey-dev/misskey/pull/9085
|
||||||
|
- Measure coverage
|
||||||
|
- https://github.com/misskey-dev/misskey/pull/9081
|
||||||
- Improve documentation
|
- Improve documentation
|
||||||
|
|
||||||
## (2) Improve functionality
|
## (2) Improve functionality
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "ابحث عن مستخدمين"
|
|||||||
reply: "رد"
|
reply: "رد"
|
||||||
loadMore: "عرض المزيد"
|
loadMore: "عرض المزيد"
|
||||||
showMore: "عرض المزيد"
|
showMore: "عرض المزيد"
|
||||||
|
showLess: "اغلق"
|
||||||
youGotNewFollower: "يتابعك"
|
youGotNewFollower: "يتابعك"
|
||||||
receiveFollowRequest: "تلقيت طلب متابعة"
|
receiveFollowRequest: "تلقيت طلب متابعة"
|
||||||
followRequestAccepted: "قُبل طلب المتابعة"
|
followRequestAccepted: "قُبل طلب المتابعة"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "ব্যবহারকারী খুঁজুন..."
|
|||||||
reply: "জবাব"
|
reply: "জবাব"
|
||||||
loadMore: "আরও দেখুন"
|
loadMore: "আরও দেখুন"
|
||||||
showMore: "আরও দেখুন"
|
showMore: "আরও দেখুন"
|
||||||
|
showLess: "বন্ধ"
|
||||||
youGotNewFollower: "আপনাকে অনুসরণ করছে"
|
youGotNewFollower: "আপনাকে অনুসরণ করছে"
|
||||||
receiveFollowRequest: "অনুসরণ করার জন্য অনুরোধ পাওয়া গেছে"
|
receiveFollowRequest: "অনুসরণ করার জন্য অনুরোধ পাওয়া গেছে"
|
||||||
followRequestAccepted: "অনুসরণ করার অনুরোধ গৃহীত হয়েছে"
|
followRequestAccepted: "অনুসরণ করার অনুরোধ গৃহীত হয়েছে"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Vyhledat uživatele"
|
|||||||
reply: "Odpovědět"
|
reply: "Odpovědět"
|
||||||
loadMore: "Zobrazit více"
|
loadMore: "Zobrazit více"
|
||||||
showMore: "Zobrazit více"
|
showMore: "Zobrazit více"
|
||||||
|
showLess: "Zavřít"
|
||||||
youGotNewFollower: "Máte nového následovníka"
|
youGotNewFollower: "Máte nového následovníka"
|
||||||
receiveFollowRequest: "Žádost o sledování přijata"
|
receiveFollowRequest: "Žádost o sledování přijata"
|
||||||
followRequestAccepted: "Žádost o sledování přijata"
|
followRequestAccepted: "Žádost o sledování přijata"
|
||||||
@ -205,6 +206,7 @@ instanceFollowers: "Následovníci na instanci"
|
|||||||
instanceUsers: "Uživatelé této instance"
|
instanceUsers: "Uživatelé této instance"
|
||||||
changePassword: "Změnit heslo"
|
changePassword: "Změnit heslo"
|
||||||
security: "Zabezpečení"
|
security: "Zabezpečení"
|
||||||
|
retypedNotMatch: "Zadané údaje se neshodují."
|
||||||
currentPassword: "Současné heslo"
|
currentPassword: "Současné heslo"
|
||||||
newPassword: "Nové heslo"
|
newPassword: "Nové heslo"
|
||||||
newPasswordRetype: "Nové heslo (znovu)"
|
newPasswordRetype: "Nové heslo (znovu)"
|
||||||
@ -267,6 +269,7 @@ addFile: "Přidat soubor"
|
|||||||
emptyFolder: "Tato složka je prázdná"
|
emptyFolder: "Tato složka je prázdná"
|
||||||
unableToDelete: "Nelze smazat"
|
unableToDelete: "Nelze smazat"
|
||||||
inputNewFileName: "Zadejte nový název"
|
inputNewFileName: "Zadejte nový název"
|
||||||
|
inputNewFolderName: "Zadejte název nové složky"
|
||||||
copyUrl: "Kopírovat URL"
|
copyUrl: "Kopírovat URL"
|
||||||
rename: "Přejmenovat"
|
rename: "Přejmenovat"
|
||||||
avatar: "Avatar"
|
avatar: "Avatar"
|
||||||
@ -309,9 +312,11 @@ pinnedUsers: "Připnutí uživatelé"
|
|||||||
pinnedNotes: "Připnutá poznámka"
|
pinnedNotes: "Připnutá poznámka"
|
||||||
hcaptcha: "hCaptcha"
|
hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Aktivovat hCaptchu"
|
enableHcaptcha: "Aktivovat hCaptchu"
|
||||||
|
hcaptchaSiteKey: "Klíč stránky"
|
||||||
hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "Zapnout ReCAPTCHu"
|
enableRecaptcha: "Zapnout ReCAPTCHu"
|
||||||
|
recaptchaSiteKey: "Klíč stránky"
|
||||||
recaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
recaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
||||||
antennas: "Antény"
|
antennas: "Antény"
|
||||||
manageAntennas: "Spravovat Antény"
|
manageAntennas: "Spravovat Antény"
|
||||||
@ -320,6 +325,10 @@ antennaSource: "Zdroj Antény"
|
|||||||
enableServiceworker: "Povolit ServiceWorker"
|
enableServiceworker: "Povolit ServiceWorker"
|
||||||
caseSensitive: "Rozlišuje malá a velká písmena"
|
caseSensitive: "Rozlišuje malá a velká písmena"
|
||||||
connectedTo: "Následující účty jsou připojeny"
|
connectedTo: "Následující účty jsou připojeny"
|
||||||
|
notesAndReplies: "Poznámky a odpovědi"
|
||||||
|
withFiles: "Včetně souborů"
|
||||||
|
popularUsers: "Populární uživatelé"
|
||||||
|
recentlyUpdatedUsers: "Nedávno aktívni uživatelé"
|
||||||
popularTags: "Populární tagy"
|
popularTags: "Populární tagy"
|
||||||
userList: "Seznamy"
|
userList: "Seznamy"
|
||||||
about: "Informace"
|
about: "Informace"
|
||||||
@ -364,10 +373,14 @@ next: "Další"
|
|||||||
retype: "Zadejte znovu"
|
retype: "Zadejte znovu"
|
||||||
noteOf: "{user} poznámky"
|
noteOf: "{user} poznámky"
|
||||||
inviteToGroup: "Pozvat do skupiny"
|
inviteToGroup: "Pozvat do skupiny"
|
||||||
|
quoteAttached: "Citace"
|
||||||
|
quoteQuestion: "Přiložit jako citaci?"
|
||||||
|
noMessagesYet: "Zatím tu nejsou žádné zprávy"
|
||||||
newMessageExists: "Máte novou zprávu"
|
newMessageExists: "Máte novou zprávu"
|
||||||
onlyOneFileCanBeAttached: "Ke zprávě můžete přiložit jenom jeden soubor"
|
onlyOneFileCanBeAttached: "Ke zprávě můžete přiložit jenom jeden soubor"
|
||||||
signinRequired: "Přihlašte se, prosím"
|
signinRequired: "Přihlašte se, prosím"
|
||||||
invitations: "Pozvat"
|
invitations: "Pozvat"
|
||||||
|
invitationCode: "Kód pozvánky"
|
||||||
checking: "Ověřuji"
|
checking: "Ověřuji"
|
||||||
available: "K dispozici"
|
available: "K dispozici"
|
||||||
unavailable: "Není k dispozici"
|
unavailable: "Není k dispozici"
|
||||||
@ -381,6 +394,7 @@ passwordMatched: "Hesla se schodují"
|
|||||||
passwordNotMatched: "Hesla se neschodují"
|
passwordNotMatched: "Hesla se neschodují"
|
||||||
signinWith: "Přihlásit se s {x}"
|
signinWith: "Přihlásit se s {x}"
|
||||||
signinFailed: "Nelze se přihlásit. Zkontrolujte prosím své uživatelské jméno a heslo."
|
signinFailed: "Nelze se přihlásit. Zkontrolujte prosím své uživatelské jméno a heslo."
|
||||||
|
tapSecurityKey: "Ťukněte na bezpečnostní klíč"
|
||||||
or: "Nebo"
|
or: "Nebo"
|
||||||
language: "Jazyk"
|
language: "Jazyk"
|
||||||
uiLanguage: "Jazyk uživatelského rozhraní"
|
uiLanguage: "Jazyk uživatelského rozhraní"
|
||||||
@ -410,9 +424,20 @@ accountSettings: "Nastavení účtu"
|
|||||||
promotion: "Propagace"
|
promotion: "Propagace"
|
||||||
promote: "Propagovat"
|
promote: "Propagovat"
|
||||||
numberOfDays: "Počet dní"
|
numberOfDays: "Počet dní"
|
||||||
|
objectStorageBaseUrl: "Base URL"
|
||||||
|
objectStorageBucket: "Bucket"
|
||||||
|
objectStoragePrefix: "Předpona"
|
||||||
|
objectStorageEndpoint: "Endpoint"
|
||||||
|
objectStorageRegion: "Región"
|
||||||
|
objectStorageUseSSL: "Použít SSL"
|
||||||
deleteAll: "Smazat vše"
|
deleteAll: "Smazat vše"
|
||||||
showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou"
|
showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou"
|
||||||
|
listen: "Poslouchat"
|
||||||
|
showInPage: "Zobrazit na stránce"
|
||||||
|
popout: "Pop-out"
|
||||||
|
volume: "Hlasitost"
|
||||||
masterVolume: "Celková hlasitost"
|
masterVolume: "Celková hlasitost"
|
||||||
|
details: "Detaily"
|
||||||
chooseEmoji: "Vybrat emotikon"
|
chooseEmoji: "Vybrat emotikon"
|
||||||
unableToProcess: "Operace nebyla dokončena."
|
unableToProcess: "Operace nebyla dokončena."
|
||||||
recentUsed: "Naposledy použité"
|
recentUsed: "Naposledy použité"
|
||||||
@ -433,13 +458,20 @@ deleteAllFiles: "Smazat všechny soubory"
|
|||||||
deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?"
|
deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?"
|
||||||
userSuspended: "Tomuto uživateli byl pozastaven účet."
|
userSuspended: "Tomuto uživateli byl pozastaven účet."
|
||||||
menu: "Menu"
|
menu: "Menu"
|
||||||
|
divider: "Dělící čára"
|
||||||
addItem: "Přidat položku"
|
addItem: "Přidat položku"
|
||||||
|
relays: "Relay"
|
||||||
|
addRelay: "Přidat Relay"
|
||||||
inboxUrl: "Inbox URL"
|
inboxUrl: "Inbox URL"
|
||||||
deletedNote: "Odstraněné příspěvky"
|
deletedNote: "Odstraněné příspěvky"
|
||||||
invisibleNote: "Skryté příspěvky"
|
invisibleNote: "Skryté příspěvky"
|
||||||
description: "Popis"
|
description: "Popis"
|
||||||
author: "Autor"
|
author: "Autor"
|
||||||
manage: "Administrace"
|
manage: "Administrace"
|
||||||
|
width: "Šířka"
|
||||||
|
height: "Výška"
|
||||||
|
large: "Velké"
|
||||||
|
medium: "Střední"
|
||||||
small: "Malé"
|
small: "Malé"
|
||||||
generateAccessToken: "Vygenerovat přístupový token"
|
generateAccessToken: "Vygenerovat přístupový token"
|
||||||
permission: "Oprávnění"
|
permission: "Oprávnění"
|
||||||
@ -457,11 +489,16 @@ smtpPort: "Port"
|
|||||||
smtpUser: "Uživatelské jméno"
|
smtpUser: "Uživatelské jméno"
|
||||||
smtpPass: "Heslo"
|
smtpPass: "Heslo"
|
||||||
smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS"
|
smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS"
|
||||||
|
testEmail: "Otestovat doručení emailů"
|
||||||
makeActive: "Aktivovat"
|
makeActive: "Aktivovat"
|
||||||
display: "Zobrazit"
|
display: "Zobrazit"
|
||||||
copy: "Kopírovat"
|
copy: "Kopírovat"
|
||||||
|
metrics: "Metriky"
|
||||||
|
overview: "Shrnutí"
|
||||||
logs: "Logy"
|
logs: "Logy"
|
||||||
|
delayed: "Prodleva"
|
||||||
database: "Databáze"
|
database: "Databáze"
|
||||||
|
channel: "Kanály"
|
||||||
create: "Vytvořit"
|
create: "Vytvořit"
|
||||||
notificationSetting: "Nastavení oznámení"
|
notificationSetting: "Nastavení oznámení"
|
||||||
useGlobalSetting: "Použít globální nastavení"
|
useGlobalSetting: "Použít globální nastavení"
|
||||||
@ -469,79 +506,415 @@ other: "Ostatní"
|
|||||||
fileIdOrUrl: "ID nebo URL souboru"
|
fileIdOrUrl: "ID nebo URL souboru"
|
||||||
behavior: "Chování"
|
behavior: "Chování"
|
||||||
sample: "Ukázka"
|
sample: "Ukázka"
|
||||||
|
send: "Odeslat"
|
||||||
|
openInNewTab: "Otevřít v nové kartě"
|
||||||
|
random: "Náhodně"
|
||||||
|
system: "Systém"
|
||||||
|
desktop: "Plocha"
|
||||||
|
clip: "Oříznout"
|
||||||
|
createNew: "Vytvořit nový"
|
||||||
|
optional: "Volitelné"
|
||||||
|
yes: "Ano"
|
||||||
|
no: "Ne"
|
||||||
|
notSet: "Není nastaveno"
|
||||||
|
emailVerified: "Váš e-mail byl ověřen"
|
||||||
|
contact: "Kontakt"
|
||||||
|
useSystemFont: "Použít výchozí font systému"
|
||||||
|
clips: "Oříznout"
|
||||||
|
experimentalFeatures: "Experimentální funkce"
|
||||||
|
developer: "Vývojář"
|
||||||
|
duplicate: "Duplikovat"
|
||||||
|
left: "Vlevo"
|
||||||
|
center: "Uprostřed"
|
||||||
|
wide: "Široké"
|
||||||
|
narrow: "Úzké"
|
||||||
clearCache: "Vyprázdnit mezipaměť"
|
clearCache: "Vyprázdnit mezipaměť"
|
||||||
|
nUsers: "{n} užívatelů"
|
||||||
|
nNotes: "{n} poznámek"
|
||||||
|
myTheme: "Moje vzhledy"
|
||||||
|
backgroundColor: "Pozadí"
|
||||||
|
accentColor: "Akcent"
|
||||||
|
textColor: "Barva textu"
|
||||||
|
saveAs: "Uložit jako…"
|
||||||
|
advanced: "Pokročilé"
|
||||||
|
value: "Hodnota"
|
||||||
|
createdAt: "Vytvořeno"
|
||||||
|
updatedAt: "Upraveno"
|
||||||
|
saveConfirm: "Uložit změny?"
|
||||||
|
deleteConfirm: "Opravdu smazat?"
|
||||||
|
invalidValue: "Neplatná hodnota."
|
||||||
|
registry: "Registr"
|
||||||
info: "Informace"
|
info: "Informace"
|
||||||
|
unknown: "Neznámý"
|
||||||
|
onlineStatus: "Online status"
|
||||||
|
hideOnlineStatus: "Skrýt Váš online status"
|
||||||
|
hideOnlineStatusDescription: "Skrytí vašeho online stavu může snížit funkcionalitu některých funkcí, například vyhledávání."
|
||||||
|
online: "Online"
|
||||||
|
active: "Aktivní"
|
||||||
|
offline: "Offline"
|
||||||
|
notRecommended: "Nedoporučuje se"
|
||||||
|
botProtection: "Bot ochrana"
|
||||||
|
instanceBlocking: "Blokované instance"
|
||||||
|
selectAccount: "Vybrat účet"
|
||||||
|
switchAccount: "Přepnout účet"
|
||||||
|
enabled: "Zapnuto"
|
||||||
|
disabled: "Vypnuto"
|
||||||
|
quickAction: "Rychlé akce"
|
||||||
user: "Uživatelé"
|
user: "Uživatelé"
|
||||||
administration: "Administrace"
|
administration: "Administrace"
|
||||||
|
accounts: "Účty"
|
||||||
|
switch: "Přepnout"
|
||||||
|
configure: "Nastavit"
|
||||||
|
gallery: "Galerie"
|
||||||
|
recentPosts: "Poslední příspěvky"
|
||||||
|
ads: "Reklamy"
|
||||||
|
memo: "Memo"
|
||||||
|
priority: "Priorita"
|
||||||
|
high: "Vysoká"
|
||||||
|
middle: "Střední"
|
||||||
|
low: "Nízká"
|
||||||
|
emailNotConfiguredWarning: "E-mailová adresa není nastavena."
|
||||||
|
ratio: "Poměr"
|
||||||
|
global: "Globální"
|
||||||
|
sent: "Odeslat"
|
||||||
|
hashtags: "Hashtagy"
|
||||||
|
troubleshooting: "Poradce při potížích"
|
||||||
|
whatIsNew: "Zobrazit změny"
|
||||||
|
translate: "Přeložit"
|
||||||
|
hide: "Skrýt"
|
||||||
|
smartphone: "Telefon"
|
||||||
|
tablet: "Tablet"
|
||||||
|
auto: "Auto"
|
||||||
|
size: "Velikost"
|
||||||
|
numberOfColumn: "Počet sloupců"
|
||||||
searchByGoogle: "Vyhledávání"
|
searchByGoogle: "Vyhledávání"
|
||||||
|
indefinitely: "Navždy"
|
||||||
|
tenMinutes: "10 minut"
|
||||||
|
oneHour: "1 hodina"
|
||||||
|
oneDay: "1 den"
|
||||||
|
oneWeek: "1 týden"
|
||||||
|
reflectMayTakeTime: "Může trvat nějakou dobu, než se projeví změny."
|
||||||
|
cropImage: "Oříznout obrázek"
|
||||||
file: "Soubor(ů)"
|
file: "Soubor(ů)"
|
||||||
|
recentNHours: "Posledních {n} hodin"
|
||||||
|
recentNDays: "Posledních {n} dnů"
|
||||||
|
recommended: "Doporučeno"
|
||||||
|
deleteAccount: "Odstranit účet"
|
||||||
|
document: "Dokumentace"
|
||||||
|
logoutConfirm: "Opravdu se chcete odhlásit?"
|
||||||
|
pleaseSelect: "Vybrat možnost"
|
||||||
|
reverse: "Otočit"
|
||||||
|
colored: "Barevné"
|
||||||
|
type: "Typ"
|
||||||
|
speed: "Rychlost"
|
||||||
|
slow: "Pomalá"
|
||||||
|
fast: "Rychlá"
|
||||||
|
account: "Účty"
|
||||||
|
_ad:
|
||||||
|
back: "Zpět"
|
||||||
|
_gallery:
|
||||||
|
my: "Moje galerie"
|
||||||
_email:
|
_email:
|
||||||
_follow:
|
_follow:
|
||||||
title: "Máte nového následovníka"
|
title: "Máte nového následovníka"
|
||||||
|
_plugin:
|
||||||
|
install: "Instalovat plugin"
|
||||||
|
manage: "Správce pluginů"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "Vytvořit backup"
|
||||||
|
loadFile: "Načíst ze souboru"
|
||||||
|
save: "Uložit změny"
|
||||||
|
_registry:
|
||||||
|
scope: "Rozsah"
|
||||||
|
key: "Klíč"
|
||||||
|
keys: "Klíče"
|
||||||
|
domain: "Doména"
|
||||||
|
createKey: "Vytvořit klíč"
|
||||||
|
_aboutMisskey:
|
||||||
|
allContributors: "Všichni přispěvatelé"
|
||||||
|
source: "Zdrojový kód"
|
||||||
_mfm:
|
_mfm:
|
||||||
mention: "Zmínění"
|
mention: "Zmínění"
|
||||||
|
hashtag: "Hashtag"
|
||||||
|
link: "Odkaz"
|
||||||
|
bold: "Tučně"
|
||||||
quote: "Citovat"
|
quote: "Citovat"
|
||||||
emoji: "Vlastní emoji"
|
emoji: "Vlastní emoji"
|
||||||
search: "Vyhledávání"
|
search: "Vyhledávání"
|
||||||
|
flip: "Otočit"
|
||||||
|
tada: "Animace (tadá)"
|
||||||
|
blur: "Rozmazání"
|
||||||
|
font: "Font"
|
||||||
|
rainbow: "Duha"
|
||||||
|
_channel:
|
||||||
|
featured: "Trendy"
|
||||||
|
_menuDisplay:
|
||||||
|
top: "Nahoru"
|
||||||
|
hide: "Skrýt"
|
||||||
_theme:
|
_theme:
|
||||||
|
install: "Nainstalovat vzhled"
|
||||||
|
manage: "Správa vzhledů"
|
||||||
|
code: "Kód vzhledu"
|
||||||
description: "Popis"
|
description: "Popis"
|
||||||
|
installedThemes: "Nainstalované vzhledy"
|
||||||
|
constant: "Konstanta"
|
||||||
|
defaultValue: "Výchozí hodnota"
|
||||||
|
color: "Barva"
|
||||||
|
key: "Klíč"
|
||||||
|
func: "Funkce "
|
||||||
keys:
|
keys:
|
||||||
|
shadow: "Stín"
|
||||||
|
header: "Nadpis"
|
||||||
|
link: "Odkaz"
|
||||||
|
hashtag: "Hashtag"
|
||||||
mention: "Zmínění"
|
mention: "Zmínění"
|
||||||
renote: "Přeposlat"
|
renote: "Přeposlat"
|
||||||
|
divider: "Dělící čára"
|
||||||
_sfx:
|
_sfx:
|
||||||
note: "Poznámky"
|
note: "Poznámky"
|
||||||
notification: "Oznámení"
|
notification: "Oznámení"
|
||||||
chat: "Zprávy"
|
chat: "Zprávy"
|
||||||
|
_ago:
|
||||||
|
future: "Budoucí"
|
||||||
|
justNow: "Teď"
|
||||||
|
_time:
|
||||||
|
second: "Sekund"
|
||||||
|
minute: "Minut"
|
||||||
|
hour: "Hodin"
|
||||||
|
_2fa:
|
||||||
|
registerDevice: "Přidat zařízení"
|
||||||
|
registerKey: "Přidat bezpečnostní klíč"
|
||||||
|
_weekday:
|
||||||
|
sunday: "Neděle"
|
||||||
|
monday: "Pondělí"
|
||||||
|
tuesday: "Úterý"
|
||||||
|
wednesday: "Středa"
|
||||||
|
thursday: "Čtvrtek"
|
||||||
|
friday: "Pátek"
|
||||||
|
saturday: "Sobota"
|
||||||
_widgets:
|
_widgets:
|
||||||
notifications: "Oznámení"
|
notifications: "Oznámení"
|
||||||
timeline: "Časová osa"
|
timeline: "Časová osa"
|
||||||
|
calendar: "Kalendář"
|
||||||
|
trends: "Trendy"
|
||||||
|
clock: "Hodiny"
|
||||||
|
rss: "RSS čtečka"
|
||||||
activity: "Aktivita"
|
activity: "Aktivita"
|
||||||
|
photos: "Fotky"
|
||||||
|
digitalClock: "Digitální hodiny"
|
||||||
federation: "Federace"
|
federation: "Federace"
|
||||||
|
slideshow: "Prezentace"
|
||||||
|
button: "Tlačítko"
|
||||||
|
onlineUsers: "Online uživatelé"
|
||||||
jobQueue: "Fronta úloh"
|
jobQueue: "Fronta úloh"
|
||||||
|
aiscript: "AiScript conzole"
|
||||||
|
aichan: "Ai"
|
||||||
_cw:
|
_cw:
|
||||||
|
hide: "Skrýt"
|
||||||
show: "Zobrazit více"
|
show: "Zobrazit více"
|
||||||
|
_poll:
|
||||||
|
noMore: "Více už přidat nemůžete"
|
||||||
|
infinite: "Nikdy"
|
||||||
|
deadlineDate: "Datum ukončení"
|
||||||
|
deadlineTime: "Hodin"
|
||||||
|
duration: "Trvání"
|
||||||
_visibility:
|
_visibility:
|
||||||
home: "Domů"
|
home: "Domů"
|
||||||
followers: "Sledující"
|
followers: "Sledující"
|
||||||
|
_postForm:
|
||||||
|
_placeholders:
|
||||||
|
f: "Čekám, až něco napíšete..."
|
||||||
_profile:
|
_profile:
|
||||||
name: "Jméno"
|
name: "Jméno"
|
||||||
username: "Uživatelské jméno"
|
username: "Uživatelské jméno"
|
||||||
|
description: "O mně"
|
||||||
|
youCanIncludeHashtags: "V popisku o Vás můžete použít i hastagy."
|
||||||
|
metadata: "Doplňující informace"
|
||||||
|
metadataContent: "Obsah"
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
|
allNotes: "Všechny poznámky"
|
||||||
followingList: "Sledovaní"
|
followingList: "Sledovaní"
|
||||||
muteList: "Ztlumit"
|
muteList: "Ztlumit"
|
||||||
blockingList: "Zablokovat"
|
blockingList: "Zablokovat"
|
||||||
userLists: "Seznamy"
|
userLists: "Seznamy"
|
||||||
_charts:
|
_charts:
|
||||||
federation: "Federace"
|
federation: "Federace"
|
||||||
|
apRequest: "Požadavek"
|
||||||
|
usersTotal: "Celkem uživatelů"
|
||||||
|
activeUsers: "Aktivní uživatelé"
|
||||||
|
notesTotal: "Celkový počet poznámek"
|
||||||
_timelines:
|
_timelines:
|
||||||
home: "Domů"
|
home: "Domů"
|
||||||
|
global: "Globální"
|
||||||
_pages:
|
_pages:
|
||||||
|
newPage: "Vytvořit novou stránku"
|
||||||
|
editPage: "Upravit stránku"
|
||||||
|
created: "Stránka byla úspěšně vytvořena"
|
||||||
|
updated: "Stránka byla úspěšně aktualizována"
|
||||||
|
deleted: "Stránka byla úspěšně smazána"
|
||||||
|
pageSetting: "Nastavení stránky"
|
||||||
|
invalidNameText: "Ujistěte se že jméno stránky je vyplněno"
|
||||||
|
contents: "Obsah"
|
||||||
|
fontSerif: "Serif"
|
||||||
|
fontSansSerif: "Sans Serif"
|
||||||
|
chooseBlock: "Přidat blok"
|
||||||
|
selectType: "Vyberte typ"
|
||||||
|
contentBlocks: "Obsah"
|
||||||
|
inputBlocks: "Vstup"
|
||||||
|
specialBlocks: "Speciální"
|
||||||
blocks:
|
blocks:
|
||||||
|
text: "Text"
|
||||||
|
textarea: "Textové pole"
|
||||||
|
section: "Sekce"
|
||||||
image: "Obrázky"
|
image: "Obrázky"
|
||||||
|
button: "Tlačítko"
|
||||||
|
if: "Pokud"
|
||||||
|
_if:
|
||||||
|
variable: "Proměnná"
|
||||||
|
_post:
|
||||||
|
text: "Obsah"
|
||||||
|
canvasId: "Canvas ID"
|
||||||
|
_textInput:
|
||||||
|
name: "Jméno proměnné"
|
||||||
|
text: "Titulek"
|
||||||
|
default: "Výchozí hodnota"
|
||||||
|
_textareaInput:
|
||||||
|
name: "Jméno proměnné"
|
||||||
|
text: "Titulek"
|
||||||
|
default: "Výchozí hodnota"
|
||||||
|
_numberInput:
|
||||||
|
name: "Jméno proměnné"
|
||||||
|
text: "Titulek"
|
||||||
|
default: "Výchozí hodnota"
|
||||||
|
canvas: "Canvas"
|
||||||
|
_canvas:
|
||||||
|
id: "Canvas ID"
|
||||||
|
width: "Šířka"
|
||||||
|
height: "Výška"
|
||||||
|
_switch:
|
||||||
|
name: "Jméno proměnné"
|
||||||
|
text: "Titulek"
|
||||||
|
default: "Výchozí hodnota"
|
||||||
|
_counter:
|
||||||
|
name: "Jméno proměnné"
|
||||||
|
text: "Titulek"
|
||||||
|
inc: "Krok"
|
||||||
|
_button:
|
||||||
|
text: "Titulek"
|
||||||
|
colored: "Barevné"
|
||||||
|
_action:
|
||||||
|
_dialog:
|
||||||
|
content: "Obsah"
|
||||||
|
_radioButton:
|
||||||
|
name: "Jméno proměnné"
|
||||||
|
default: "Výchozí hodnota"
|
||||||
script:
|
script:
|
||||||
categories:
|
categories:
|
||||||
list: "Seznamy"
|
list: "Seznamy"
|
||||||
blocks:
|
blocks:
|
||||||
|
text: "Text"
|
||||||
|
_strLen:
|
||||||
|
arg1: "Text"
|
||||||
|
_strPick:
|
||||||
|
arg1: "Text"
|
||||||
|
_strReplace:
|
||||||
|
arg1: "Text"
|
||||||
|
_strReverse:
|
||||||
|
arg1: "Text"
|
||||||
_join:
|
_join:
|
||||||
arg1: "Seznamy"
|
arg1: "Seznamy"
|
||||||
|
_subtract:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_multiply:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_divide:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_mod:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
round: "Zaokrouhlení zlomku"
|
||||||
|
_round:
|
||||||
|
arg1: "Číselná hodnota"
|
||||||
|
eq: "A a B jsou stejné"
|
||||||
|
_eq:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
notEq: "A a B jsou odlišné"
|
||||||
|
_notEq:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_and:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_or:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_lt:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_gt:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_ltEq:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
_gtEq:
|
||||||
|
arg1: "A"
|
||||||
|
arg2: "B"
|
||||||
|
if: "Větev"
|
||||||
|
_if:
|
||||||
|
arg1: "Pokud"
|
||||||
|
arg2: "Potom"
|
||||||
|
arg3: "Nebo"
|
||||||
|
random: "Náhodně"
|
||||||
|
_random:
|
||||||
|
arg1: "Pravděpodobnost"
|
||||||
|
rannum: "Náhodné číslo"
|
||||||
|
_rannum:
|
||||||
|
arg1: "Minimální hodnota"
|
||||||
|
arg2: "Maximální hodnota"
|
||||||
_randomPick:
|
_randomPick:
|
||||||
arg1: "Seznamy"
|
arg1: "Seznamy"
|
||||||
|
_dailyRandom:
|
||||||
|
arg1: "Pravděpodobnost"
|
||||||
|
_dailyRannum:
|
||||||
|
arg1: "Minimální hodnota"
|
||||||
|
arg2: "Maximální hodnota"
|
||||||
_dailyRandomPick:
|
_dailyRandomPick:
|
||||||
arg1: "Seznamy"
|
arg1: "Seznamy"
|
||||||
|
_seedRandom:
|
||||||
|
arg2: "Pravděpodobnost"
|
||||||
|
_seedRannum:
|
||||||
|
arg2: "Minimální hodnota"
|
||||||
|
arg3: "Maximální hodnota"
|
||||||
_seedRandomPick:
|
_seedRandomPick:
|
||||||
arg2: "Seznamy"
|
arg2: "Seznamy"
|
||||||
_pick:
|
_pick:
|
||||||
arg1: "Seznamy"
|
arg1: "Seznamy"
|
||||||
_listLen:
|
_listLen:
|
||||||
arg1: "Seznamy"
|
arg1: "Seznamy"
|
||||||
|
number: "Číselná hodnota"
|
||||||
|
_stringToNumber:
|
||||||
|
arg1: "Text"
|
||||||
|
_numberToString:
|
||||||
|
arg1: "Číselná hodnota"
|
||||||
|
_splitStrByLine:
|
||||||
|
arg1: "Text"
|
||||||
types:
|
types:
|
||||||
|
string: "Text"
|
||||||
|
number: "Číselná hodnota"
|
||||||
array: "Seznamy"
|
array: "Seznamy"
|
||||||
_notification:
|
_notification:
|
||||||
youWereFollowed: "Máte nového následovníka"
|
youWereFollowed: "Máte nového následovníka"
|
||||||
youWereInvitedToGroup: "Pozvat do skupiny"
|
youWereInvitedToGroup: "Pozvat do skupiny"
|
||||||
_types:
|
_types:
|
||||||
|
all: "Vše"
|
||||||
follow: "Sledovaní"
|
follow: "Sledovaní"
|
||||||
mention: "Zmínění"
|
mention: "Zmínění"
|
||||||
|
reply: "Odpovědi"
|
||||||
renote: "Přeposlat"
|
renote: "Přeposlat"
|
||||||
quote: "Citovat"
|
quote: "Citovat"
|
||||||
reaction: "Reakce"
|
reaction: "Reakce"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Nach einem Benutzer suchen"
|
|||||||
reply: "Antworten"
|
reply: "Antworten"
|
||||||
loadMore: "Mehr laden"
|
loadMore: "Mehr laden"
|
||||||
showMore: "Mehr anzeigen"
|
showMore: "Mehr anzeigen"
|
||||||
|
showLess: "Schließen"
|
||||||
youGotNewFollower: "ist dir gefolgt"
|
youGotNewFollower: "ist dir gefolgt"
|
||||||
receiveFollowRequest: "Follow-Anfrage erhalten"
|
receiveFollowRequest: "Follow-Anfrage erhalten"
|
||||||
followRequestAccepted: "Follow-Anfrage akzeptiert"
|
followRequestAccepted: "Follow-Anfrage akzeptiert"
|
||||||
@ -561,6 +562,7 @@ author: "Autor"
|
|||||||
leaveConfirm: "Es gibt unspeicherte Änderungen. Möchtest du diese verwerfen?"
|
leaveConfirm: "Es gibt unspeicherte Änderungen. Möchtest du diese verwerfen?"
|
||||||
manage: "Verwaltung"
|
manage: "Verwaltung"
|
||||||
plugins: "Plugins"
|
plugins: "Plugins"
|
||||||
|
preferencesBackups: "Einstellungsbackups"
|
||||||
deck: "Deck"
|
deck: "Deck"
|
||||||
undeck: "Deck verlassen"
|
undeck: "Deck verlassen"
|
||||||
useBlurEffectForModal: "Weichzeichnungseffekt für Modals verwenden"
|
useBlurEffectForModal: "Weichzeichnungseffekt für Modals verwenden"
|
||||||
@ -862,7 +864,7 @@ requireAdminForView: "Melde dich mit einem Administratorkonto an, um dies einzus
|
|||||||
isSystemAccount: "Ein Benutzerkonto, dass durch das System erstellt und automatisch kontrolliert wird."
|
isSystemAccount: "Ein Benutzerkonto, dass durch das System erstellt und automatisch kontrolliert wird."
|
||||||
typeToConfirm: "Bitte gib zur Bestätigung {x} ein"
|
typeToConfirm: "Bitte gib zur Bestätigung {x} ein"
|
||||||
deleteAccount: "Benutzerkonto löschen"
|
deleteAccount: "Benutzerkonto löschen"
|
||||||
document: "Dokument"
|
document: "Dokumentation"
|
||||||
numberOfPageCache: "Seitencachegröße"
|
numberOfPageCache: "Seitencachegröße"
|
||||||
numberOfPageCacheDescription: "Das Erhöhen dieses Caches führt zu einer angenehmerern Benutzererfahrung, erhöht aber Serverlast und Arbeitsspeicherauslastung."
|
numberOfPageCacheDescription: "Das Erhöhen dieses Caches führt zu einer angenehmerern Benutzererfahrung, erhöht aber Serverlast und Arbeitsspeicherauslastung."
|
||||||
logoutConfirm: "Wirklich abmelden?"
|
logoutConfirm: "Wirklich abmelden?"
|
||||||
@ -941,6 +943,24 @@ _plugin:
|
|||||||
install: "Plugins installieren"
|
install: "Plugins installieren"
|
||||||
installWarn: "Installiere bitte nur vertrauenswürdige Plugins."
|
installWarn: "Installiere bitte nur vertrauenswürdige Plugins."
|
||||||
manage: "Plugins verwalten"
|
manage: "Plugins verwalten"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "Erstellte Backups"
|
||||||
|
saveNew: "Neu erstellen"
|
||||||
|
loadFile: "Von Datei laden"
|
||||||
|
apply: "Auf dieses Gerät anwenden"
|
||||||
|
save: "Speichern"
|
||||||
|
inputName: "Gib einen Namen für dieses Backup ein"
|
||||||
|
cannotSave: "Speichern fehlgeschlagen"
|
||||||
|
nameAlreadyExists: "Es existiert bereits ein Backup unter dem Namen \"{name}\". Bitte gib einen anderen Namen ein."
|
||||||
|
applyConfirm: "Wirklich das Backup \"{name}\" auf dieses Gerät anwenden? Bestehende Einstellungen darauf werden überschrieben."
|
||||||
|
saveConfirm: "Als {name} speichern?"
|
||||||
|
deleteConfirm: "Das Backup {name} löschen?"
|
||||||
|
renameConfirm: "Soll dieses Backup von \"{old}\" zu \"{new}\" umbenannt werden?"
|
||||||
|
noBackups: "Keine Backups existieren. Backups können über \"Neu erstellen\" erstelllt werden."
|
||||||
|
createdAt: "Erstellt am: {date} {time}"
|
||||||
|
updatedAt: "Aktualisiert am: {date} {time}"
|
||||||
|
cannotLoad: "Laden fehlgeschlagen"
|
||||||
|
invalidFile: "Ungültiges Dateiformat."
|
||||||
_registry:
|
_registry:
|
||||||
scope: "Scope"
|
scope: "Scope"
|
||||||
key: "Schlüssel"
|
key: "Schlüssel"
|
||||||
@ -1024,6 +1044,8 @@ _mfm:
|
|||||||
sparkleDescription: "Verleiht Inhalt einen glitzernden Partikeleffekt."
|
sparkleDescription: "Verleiht Inhalt einen glitzernden Partikeleffekt."
|
||||||
rotate: "Drehen"
|
rotate: "Drehen"
|
||||||
rotateDescription: "Dreht den Inhalt um einen angegebenen Winkel."
|
rotateDescription: "Dreht den Inhalt um einen angegebenen Winkel."
|
||||||
|
plain: "Schlicht"
|
||||||
|
plainDescription: "Deaktiviert jegliche MFM-Syntax, die sich innerhalb dieses MFM-Effekts befindet."
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "Nie anzeigen"
|
none: "Nie anzeigen"
|
||||||
remote: "Für Benutzer fremder Instanzen anzeigen"
|
remote: "Für Benutzer fremder Instanzen anzeigen"
|
||||||
@ -1257,6 +1279,7 @@ _widgets:
|
|||||||
activity: "Aktivität"
|
activity: "Aktivität"
|
||||||
photos: "Fotos"
|
photos: "Fotos"
|
||||||
digitalClock: "Digitaluhr"
|
digitalClock: "Digitaluhr"
|
||||||
|
unixClock: "UNIX-Uhr"
|
||||||
federation: "Föderation"
|
federation: "Föderation"
|
||||||
instanceCloud: "Instanzwolke"
|
instanceCloud: "Instanzwolke"
|
||||||
postForm: "Notizfenster"
|
postForm: "Notizfenster"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Search for a user"
|
|||||||
reply: "Reply"
|
reply: "Reply"
|
||||||
loadMore: "Load more"
|
loadMore: "Load more"
|
||||||
showMore: "Show more"
|
showMore: "Show more"
|
||||||
|
showLess: "Close"
|
||||||
youGotNewFollower: "followed you"
|
youGotNewFollower: "followed you"
|
||||||
receiveFollowRequest: "Follow request received"
|
receiveFollowRequest: "Follow request received"
|
||||||
followRequestAccepted: "Follow request accepted"
|
followRequestAccepted: "Follow request accepted"
|
||||||
@ -561,6 +562,7 @@ author: "Author"
|
|||||||
leaveConfirm: "There are unsaved changes. Do you want to discard them?"
|
leaveConfirm: "There are unsaved changes. Do you want to discard them?"
|
||||||
manage: "Management"
|
manage: "Management"
|
||||||
plugins: "Plugins"
|
plugins: "Plugins"
|
||||||
|
preferencesBackups: "Preference backups"
|
||||||
deck: "Deck"
|
deck: "Deck"
|
||||||
undeck: "Leave Deck"
|
undeck: "Leave Deck"
|
||||||
useBlurEffectForModal: "Use blur effect for modals"
|
useBlurEffectForModal: "Use blur effect for modals"
|
||||||
@ -862,7 +864,7 @@ requireAdminForView: "You must log in with an administrator account to view this
|
|||||||
isSystemAccount: "An account created and automatically operated by the system."
|
isSystemAccount: "An account created and automatically operated by the system."
|
||||||
typeToConfirm: "Please enter {x} to confirm"
|
typeToConfirm: "Please enter {x} to confirm"
|
||||||
deleteAccount: "Delete account"
|
deleteAccount: "Delete account"
|
||||||
document: "Document"
|
document: "Documentation"
|
||||||
numberOfPageCache: "Number of cached pages"
|
numberOfPageCache: "Number of cached pages"
|
||||||
numberOfPageCacheDescription: "Increasing this number will improve convenience for users but cause more server load as well as more memory to be used."
|
numberOfPageCacheDescription: "Increasing this number will improve convenience for users but cause more server load as well as more memory to be used."
|
||||||
logoutConfirm: "Really log out?"
|
logoutConfirm: "Really log out?"
|
||||||
@ -941,6 +943,24 @@ _plugin:
|
|||||||
install: "Install plugins"
|
install: "Install plugins"
|
||||||
installWarn: "Please do not install untrustworthy plugins."
|
installWarn: "Please do not install untrustworthy plugins."
|
||||||
manage: "Manage plugins"
|
manage: "Manage plugins"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "Created backups"
|
||||||
|
saveNew: "Save new backup"
|
||||||
|
loadFile: "Load from file"
|
||||||
|
apply: "Apply to this device"
|
||||||
|
save: "Save changes"
|
||||||
|
inputName: "Please enter a name for this backup"
|
||||||
|
cannotSave: "Saving failed"
|
||||||
|
nameAlreadyExists: "A backup called \"{name}\" already exists. Please enter a different name."
|
||||||
|
applyConfirm: "Do you really want to apply the \"{name}\" backup to this device? Existing settings of this device will be overwritten."
|
||||||
|
saveConfirm: "Save backup as {name}?"
|
||||||
|
deleteConfirm: "Delete the {name} backup?"
|
||||||
|
renameConfirm: "Rename this backup from \"{old}\" to \"{new}\"?"
|
||||||
|
noBackups: "No backups exist. You may backup your client settings on this server by using \"Create new backup\"."
|
||||||
|
createdAt: "Created at: {date} {time}"
|
||||||
|
updatedAt: "Updated at: {date} {time}"
|
||||||
|
cannotLoad: "Loading failed"
|
||||||
|
invalidFile: "Invalid file format"
|
||||||
_registry:
|
_registry:
|
||||||
scope: "Scope"
|
scope: "Scope"
|
||||||
key: "Key"
|
key: "Key"
|
||||||
@ -1024,6 +1044,8 @@ _mfm:
|
|||||||
sparkleDescription: "Gives content a sparkling particle effect."
|
sparkleDescription: "Gives content a sparkling particle effect."
|
||||||
rotate: "Rotate"
|
rotate: "Rotate"
|
||||||
rotateDescription: "Turns content by a specified angle."
|
rotateDescription: "Turns content by a specified angle."
|
||||||
|
plain: "Plain"
|
||||||
|
plainDescription: "Deactivates the effects of all MFM contained within this MFM effect."
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "Never show"
|
none: "Never show"
|
||||||
remote: "Show for remote users"
|
remote: "Show for remote users"
|
||||||
@ -1257,6 +1279,7 @@ _widgets:
|
|||||||
activity: "Activity"
|
activity: "Activity"
|
||||||
photos: "Photos"
|
photos: "Photos"
|
||||||
digitalClock: "Digital clock"
|
digitalClock: "Digital clock"
|
||||||
|
unixClock: "UNIX clock"
|
||||||
federation: "Federation"
|
federation: "Federation"
|
||||||
instanceCloud: "Instance cloud"
|
instanceCloud: "Instance cloud"
|
||||||
postForm: "Posting form"
|
postForm: "Posting form"
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
---
|
---
|
||||||
_lang_: "Español"
|
_lang_: "Español"
|
||||||
headlineMisskey: "Red conectada por notas"
|
headlineMisskey: "Red conectada por notas"
|
||||||
introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentralizado de código abierto.\nEscribe \"notas\" para compartir lo que te ocurre ahora o para contar sobre ti a todos 📡\nCon la función de \"reacciones\", puedes también añadir una reacción rápida a las notas de todos 👍\nExplora un nuevo mundo 🚀"
|
introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentralizado de código abierto.\nEscribe \"notas\" para compartir lo que te ocurre ahora o para contar sobre ti a todos 📡\nCon la función de \"reacciones\", puedes también añadir una reacción rápida a las notas de todos 👍\n¡Exploremos juntos un nuevo mundo! 🚀"
|
||||||
monthAndDay: "{day}/{month}"
|
monthAndDay: "{day}/{month}"
|
||||||
search: "Buscar"
|
search: "Buscar"
|
||||||
notifications: "Notificaciones"
|
notifications: "Notificaciones"
|
||||||
username: "Nombre de usuario"
|
username: "Nombre de usuario"
|
||||||
password: "Contraseña"
|
password: "Contraseña"
|
||||||
forgotPassword: "Olvidé mi Contraseña"
|
forgotPassword: "Olvidé mi Contraseña"
|
||||||
fetchingAsApObject: "Buscando en el fediverso"
|
fetchingAsApObject: "Recuperando desde el Fediverso..."
|
||||||
ok: "OK"
|
ok: "OK"
|
||||||
gotIt: "Entendido"
|
gotIt: "¡Lo tengo!"
|
||||||
cancel: "Cancelar"
|
cancel: "Cancelar"
|
||||||
enterUsername: "Introduce el nombre de usuario"
|
enterUsername: "Introduce el nombre de usuario"
|
||||||
renotedBy: "Renotado por {user}"
|
renotedBy: "Renotado por {user}"
|
||||||
@ -22,36 +22,37 @@ basicSettings: "Configuración Básica"
|
|||||||
otherSettings: "Configuración avanzada"
|
otherSettings: "Configuración avanzada"
|
||||||
openInWindow: "Abrir en una ventana"
|
openInWindow: "Abrir en una ventana"
|
||||||
profile: "Perfil"
|
profile: "Perfil"
|
||||||
timeline: "Linea de tiempo"
|
timeline: "Línea de tiempo"
|
||||||
noAccountDescription: "Este usuario no tiene una descripción"
|
noAccountDescription: "Este usuario no ha escrito su biografía aún"
|
||||||
login: "Iniciar sesión"
|
login: "Iniciar sesión"
|
||||||
loggingIn: "Iniciando sesión"
|
loggingIn: "Iniciando sesión"
|
||||||
logout: "Cerrar sesión"
|
logout: "Cerrar sesión"
|
||||||
signup: "Registrarse"
|
signup: "Registrarse"
|
||||||
uploading: "Cargando"
|
uploading: "Cargando..."
|
||||||
save: "Guardar"
|
save: "Guardar"
|
||||||
users: "Usuarios"
|
users: "Usuarios"
|
||||||
addUser: "Agregar usuario"
|
addUser: "Agregar usuario"
|
||||||
favorite: "Favorito"
|
favorite: "Añadir a favoritos"
|
||||||
favorites: "Favoritos"
|
favorites: "Favoritos"
|
||||||
unfavorite: "Quitar de favoritos"
|
unfavorite: "Quitar de favoritos"
|
||||||
favorited: "Añadido a favoritos"
|
favorited: "Añadido a favoritos."
|
||||||
alreadyFavorited: "Ya había sido añadido a favoritos"
|
alreadyFavorited: "Ya había sido añadido a favoritos"
|
||||||
cantFavorite: "No fue añadido a favoritos"
|
cantFavorite: "No se puede añadir a favoritos."
|
||||||
pin: "Fijar"
|
pin: "Fijar al perfil"
|
||||||
unpin: "Desfijar"
|
unpin: "Desfijar"
|
||||||
copyContent: "Copiar contenido"
|
copyContent: "Copiar contenido"
|
||||||
copyLink: "Copiar enlace"
|
copyLink: "Copiar enlace"
|
||||||
delete: "Borrar"
|
delete: "Borrar"
|
||||||
deleteAndEdit: "Borrar y editar"
|
deleteAndEdit: "Borrar y editar"
|
||||||
deleteAndEditConfirm: "¿Quieres borrar y editar este nota? Las reacciones, renotes, respuestas y todo desaparecerán."
|
deleteAndEditConfirm: "¿Estás seguro de que quieres borrar esta nota y editarla? Perderás todas las reacciones, renotas y respuestas."
|
||||||
addToList: "Agregar a lista"
|
addToList: "Agregar a lista"
|
||||||
sendMessage: "Énviar mensaje"
|
sendMessage: "Enviar un mensaje"
|
||||||
copyUsername: "Copiar nombre de usuario"
|
copyUsername: "Copiar nombre de usuario"
|
||||||
searchUser: "Búsqueda de usuarios"
|
searchUser: "Buscar un usuario"
|
||||||
reply: "Responder"
|
reply: "Responder"
|
||||||
loadMore: "Ver más"
|
loadMore: "Ver más"
|
||||||
showMore: "Ver más"
|
showMore: "Ver más"
|
||||||
|
showLess: "Cerrar"
|
||||||
youGotNewFollower: "te ha seguido"
|
youGotNewFollower: "te ha seguido"
|
||||||
receiveFollowRequest: "Recibiste una solicitud de seguimiento"
|
receiveFollowRequest: "Recibiste una solicitud de seguimiento"
|
||||||
followRequestAccepted: "La solicitud de seguimiento fue aceptada"
|
followRequestAccepted: "La solicitud de seguimiento fue aceptada"
|
||||||
@ -87,11 +88,11 @@ enterListName: "Ingrese nombre de lista"
|
|||||||
privacy: "Privacidad"
|
privacy: "Privacidad"
|
||||||
makeFollowManuallyApprove: "Aprobar manualmente las solicitudes de seguimiento"
|
makeFollowManuallyApprove: "Aprobar manualmente las solicitudes de seguimiento"
|
||||||
defaultNoteVisibility: "Visibilidad por defecto"
|
defaultNoteVisibility: "Visibilidad por defecto"
|
||||||
follow: "Sigue"
|
follow: "Seguir"
|
||||||
followRequest: "Solicitud de seguimiento"
|
followRequest: "Enviar solicitud de seguimiento"
|
||||||
followRequests: "Solicitudes de seguimiento"
|
followRequests: "Solicitudes de seguimiento"
|
||||||
unfollow: "Dejar de seguir"
|
unfollow: "Dejar de seguir"
|
||||||
followRequestPending: "Solicitudes de seguimiento pendientes"
|
followRequestPending: "Solicitudes de seguimiento pendiente"
|
||||||
enterEmoji: "Ingresar emojis"
|
enterEmoji: "Ingresar emojis"
|
||||||
renote: "Renotar"
|
renote: "Renotar"
|
||||||
unrenote: "Quitar renota"
|
unrenote: "Quitar renota"
|
||||||
@ -100,7 +101,7 @@ cantRenote: "No se puede renotar este post"
|
|||||||
cantReRenote: "No se puede renotar una renota"
|
cantReRenote: "No se puede renotar una renota"
|
||||||
quote: "Citar"
|
quote: "Citar"
|
||||||
pinnedNote: "Nota fijada"
|
pinnedNote: "Nota fijada"
|
||||||
pinned: "Fijar"
|
pinned: "Fijar al perfil"
|
||||||
you: "Tú"
|
you: "Tú"
|
||||||
clickToShow: "Click para ver"
|
clickToShow: "Click para ver"
|
||||||
sensitive: "Marcado como sensible"
|
sensitive: "Marcado como sensible"
|
||||||
@ -203,6 +204,7 @@ done: "Terminado"
|
|||||||
processing: "Procesando"
|
processing: "Procesando"
|
||||||
preview: "Vista previa"
|
preview: "Vista previa"
|
||||||
default: "Predeterminado"
|
default: "Predeterminado"
|
||||||
|
defaultValueIs: "Predeterminado"
|
||||||
noCustomEmojis: "No hay emojis personalizados"
|
noCustomEmojis: "No hay emojis personalizados"
|
||||||
noJobs: "No hay trabajos"
|
noJobs: "No hay trabajos"
|
||||||
federating: "Federando"
|
federating: "Federando"
|
||||||
@ -381,6 +383,7 @@ administrator: "Administrador"
|
|||||||
token: "Token"
|
token: "Token"
|
||||||
twoStepAuthentication: "Autenticación de dos factores"
|
twoStepAuthentication: "Autenticación de dos factores"
|
||||||
moderator: "Moderador"
|
moderator: "Moderador"
|
||||||
|
moderation: "Moderación"
|
||||||
nUsersMentioned: "{n} usuarios mencionados"
|
nUsersMentioned: "{n} usuarios mencionados"
|
||||||
securityKey: "Clave de seguridad"
|
securityKey: "Clave de seguridad"
|
||||||
securityKeyName: "Nombre de la Clave"
|
securityKeyName: "Nombre de la Clave"
|
||||||
@ -559,6 +562,7 @@ author: "Autor"
|
|||||||
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?"
|
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?"
|
||||||
manage: "Administrar"
|
manage: "Administrar"
|
||||||
plugins: "Plugins"
|
plugins: "Plugins"
|
||||||
|
preferencesBackups: "Respaldo de preferencias"
|
||||||
deck: "Deck"
|
deck: "Deck"
|
||||||
undeck: "Quitar deck"
|
undeck: "Quitar deck"
|
||||||
useBlurEffectForModal: "Usar efecto borroso en modales"
|
useBlurEffectForModal: "Usar efecto borroso en modales"
|
||||||
@ -854,6 +858,9 @@ noEmailServerWarning: "No se ha configurado un servidor de correo electrónico."
|
|||||||
thereIsUnresolvedAbuseReportWarning: "Hay reportes sin resolver"
|
thereIsUnresolvedAbuseReportWarning: "Hay reportes sin resolver"
|
||||||
recommended: "Recomendado"
|
recommended: "Recomendado"
|
||||||
check: "Verificar"
|
check: "Verificar"
|
||||||
|
driveCapOverrideLabel: "Cambiar la capacidad de la unidad para este usuario"
|
||||||
|
driveCapOverrideCaption: "Restablecer la capacidad a su predeterminado ingresando un valor de 0 o menos"
|
||||||
|
requireAdminForView: "Necesitas iniciar sesión como administrador para ver esto."
|
||||||
isSystemAccount: "Cuenta creada y operada automáticamente por el sistema"
|
isSystemAccount: "Cuenta creada y operada automáticamente por el sistema"
|
||||||
typeToConfirm: "Ingrese {x} para confirmar"
|
typeToConfirm: "Ingrese {x} para confirmar"
|
||||||
deleteAccount: "Borrar cuenta"
|
deleteAccount: "Borrar cuenta"
|
||||||
@ -861,11 +868,39 @@ document: "Documento"
|
|||||||
numberOfPageCache: "Cantidad de páginas cacheadas"
|
numberOfPageCache: "Cantidad de páginas cacheadas"
|
||||||
numberOfPageCacheDescription: "Al aumentar el número mejora la conveniencia pero tambien puede aumentar la carga y la memoria a usarse"
|
numberOfPageCacheDescription: "Al aumentar el número mejora la conveniencia pero tambien puede aumentar la carga y la memoria a usarse"
|
||||||
logoutConfirm: "¿Cerrar sesión?"
|
logoutConfirm: "¿Cerrar sesión?"
|
||||||
|
lastActiveDate: "Utilizado por última vez el"
|
||||||
|
statusbar: "Barra de estado"
|
||||||
|
pleaseSelect: "Selecciona una opción"
|
||||||
reverse: "Echar de un capirotazo"
|
reverse: "Echar de un capirotazo"
|
||||||
colored: "Color"
|
colored: "Color"
|
||||||
|
refreshInterval: "Intervalo de actualización"
|
||||||
label: "Etiqueta"
|
label: "Etiqueta"
|
||||||
|
type: "Tipo"
|
||||||
|
speed: "Velocidad"
|
||||||
|
slow: "Lento"
|
||||||
|
fast: "Rápido"
|
||||||
|
sensitiveMediaDetection: "Detección de contenido NSFW"
|
||||||
localOnly: "Solo local"
|
localOnly: "Solo local"
|
||||||
|
remoteOnly: "Sólo remoto"
|
||||||
|
failedToUpload: "La subida falló"
|
||||||
|
cannotUploadBecauseInappropriate: "Este archivo no se puede subir debido a que algunas partes han sido detectadas comoNSFW."
|
||||||
|
cannotUploadBecauseNoFreeSpace: "La subida falló debido a falta de espacio libre en la unidad del usuario."
|
||||||
|
beta: "Beta"
|
||||||
|
enableAutoSensitive: "Marcar automáticamente contenido NSFW"
|
||||||
|
enableAutoSensitiveDescription: "Permite la detección y marcado automático de contenido NSFW usando 'Machine Learning' cuando sea posible. Incluso si esta opción está desactivada, puede ser activado para toda la instancia."
|
||||||
|
activeEmailValidationDescription: "Habilita la validación estricta de direcciones de correo electrónico, lo cual incluye la revisión de direcciones desechables y si se puede comunicar con éstas. Cuando está deshabilitado, sólo el formato de la dirección es validado."
|
||||||
|
navbar: "Barra de navegación"
|
||||||
|
shuffle: "Aleatorio"
|
||||||
account: "Cuentas"
|
account: "Cuentas"
|
||||||
|
move: "Mover"
|
||||||
|
_sensitiveMediaDetection:
|
||||||
|
description: "Reduce el esfuerzo de la moderación el el servidor a través del reconocimiento automático de contenido NSFW usando 'Machine Learning'. Esto puede incrementar ligeramente la carga en el servidor."
|
||||||
|
sensitivity: "Sensibilidad de detección"
|
||||||
|
sensitivityDescription: "Reducir la sensibilidad puede acarrear a varios falsos positivos, mientras que incrementarla puede reducir las detecciones (falsos negativos)."
|
||||||
|
setSensitiveFlagAutomatically: "Marcar como NSFW"
|
||||||
|
setSensitiveFlagAutomaticallyDescription: "Los resultados de la detección interna pueden ser retenidos incluso si la opción está desactivada."
|
||||||
|
analyzeVideos: "Habilitar el análisis de videos"
|
||||||
|
analyzeVideosDescription: "Analizar videos en adición a las imágenes. Esto puede incrementar ligeramente la carga del servidor."
|
||||||
_emailUnavailable:
|
_emailUnavailable:
|
||||||
used: "Ya fue usado"
|
used: "Ya fue usado"
|
||||||
format: "Formato no válido."
|
format: "Formato no válido."
|
||||||
@ -908,6 +943,24 @@ _plugin:
|
|||||||
install: "Instalar plugins"
|
install: "Instalar plugins"
|
||||||
installWarn: "Por favor no instale plugins que no son de confianza"
|
installWarn: "Por favor no instale plugins que no son de confianza"
|
||||||
manage: "Gestionar plugins"
|
manage: "Gestionar plugins"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "Respaldos creados"
|
||||||
|
saveNew: "Guardar nuevo respaldo"
|
||||||
|
loadFile: "Cargar desde archivo"
|
||||||
|
apply: "Aplicar a este dispositivo"
|
||||||
|
save: "Guardar cambios"
|
||||||
|
inputName: "Por favor, ingresa un nombre para este respaldo"
|
||||||
|
cannotSave: "Fallo al guardar"
|
||||||
|
nameAlreadyExists: "Un respaldo llamado \"{name}\" ya existe. Por favor ingresa un nombre diferente"
|
||||||
|
applyConfirm: "¿Realmente quieres aplicar los cambios desde el archivo \"{name}\" a este dispositivo? Las configuraciones existentes serán sobreescritas. "
|
||||||
|
saveConfirm: "¿Guardar respaldo como \"{name}\"?"
|
||||||
|
deleteConfirm: "¿Borrar el respaldo \"{name}\"?"
|
||||||
|
renameConfirm: "¿Renombrar este respaldo de \"{old}\" a \"{new}\"?"
|
||||||
|
noBackups: "No existen respaldos. Deberás respaldar las configuraciones del cliente en este servidor usando \"Crear nuevo respaldo\""
|
||||||
|
createdAt: "Creado: {date} {time}"
|
||||||
|
updatedAt: "Actualizado: {date} {time}"
|
||||||
|
cannotLoad: "La carga falló"
|
||||||
|
invalidFile: "Formato de archivo inválido"
|
||||||
_registry:
|
_registry:
|
||||||
scope: "Alcance"
|
scope: "Alcance"
|
||||||
key: "Clave"
|
key: "Clave"
|
||||||
@ -991,6 +1044,8 @@ _mfm:
|
|||||||
sparkleDescription: "Aplica un efecto de partículas parpadeantes"
|
sparkleDescription: "Aplica un efecto de partículas parpadeantes"
|
||||||
rotate: "Rotar"
|
rotate: "Rotar"
|
||||||
rotateDescription: "Rota el contenido a un ángulo especificado."
|
rotateDescription: "Rota el contenido a un ángulo especificado."
|
||||||
|
plain: "Plano"
|
||||||
|
plainDescription: "Desactiva los efectos de todo el contenido MFM con este efecto MFM."
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "No mostrar"
|
none: "No mostrar"
|
||||||
remote: "Mostrar a usuarios remotos"
|
remote: "Mostrar a usuarios remotos"
|
||||||
@ -1220,9 +1275,11 @@ _widgets:
|
|||||||
trends: "Tendencias"
|
trends: "Tendencias"
|
||||||
clock: "Reloj"
|
clock: "Reloj"
|
||||||
rss: "Lector RSS"
|
rss: "Lector RSS"
|
||||||
|
rssTicker: "Ticker-RSS"
|
||||||
activity: "Actividad"
|
activity: "Actividad"
|
||||||
photos: "Fotos"
|
photos: "Fotos"
|
||||||
digitalClock: "Reloj digital"
|
digitalClock: "Reloj digital"
|
||||||
|
unixClock: "Reloj UNIX"
|
||||||
federation: "Federación"
|
federation: "Federación"
|
||||||
instanceCloud: "Nube de palabras de la instancia"
|
instanceCloud: "Nube de palabras de la instancia"
|
||||||
postForm: "Formulario"
|
postForm: "Formulario"
|
||||||
@ -1663,6 +1720,7 @@ _deck:
|
|||||||
alwaysShowMainColumn: "Siempre mostrar la columna principal"
|
alwaysShowMainColumn: "Siempre mostrar la columna principal"
|
||||||
columnAlign: "Alinear columnas"
|
columnAlign: "Alinear columnas"
|
||||||
addColumn: "Agregar columna"
|
addColumn: "Agregar columna"
|
||||||
|
configureColumn: "Ajustes de columna"
|
||||||
swapLeft: "Mover a la izquierda"
|
swapLeft: "Mover a la izquierda"
|
||||||
swapRight: "Mover a la derecha"
|
swapRight: "Mover a la derecha"
|
||||||
swapUp: "Mover arriba"
|
swapUp: "Mover arriba"
|
||||||
@ -1670,6 +1728,11 @@ _deck:
|
|||||||
stackLeft: "Apilar a la izquierda"
|
stackLeft: "Apilar a la izquierda"
|
||||||
popRight: "Sacar a la derecha"
|
popRight: "Sacar a la derecha"
|
||||||
profile: "Perfil"
|
profile: "Perfil"
|
||||||
|
newProfile: "Nuevo perfil"
|
||||||
|
deleteProfile: "Eliminar perfil"
|
||||||
|
introduction: "¡Crea la interfaz perfecta para tí organizando las columnas libremente!"
|
||||||
|
introduction2: "Presiona en la + de la derecha de la pantalla para añadir nuevas columnas donde quieras."
|
||||||
|
widgetsIntroduction: "Por favor selecciona \"Editar Widgets\" en el menú columna y agrega un widget."
|
||||||
_columns:
|
_columns:
|
||||||
main: "Principal"
|
main: "Principal"
|
||||||
widgets: "Widgets"
|
widgets: "Widgets"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Chercher un·e utilisateur·rice"
|
|||||||
reply: "Répondre"
|
reply: "Répondre"
|
||||||
loadMore: "Afficher plus …"
|
loadMore: "Afficher plus …"
|
||||||
showMore: "Afficher plus …"
|
showMore: "Afficher plus …"
|
||||||
|
showLess: "Fermer"
|
||||||
youGotNewFollower: "Vous suit"
|
youGotNewFollower: "Vous suit"
|
||||||
receiveFollowRequest: "Demande d’abonnement reçue"
|
receiveFollowRequest: "Demande d’abonnement reçue"
|
||||||
followRequestAccepted: "La demande d’abonnement a été acceptée"
|
followRequestAccepted: "La demande d’abonnement a été acceptée"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Cari pengguna"
|
|||||||
reply: "Balas"
|
reply: "Balas"
|
||||||
loadMore: "Selebihnya"
|
loadMore: "Selebihnya"
|
||||||
showMore: "Selebihnya"
|
showMore: "Selebihnya"
|
||||||
|
showLess: "Tutup"
|
||||||
youGotNewFollower: "Mengikuti kamu"
|
youGotNewFollower: "Mengikuti kamu"
|
||||||
receiveFollowRequest: "Ingin mengikuti kamu"
|
receiveFollowRequest: "Ingin mengikuti kamu"
|
||||||
followRequestAccepted: "Permintaan mengikuti telah disetujui"
|
followRequestAccepted: "Permintaan mengikuti telah disetujui"
|
||||||
|
@ -37,6 +37,7 @@ const languages = [
|
|||||||
'sk-SK',
|
'sk-SK',
|
||||||
'ug-CN',
|
'ug-CN',
|
||||||
'uk-UA',
|
'uk-UA',
|
||||||
|
'vi-VN',
|
||||||
'zh-CN',
|
'zh-CN',
|
||||||
'zh-TW',
|
'zh-TW',
|
||||||
];
|
];
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Cerca utente"
|
|||||||
reply: "Rispondi"
|
reply: "Rispondi"
|
||||||
loadMore: "Mostra di più"
|
loadMore: "Mostra di più"
|
||||||
showMore: "Mostra di più"
|
showMore: "Mostra di più"
|
||||||
|
showLess: "Chiudi"
|
||||||
youGotNewFollower: "Ha iniziato a seguirti"
|
youGotNewFollower: "Ha iniziato a seguirti"
|
||||||
receiveFollowRequest: "Hai ricevuto una richiesta di follow."
|
receiveFollowRequest: "Hai ricevuto una richiesta di follow."
|
||||||
followRequestAccepted: "Richiesta di follow accettata"
|
followRequestAccepted: "Richiesta di follow accettata"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "ユーザーを検索"
|
|||||||
reply: "返信"
|
reply: "返信"
|
||||||
loadMore: "もっと見る"
|
loadMore: "もっと見る"
|
||||||
showMore: "もっと見る"
|
showMore: "もっと見る"
|
||||||
|
showLess: "閉じる"
|
||||||
youGotNewFollower: "フォローされました"
|
youGotNewFollower: "フォローされました"
|
||||||
receiveFollowRequest: "フォローリクエストされました"
|
receiveFollowRequest: "フォローリクエストされました"
|
||||||
followRequestAccepted: "フォローが承認されました"
|
followRequestAccepted: "フォローが承認されました"
|
||||||
@ -106,6 +107,7 @@ clickToShow: "クリックして表示"
|
|||||||
sensitive: "閲覧注意"
|
sensitive: "閲覧注意"
|
||||||
add: "追加"
|
add: "追加"
|
||||||
reaction: "リアクション"
|
reaction: "リアクション"
|
||||||
|
reactWithRenote: "ついでにRenoteする"
|
||||||
reactionSetting: "ピッカーに表示するリアクション"
|
reactionSetting: "ピッカーに表示するリアクション"
|
||||||
reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。"
|
reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。"
|
||||||
rememberNoteVisibility: "公開範囲を記憶する"
|
rememberNoteVisibility: "公開範囲を記憶する"
|
||||||
@ -562,6 +564,7 @@ author: "作者"
|
|||||||
leaveConfirm: "未保存の変更があります。破棄しますか?"
|
leaveConfirm: "未保存の変更があります。破棄しますか?"
|
||||||
manage: "管理"
|
manage: "管理"
|
||||||
plugins: "プラグイン"
|
plugins: "プラグイン"
|
||||||
|
preferencesBackups: "設定のバックアップ"
|
||||||
deck: "デッキ"
|
deck: "デッキ"
|
||||||
undeck: "デッキ解除"
|
undeck: "デッキ解除"
|
||||||
useBlurEffectForModal: "モーダルにぼかし効果を使用"
|
useBlurEffectForModal: "モーダルにぼかし効果を使用"
|
||||||
@ -893,6 +896,9 @@ shuffle: "シャッフル"
|
|||||||
account: "アカウント"
|
account: "アカウント"
|
||||||
move: "移動"
|
move: "移動"
|
||||||
deckOld: "旧デッキ"
|
deckOld: "旧デッキ"
|
||||||
|
pakuruConfirm: "パクりますか?"
|
||||||
|
pakuru: "パクる"
|
||||||
|
duplicateEmoji: "同じ名前の絵文字が存在します。インポートしますか?"
|
||||||
|
|
||||||
_sensitiveMediaDetection:
|
_sensitiveMediaDetection:
|
||||||
description: "機械学習を使って自動でセンシティブなメディアを検出し、モデレーションに役立てることができます。サーバーの負荷が少し増えます。"
|
description: "機械学習を使って自動でセンシティブなメディアを検出し、モデレーションに役立てることができます。サーバーの負荷が少し増えます。"
|
||||||
@ -954,6 +960,25 @@ _plugin:
|
|||||||
installWarn: "信頼できないプラグインはインストールしないでください。"
|
installWarn: "信頼できないプラグインはインストールしないでください。"
|
||||||
manage: "プラグインの管理"
|
manage: "プラグインの管理"
|
||||||
|
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "作成したバックアップ"
|
||||||
|
saveNew: "新規保存"
|
||||||
|
loadFile: "ファイルを読み込み"
|
||||||
|
apply: "このデバイスに適用"
|
||||||
|
save: "上書き保存"
|
||||||
|
inputName: "バックアップ名を入力"
|
||||||
|
cannotSave: "保存できません"
|
||||||
|
nameAlreadyExists: "バックアップ名「{name}」は既に存在します。違う名前を指定してください。"
|
||||||
|
applyConfirm: "バックアップ「{name}」を現在のデバイスに適用しますか?現在のデバイス設定は失われます。"
|
||||||
|
saveConfirm: "{name}に上書き保存しますか?"
|
||||||
|
deleteConfirm: "{name}を削除しますか?"
|
||||||
|
renameConfirm: "「{old}」を「{new}」に変更しますか?"
|
||||||
|
noBackups: "バックアップはありません。「新規保存」で現在のクライアント設定をサーバーに保存できます。"
|
||||||
|
createdAt: "作成日時: {date} {time}"
|
||||||
|
updatedAt: "更新日時: {date} {time}"
|
||||||
|
cannotLoad: "読み込みできません"
|
||||||
|
invalidFile: "ファイル形式が違います。"
|
||||||
|
|
||||||
_registry:
|
_registry:
|
||||||
scope: "スコープ"
|
scope: "スコープ"
|
||||||
key: "キー"
|
key: "キー"
|
||||||
@ -1297,6 +1322,7 @@ _widgets:
|
|||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
photos: "フォト"
|
photos: "フォト"
|
||||||
digitalClock: "デジタル時計"
|
digitalClock: "デジタル時計"
|
||||||
|
unixClock: "UNIX時計"
|
||||||
federation: "連合"
|
federation: "連合"
|
||||||
instanceCloud: "インスタンスクラウド"
|
instanceCloud: "インスタンスクラウド"
|
||||||
postForm: "投稿フォーム"
|
postForm: "投稿フォーム"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "ユーザーを検索"
|
|||||||
reply: "返事"
|
reply: "返事"
|
||||||
loadMore: "まだまだあるで!"
|
loadMore: "まだまだあるで!"
|
||||||
showMore: "まだまだあるで!"
|
showMore: "まだまだあるで!"
|
||||||
|
showLess: "閉じる"
|
||||||
youGotNewFollower: "フォローされたで"
|
youGotNewFollower: "フォローされたで"
|
||||||
receiveFollowRequest: "フォローリクエストされたで"
|
receiveFollowRequest: "フォローリクエストされたで"
|
||||||
followRequestAccepted: "フォローが承認されたで"
|
followRequestAccepted: "フォローが承認されたで"
|
||||||
@ -203,6 +204,7 @@ done: "でけた"
|
|||||||
processing: "処理しとる"
|
processing: "処理しとる"
|
||||||
preview: "プレビュー"
|
preview: "プレビュー"
|
||||||
default: "デフォルト"
|
default: "デフォルト"
|
||||||
|
defaultValueIs: "デフォルト"
|
||||||
noCustomEmojis: "絵文字はあらへん"
|
noCustomEmojis: "絵文字はあらへん"
|
||||||
noJobs: "ジョブはあらへん"
|
noJobs: "ジョブはあらへん"
|
||||||
federating: "連合しとる"
|
federating: "連合しとる"
|
||||||
@ -317,6 +319,8 @@ monthX: "{month}月"
|
|||||||
yearX: "{year}年"
|
yearX: "{year}年"
|
||||||
pages: "ページ"
|
pages: "ページ"
|
||||||
integration: "連携"
|
integration: "連携"
|
||||||
|
connectService: "つなげるで"
|
||||||
|
disconnectService: "切るで"
|
||||||
enableLocalTimeline: "ローカルタイムラインを使えるようにする"
|
enableLocalTimeline: "ローカルタイムラインを使えるようにする"
|
||||||
enableGlobalTimeline: "グローバルタイムラインを使えるようにする"
|
enableGlobalTimeline: "グローバルタイムラインを使えるようにする"
|
||||||
disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。"
|
disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。"
|
||||||
@ -328,10 +332,13 @@ driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのド
|
|||||||
inMb: "メガバイト単位"
|
inMb: "メガバイト単位"
|
||||||
iconUrl: "アイコン画像のURL"
|
iconUrl: "アイコン画像のURL"
|
||||||
bannerUrl: "バナー画像のURL"
|
bannerUrl: "バナー画像のURL"
|
||||||
|
backgroundImageUrl: "背景画像のURL"
|
||||||
basicInfo: "基本情報"
|
basicInfo: "基本情報"
|
||||||
pinnedUsers: "ピン留めしたユーザー"
|
pinnedUsers: "ピン留めしたユーザー"
|
||||||
pinnedUsersDescription: "「みつける」ページとかにピン留めしたいユーザーをここに書けばええんやで。他ん人との名前は改行で区切ればええんやで。"
|
pinnedUsersDescription: "「みつける」ページとかにピン留めしたいユーザーをここに書けばええんやで。他ん人との名前は改行で区切ればええんやで。"
|
||||||
pinnedPages: "ピン留めページ"
|
pinnedPages: "ピン留めページ"
|
||||||
|
pinnedPagesDescription: "インスタンスのいっちゃん上にピン留めしたいページのパスを改行で区切って記述してな"
|
||||||
|
pinnedClipId: "ピン留めするクリップのID"
|
||||||
pinnedNotes: "ピン留めされとるノート"
|
pinnedNotes: "ピン留めされとるノート"
|
||||||
hcaptcha: "hCaptcha(キャプチャ)"
|
hcaptcha: "hCaptcha(キャプチャ)"
|
||||||
enableHcaptcha: "hCaptcha(キャプチャ)をつけとく"
|
enableHcaptcha: "hCaptcha(キャプチャ)をつけとく"
|
||||||
@ -376,6 +383,7 @@ administrator: "管理者"
|
|||||||
token: "トークン"
|
token: "トークン"
|
||||||
twoStepAuthentication: "二段階認証"
|
twoStepAuthentication: "二段階認証"
|
||||||
moderator: "モデレーター"
|
moderator: "モデレーター"
|
||||||
|
moderation: "モデレーション"
|
||||||
nUsersMentioned: "{n}人が投稿"
|
nUsersMentioned: "{n}人が投稿"
|
||||||
securityKey: "セキュリティキー"
|
securityKey: "セキュリティキー"
|
||||||
securityKeyName: "キーの名前"
|
securityKeyName: "キーの名前"
|
||||||
@ -435,13 +443,17 @@ strongPassword: "ええ感じのパスワード"
|
|||||||
passwordMatched: "よし!一致や!"
|
passwordMatched: "よし!一致や!"
|
||||||
passwordNotMatched: "一致しとらんで?"
|
passwordNotMatched: "一致しとらんで?"
|
||||||
signinWith: "{x}でログイン"
|
signinWith: "{x}でログイン"
|
||||||
|
signinFailed: "ログインできんかったで。もっかいユーザー名とパスワードを確認してみてな。"
|
||||||
|
tapSecurityKey: "セキュリティキーにタッチしてな"
|
||||||
or: "それか"
|
or: "それか"
|
||||||
language: "言語"
|
language: "言語"
|
||||||
uiLanguage: "UIの表示言語"
|
uiLanguage: "UIの表示言語"
|
||||||
groupInvited: "グループに招待されとるで"
|
groupInvited: "グループに招待されとるで"
|
||||||
aboutX: "{x}について"
|
aboutX: "{x}について"
|
||||||
useOsNativeEmojis: "OSネイティブの絵文字を使う"
|
useOsNativeEmojis: "OSネイティブの絵文字を使う"
|
||||||
|
disableDrawer: "メニューをドロワーで表示せぇへん"
|
||||||
youHaveNoGroups: "グループがあらへんねぇ。"
|
youHaveNoGroups: "グループがあらへんねぇ。"
|
||||||
|
joinOrCreateGroup: "既存のグループに招待してもらうか、新しくグループ作ってからやってな"
|
||||||
noHistory: "履歴はあらへんねぇ。"
|
noHistory: "履歴はあらへんねぇ。"
|
||||||
signinHistory: "ログイン履歴"
|
signinHistory: "ログイン履歴"
|
||||||
disableAnimatedMfm: "動きがやかましいMFMを止める"
|
disableAnimatedMfm: "動きがやかましいMFMを止める"
|
||||||
@ -450,6 +462,7 @@ category: "カテゴリ"
|
|||||||
tags: "タグ"
|
tags: "タグ"
|
||||||
docSource: "このドキュメントのソース"
|
docSource: "このドキュメントのソース"
|
||||||
createAccount: "アカウントを作成"
|
createAccount: "アカウントを作成"
|
||||||
|
existingAccount: "既存のアカウント"
|
||||||
regenerate: "再生成"
|
regenerate: "再生成"
|
||||||
fontSize: "フォントサイズ"
|
fontSize: "フォントサイズ"
|
||||||
noFollowRequests: "フォロー申請はあらへんで"
|
noFollowRequests: "フォロー申請はあらへんで"
|
||||||
@ -473,10 +486,15 @@ useObjectStorage: "オブジェクトストレージを使う"
|
|||||||
objectStorageBaseUrl: "Base URL"
|
objectStorageBaseUrl: "Base URL"
|
||||||
objectStorageBaseUrlDesc: "参照に使うにURLやで。CDNやProxyを使用してるんならそのURL、S3: 'https://<bucket>.s3.amazonaws.com'、GCSとかなら: 'https://storage.googleapis.com/<bucket>'。"
|
objectStorageBaseUrlDesc: "参照に使うにURLやで。CDNやProxyを使用してるんならそのURL、S3: 'https://<bucket>.s3.amazonaws.com'、GCSとかなら: 'https://storage.googleapis.com/<bucket>'。"
|
||||||
objectStorageBucket: "Bucket"
|
objectStorageBucket: "Bucket"
|
||||||
|
objectStorageBucketDesc: "使ってるサービスのbucket名を選んでな"
|
||||||
objectStoragePrefix: "Prefix"
|
objectStoragePrefix: "Prefix"
|
||||||
|
objectStoragePrefixDesc: "このprefixのディレクトリ下に格納されるで"
|
||||||
objectStorageEndpoint: "Endpoint"
|
objectStorageEndpoint: "Endpoint"
|
||||||
|
objectStorageEndpointDesc: "S3のときは空、それ以外は各サービスのendpointを指定してなー。'<host>'ってやるか'<host>:<port>'みたいに指定するんやで。"
|
||||||
objectStorageRegion: "Region"
|
objectStorageRegion: "Region"
|
||||||
|
objectStorageRegionDesc: "'xx-east-1'みたいなregionを指定したってやー。使ってるサービスにregionの概念がないときは、空か'us-east-1'にするんやで。"
|
||||||
objectStorageUseSSL: "SSLを使う"
|
objectStorageUseSSL: "SSLを使う"
|
||||||
|
objectStorageUseSSLDesc: "API接続にhttpsを使わん場合はオフにするんやで"
|
||||||
objectStorageUseProxy: "Proxyを使う"
|
objectStorageUseProxy: "Proxyを使う"
|
||||||
objectStorageUseProxyDesc: "API接続にproxy使わんのやったら切ってくれへん?"
|
objectStorageUseProxyDesc: "API接続にproxy使わんのやったら切ってくれへん?"
|
||||||
objectStorageSetPublicRead: "アップロードした時に'public-read'を設定してや"
|
objectStorageSetPublicRead: "アップロードした時に'public-read'を設定してや"
|
||||||
@ -517,29 +535,52 @@ removeAllFollowing: "フォローを全解除"
|
|||||||
removeAllFollowingDescription: "{host}からのフォローをすべて解除するで。そのインスタンスが消えて無くなった時とかには便利な機能やで。"
|
removeAllFollowingDescription: "{host}からのフォローをすべて解除するで。そのインスタンスが消えて無くなった時とかには便利な機能やで。"
|
||||||
userSuspended: "このユーザーは...凍結されとる。"
|
userSuspended: "このユーザーは...凍結されとる。"
|
||||||
userSilenced: "このユーザーは...サイレンスされとる。"
|
userSilenced: "このユーザーは...サイレンスされとる。"
|
||||||
|
yourAccountSuspendedTitle: "あんたのアカウント凍結されとるで"
|
||||||
|
yourAccountSuspendedDescription: "あんたのアカウントは、サーバーの利用規約に違反したとかの理由で、凍結されとるで。細かいことは管理者までお問い合わせたってなー。絶対に新しいアカウント作ったらあかんで。絶対やで。"
|
||||||
|
menu: "メニュー"
|
||||||
divider: "分割線"
|
divider: "分割線"
|
||||||
|
addItem: "項目を追加"
|
||||||
relays: "リレー"
|
relays: "リレー"
|
||||||
addRelay: "リレーの追加"
|
addRelay: "リレーの追加"
|
||||||
inboxUrl: "inboxのURL"
|
inboxUrl: "inboxのURL"
|
||||||
addedRelays: "追加済みのリレー"
|
addedRelays: "追加済みのリレー"
|
||||||
|
serviceworkerInfo: "プッシュ通知をするんなら有効にせなあかんで。"
|
||||||
|
deletedNote: "消された投稿"
|
||||||
|
invisibleNote: "非公開の投稿"
|
||||||
|
enableInfiniteScroll: "自動でもっと見る"
|
||||||
|
visibility: "公開範囲"
|
||||||
poll: "アンケート"
|
poll: "アンケート"
|
||||||
|
useCw: "内容を隠す"
|
||||||
enablePlayer: "プレイヤーを開く"
|
enablePlayer: "プレイヤーを開く"
|
||||||
disablePlayer: "プレイヤーを閉じる"
|
disablePlayer: "プレイヤーを閉じる"
|
||||||
expandTweet: "ツイートを展開する"
|
expandTweet: "ツイートを展開する"
|
||||||
themeEditor: "テーマエディター"
|
themeEditor: "テーマエディター"
|
||||||
description: "説明"
|
description: "説明"
|
||||||
|
describeFile: "キャプションを付ける"
|
||||||
|
enterFileDescription: "キャプションを入力"
|
||||||
author: "作者"
|
author: "作者"
|
||||||
leaveConfirm: "未保存の変更があるで!ほかしてええか?"
|
leaveConfirm: "未保存の変更があるで!ほかしてええか?"
|
||||||
manage: "管理"
|
manage: "管理"
|
||||||
plugins: "プラグイン"
|
plugins: "プラグイン"
|
||||||
deck: "デッキ"
|
deck: "デッキ"
|
||||||
undeck: "デッキ解除"
|
undeck: "デッキ解除"
|
||||||
|
useBlurEffectForModal: "モーダルにぼかし効果を使用"
|
||||||
|
useFullReactionPicker: "フル機能にリアクションピッカーを使用"
|
||||||
width: "幅"
|
width: "幅"
|
||||||
height: "高さ"
|
height: "高さ"
|
||||||
large: "大"
|
large: "大"
|
||||||
medium: "中"
|
medium: "中"
|
||||||
small: "小"
|
small: "小"
|
||||||
|
generateAccessToken: "アクセストークンの発行"
|
||||||
|
permission: "権限"
|
||||||
|
enableAll: "全部使えるようにする"
|
||||||
|
disableAll: "全部使えへんようにする"
|
||||||
|
tokenRequested: "アカウントへのアクセス許可"
|
||||||
|
pluginTokenRequestedDescription: "このプラグインはここで設定した権限を使えるようになるで。"
|
||||||
|
notificationType: "通知の種類"
|
||||||
edit: "編集"
|
edit: "編集"
|
||||||
|
useStarForReactionFallback: "リアクションがようわからん場合、★を使う"
|
||||||
|
emailServer: "メールサーバー"
|
||||||
enableEmail: "メール配信を受け取る"
|
enableEmail: "メール配信を受け取る"
|
||||||
emailConfigInfo: "メールアドレスの確認とかパスワードリセットの時に使うで"
|
emailConfigInfo: "メールアドレスの確認とかパスワードリセットの時に使うで"
|
||||||
email: "メール"
|
email: "メール"
|
||||||
@ -551,8 +592,12 @@ smtpUser: "ユーザー名"
|
|||||||
smtpPass: "パスワード"
|
smtpPass: "パスワード"
|
||||||
emptyToDisableSmtpAuth: "ユーザー名とパスワードになんも入れんかったら、SMTP認証を無効化するで"
|
emptyToDisableSmtpAuth: "ユーザー名とパスワードになんも入れんかったら、SMTP認証を無効化するで"
|
||||||
smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
|
smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
|
||||||
|
smtpSecureInfo: "STARTTLS使っとる時はオフにするで。"
|
||||||
testEmail: "配信テスト"
|
testEmail: "配信テスト"
|
||||||
wordMute: "ワードミュート"
|
wordMute: "ワードミュート"
|
||||||
|
regexpError: "正規表現エラー"
|
||||||
|
regexpErrorDescription: "{tab}ワードミュートの{line}行目の正規表現にエラーが出てきたで:"
|
||||||
|
instanceMute: "インスタンスミュート"
|
||||||
userSaysSomething: "{name}が何か言ったようやで"
|
userSaysSomething: "{name}が何か言ったようやで"
|
||||||
makeActive: "使うで"
|
makeActive: "使うで"
|
||||||
display: "表示"
|
display: "表示"
|
||||||
@ -567,13 +612,24 @@ create: "作成"
|
|||||||
notificationSetting: "通知設定"
|
notificationSetting: "通知設定"
|
||||||
notificationSettingDesc: "表示する通知の種類えらんでや。"
|
notificationSettingDesc: "表示する通知の種類えらんでや。"
|
||||||
useGlobalSetting: "グローバル設定を使ってや"
|
useGlobalSetting: "グローバル設定を使ってや"
|
||||||
|
useGlobalSettingDesc: "オンにすると、アカウントの通知設定が使われるで。オフにすると、別々に設定できるようになるで。"
|
||||||
other: "その他"
|
other: "その他"
|
||||||
regenerateLoginToken: "ログイントークンを再生成"
|
regenerateLoginToken: "ログイントークンを再生成"
|
||||||
|
regenerateLoginTokenDescription: "ログインに使われる内部トークンをもっかい作るで。いつもならこれをやる必要はないで。もっかい作ると、全部のデバイスでログアウトされるで気ぃつけてなー。"
|
||||||
|
setMultipleBySeparatingWithSpace: "スペースで区切って複数設定できるで。"
|
||||||
|
fileIdOrUrl: "ファイルIDかURL"
|
||||||
behavior: "動作"
|
behavior: "動作"
|
||||||
sample: "サンプル"
|
sample: "サンプル"
|
||||||
abuseReports: "通報"
|
abuseReports: "通報"
|
||||||
reportAbuse: "通報"
|
reportAbuse: "通報"
|
||||||
reportAbuseOf: "{name}を通報する"
|
reportAbuseOf: "{name}を通報する"
|
||||||
|
fillAbuseReportDescription: "細かい通報理由を書いてなー。対象ノートがある時はそのURLも書いといてなー。"
|
||||||
|
abuseReported: "無事内容が送信されたみたいやで。おおきに〜。"
|
||||||
|
reporter: "通報者"
|
||||||
|
reporteeOrigin: "通報先"
|
||||||
|
reporterOrigin: "通報元"
|
||||||
|
forwardReport: "リモートインスタンスに通報を転送するで"
|
||||||
|
forwardReportIsAnonymous: "リモートインスタンスからはあんたの情報は見れへんくって、匿名のシステムアカウントとして表示されるで。"
|
||||||
send: "送信"
|
send: "送信"
|
||||||
abuseMarkAsResolved: "対応したで"
|
abuseMarkAsResolved: "対応したで"
|
||||||
openInNewTab: "新しいタブで開く"
|
openInNewTab: "新しいタブで開く"
|
||||||
@ -587,22 +643,57 @@ system: "システム"
|
|||||||
switchUi: "UI切り替え"
|
switchUi: "UI切り替え"
|
||||||
desktop: "デスクトップ"
|
desktop: "デスクトップ"
|
||||||
clip: "クリップ"
|
clip: "クリップ"
|
||||||
|
createNew: "新しく作るで"
|
||||||
|
optional: "任意"
|
||||||
|
createNewClip: "新しいクリップを作るで"
|
||||||
|
unclip: "クリップ解除するで"
|
||||||
|
confirmToUnclipAlreadyClippedNote: "このノートはすでにクリップ「{name}」に含まれとるで。ノートをこのクリップから除外したる?"
|
||||||
|
public: "パブリック"
|
||||||
|
i18nInfo: "Misskeyは有志によっていろんな言語に翻訳されとるで。{link}で翻訳に協力したってやー。"
|
||||||
|
manageAccessTokens: "アクセストークンの管理"
|
||||||
|
accountInfo: "アカウント情報"
|
||||||
|
notesCount: "ノートの数やで"
|
||||||
|
repliesCount: "返信した数やで"
|
||||||
|
renotesCount: "Renoteした数やで"
|
||||||
|
repliedCount: "返信された数やで"
|
||||||
|
renotedCount: "Renoteされた数やで"
|
||||||
|
followingCount: "フォロー数やで"
|
||||||
|
followersCount: "フォロワー数やで"
|
||||||
|
sentReactionsCount: "リアクションした数やで"
|
||||||
receivedReactionsCount: "リアクションされた数"
|
receivedReactionsCount: "リアクションされた数"
|
||||||
pollVotesCount: "アンケートに投票した数"
|
pollVotesCount: "アンケートに投票した数"
|
||||||
pollVotedCount: "アンケートに投票された数"
|
pollVotedCount: "アンケートに投票された数"
|
||||||
yes: "はい"
|
yes: "はい"
|
||||||
no: "いいえ"
|
no: "いいえ"
|
||||||
driveFilesCount: "ドライブのファイル数"
|
driveFilesCount: "ドライブのファイル数"
|
||||||
|
driveUsage: "ドライブ使用量やで"
|
||||||
|
noCrawle: "クローラーによるインデックスを拒否するで"
|
||||||
|
noCrawleDescription: "検索エンジンにあんたのユーザーページ、ノート、Pagesとかのコンテンツを登録(インデックス)せぇへんように頼むで。"
|
||||||
|
lockedAccountInfo: "フォローを承認制にしとっても、ノートの公開範囲を「フォロワー」にせぇへん限り、誰でもあんたのノートを見れるで。"
|
||||||
|
alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にするで"
|
||||||
|
loadRawImages: "添付画像のサムネイルをオリジナル画質にするで"
|
||||||
|
disableShowingAnimatedImages: "アニメーション画像を再生しやへんで"
|
||||||
|
verificationEmailSent: "無事確認のメールを送れたで。メールに書いてあるリンクにアクセスして、設定を完了してなー。"
|
||||||
|
notSet: "未設定"
|
||||||
emailVerified: "メールアドレスは確認されたで"
|
emailVerified: "メールアドレスは確認されたで"
|
||||||
|
noteFavoritesCount: "お気に入りノートの数やで"
|
||||||
pageLikesCount: "Pageにええやんと思った数"
|
pageLikesCount: "Pageにええやんと思った数"
|
||||||
pageLikedCount: "Pageにええやんと思ってくれた数"
|
pageLikedCount: "Pageにええやんと思ってくれた数"
|
||||||
|
contact: "連絡先"
|
||||||
|
useSystemFont: "システムのデフォルトのフォントを使うで"
|
||||||
clips: "クリップ"
|
clips: "クリップ"
|
||||||
|
experimentalFeatures: "実験的機能やで"
|
||||||
|
developer: "開発者やで"
|
||||||
|
makeExplorable: "アカウントを見つけやすくするで"
|
||||||
|
makeExplorableDescription: "オフにすると、「みつける」にアカウントが載らんくなるで。"
|
||||||
|
showGapBetweenNotesInTimeline: "タイムラインのノートを放して表示するで"
|
||||||
duplicate: "複製"
|
duplicate: "複製"
|
||||||
left: "左"
|
left: "左"
|
||||||
center: "中央"
|
center: "中央"
|
||||||
wide: "広い"
|
wide: "広い"
|
||||||
narrow: "狭い"
|
narrow: "狭い"
|
||||||
reloadToApplySetting: "設定はページリロード後に反映されるで。今リロードしとくか?"
|
reloadToApplySetting: "設定はページリロード後に反映されるで。今リロードしとくか?"
|
||||||
|
needReloadToApply: "反映には再起動せなあかんで"
|
||||||
showTitlebar: "タイトルバーを見せる"
|
showTitlebar: "タイトルバーを見せる"
|
||||||
clearCache: "キャッシュをほかす"
|
clearCache: "キャッシュをほかす"
|
||||||
onlineUsersCount: "{n}人が起きとるで"
|
onlineUsersCount: "{n}人が起きとるで"
|
||||||
@ -621,6 +712,7 @@ createdAt: "作成した日"
|
|||||||
updatedAt: "更新日時"
|
updatedAt: "更新日時"
|
||||||
saveConfirm: "保存するで?"
|
saveConfirm: "保存するで?"
|
||||||
deleteConfirm: "ホンマに削除するで?"
|
deleteConfirm: "ホンマに削除するで?"
|
||||||
|
invalidValue: "有効な値じゃないみたいやで。"
|
||||||
registry: "レジストリ"
|
registry: "レジストリ"
|
||||||
closeAccount: "アカウントを閉鎖する"
|
closeAccount: "アカウントを閉鎖する"
|
||||||
currentVersion: "現在のバージョン"
|
currentVersion: "現在のバージョン"
|
||||||
@ -634,6 +726,7 @@ editCode: "コードを編集"
|
|||||||
apply: "適用"
|
apply: "適用"
|
||||||
receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る"
|
receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る"
|
||||||
emailNotification: "メール通知"
|
emailNotification: "メール通知"
|
||||||
|
publish: "公開"
|
||||||
inChannelSearch: "チャンネル内検索"
|
inChannelSearch: "チャンネル内検索"
|
||||||
useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開くようにする"
|
useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開くようにする"
|
||||||
typingUsers: "{users}が今書きよるで"
|
typingUsers: "{users}が今書きよるで"
|
||||||
@ -642,23 +735,121 @@ showingPastTimeline: "過去のタイムラインを表示してるで"
|
|||||||
clear: "クリア"
|
clear: "クリア"
|
||||||
markAllAsRead: "もうみな読んでもうたわ"
|
markAllAsRead: "もうみな読んでもうたわ"
|
||||||
goBack: "戻る"
|
goBack: "戻る"
|
||||||
|
unlikeConfirm: "いいね解除するんか?"
|
||||||
|
fullView: "フルビュー"
|
||||||
|
quitFullView: "フルビュー解除"
|
||||||
|
addDescription: "説明を追加するで"
|
||||||
|
userPagePinTip: "個々のノートのメニューから「ピン留め」を選んどくと、ここにノートを表示しておけるで。"
|
||||||
|
notSpecifiedMentionWarning: "宛先に含まれてへんメンションがあるで"
|
||||||
info: "情報"
|
info: "情報"
|
||||||
|
userInfo: "ユーザー情報やで"
|
||||||
|
unknown: "不明"
|
||||||
|
onlineStatus: "オンライン状態"
|
||||||
|
hideOnlineStatus: "オンライン状態を隠すで"
|
||||||
|
hideOnlineStatusDescription: "オンライン状態を隠すと、検索とかの一部の機能で使いにくくなるかもしれんよ。"
|
||||||
|
online: "オンライン"
|
||||||
|
active: "アクティブ"
|
||||||
|
offline: "オフライン"
|
||||||
|
notRecommended: "あんま推奨しやんで"
|
||||||
|
botProtection: "Botプロテクション"
|
||||||
|
instanceBlocking: "インスタンスブロック"
|
||||||
|
selectAccount: "アカウントを選んでなー"
|
||||||
|
switchAccount: "アカウントを変えるで"
|
||||||
|
enabled: "有効"
|
||||||
|
disabled: "無効"
|
||||||
|
quickAction: "クイックアクション"
|
||||||
user: "ユーザー"
|
user: "ユーザー"
|
||||||
administration: "管理"
|
administration: "管理"
|
||||||
|
accounts: "アカウント"
|
||||||
|
switch: "切り替え"
|
||||||
|
noMaintainerInformationWarning: "管理者情報が設定されてへんで"
|
||||||
|
noBotProtectionWarning: "Botプロテクションが設定されてへんで。"
|
||||||
|
configure: "設定する"
|
||||||
|
postToGallery: "ギャラリーへ投稿"
|
||||||
|
gallery: "ギャラリー"
|
||||||
|
recentPosts: "最近の投稿"
|
||||||
|
popularPosts: "人気の投稿"
|
||||||
|
shareWithNote: "ノートで共有"
|
||||||
ads: "広告"
|
ads: "広告"
|
||||||
expiration: "期限"
|
expiration: "期限"
|
||||||
memo: "メモ"
|
memo: "メモ"
|
||||||
|
priority: "優先度"
|
||||||
high: "高い"
|
high: "高い"
|
||||||
middle: "中"
|
middle: "中"
|
||||||
low: "低い"
|
low: "低い"
|
||||||
|
emailNotConfiguredWarning: "メアドの設定がされてへんで。"
|
||||||
|
ratio: "比率"
|
||||||
|
previewNoteText: "本文を下見するで"
|
||||||
|
customCss: "カスタムCSS"
|
||||||
|
customCssWarn: "この設定は必ず知識のある人がやらなあかんで。あんま良くない設定をしたるとクライアントがちゃんと使えへんくなってくで。"
|
||||||
global: "グローバル"
|
global: "グローバル"
|
||||||
|
squareAvatars: "アイコンを四角形で表示するで"
|
||||||
sent: "送信"
|
sent: "送信"
|
||||||
|
received: "受信"
|
||||||
|
searchResult: "検索結果やで"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
troubleshooting: "トラブルシューティング"
|
||||||
|
useBlurEffect: "UIにぼかし効果を使うで"
|
||||||
|
learnMore: "詳しく"
|
||||||
|
misskeyUpdated: "Misskeyが更新されたで!\nモデレーターの人らに感謝せなあかんで"
|
||||||
|
whatIsNew: "更新情報を見るで"
|
||||||
|
translate: "翻訳"
|
||||||
|
translatedFrom: "{x}から翻訳するで"
|
||||||
|
accountDeletionInProgress: "アカウント削除しとるで待っとってなー"
|
||||||
|
usernameInfo: "サーバー上であんたのアカウントをあんたやと分かるようにするための名前やで。アルファベット(a~z, A~Z)、数字(0~9)、それとアンダーバー(_)が使って考えてな。この名前は後から変更することはできへんからちゃんと考えるんやで。"
|
||||||
|
aiChanMode: "藍モードやで"
|
||||||
|
keepCw: "CWを維持するで"
|
||||||
|
pubSub: "Pub/Subのアカウント"
|
||||||
|
lastCommunication: "直近の通信"
|
||||||
|
resolved: "解決したで"
|
||||||
|
unresolved: "まだ解決してないで"
|
||||||
|
breakFollow: "フォロワーを解除するで"
|
||||||
|
itsOn: "オンになっとるよ"
|
||||||
hide: "隠す"
|
hide: "隠す"
|
||||||
searchByGoogle: "探す"
|
searchByGoogle: "探す"
|
||||||
indefinitely: "無期限"
|
indefinitely: "無期限"
|
||||||
file: "ファイル"
|
file: "ファイル"
|
||||||
|
requireAdminForView: "これを見るには管理者アカウントでログインしとらなあかんで。"
|
||||||
|
isSystemAccount: "システムが自動で作成・管理しとるアカウントやで。"
|
||||||
|
typeToConfirm: "この操作をやるんなら {x} と入力してなー"
|
||||||
|
deleteAccount: "アカウント削除するで"
|
||||||
|
document: "ドキュメント"
|
||||||
|
numberOfPageCache: "ページキャッシュ数やで"
|
||||||
|
numberOfPageCacheDescription: "増やすと使いやすくなる、負荷とメモリ使用量が増えてくで。一長一短やな。"
|
||||||
|
logoutConfirm: "ログアウトしまっか?"
|
||||||
|
lastActiveDate: "最後に使った日時"
|
||||||
|
statusbar: "ステータスバー"
|
||||||
|
pleaseSelect: "選択したってやー"
|
||||||
|
reverse: "反転"
|
||||||
colored: "色付き"
|
colored: "色付き"
|
||||||
|
refreshInterval: "更新間隔"
|
||||||
|
label: "ラベル"
|
||||||
|
type: "タイプ"
|
||||||
|
speed: "速度"
|
||||||
|
slow: "遅い"
|
||||||
|
fast: "速い"
|
||||||
|
sensitiveMediaDetection: "センシティブなメディアの検出"
|
||||||
|
localOnly: "ローカルのみ"
|
||||||
|
remoteOnly: "リモートのみ"
|
||||||
|
failedToUpload: "アップロードに失敗したで"
|
||||||
|
cannotUploadBecauseInappropriate: "不適切な内容を含むかもしれへんって判定されたでアップロードできまへん。"
|
||||||
|
cannotUploadBecauseNoFreeSpace: "ドライブの空き容量が無いでアップロードできまへん。"
|
||||||
|
beta: "ベータ"
|
||||||
|
enableAutoSensitive: "自動NSFW判定"
|
||||||
|
enableAutoSensitiveDescription: "使える時は、機械学習を使って自動でメディアにNSFWフラグを設定するで。この機能をオフにしても、インスタンスによっては自動で設定されることがあるで。"
|
||||||
|
activeEmailValidationDescription: "ユーザーのメールアドレスのバリデーションを、捨てアドかどうかや実際に通信可能かどうかとかを判定して積極的に行うで。オフにすると単に文字列として正しいかどうかだけチェックするで。"
|
||||||
|
navbar: "ナビゲーションバー"
|
||||||
|
shuffle: "シャッフルするで"
|
||||||
|
account: "アカウント"
|
||||||
|
move: "移動するで"
|
||||||
|
_sensitiveMediaDetection:
|
||||||
|
description: "機械学習を使って自動でセンシティブなメディアを検出して、モデレーションに役立てることができるで。サーバーの負荷が少し増えてまうなあ。"
|
||||||
|
sensitivity: "検出感度やで"
|
||||||
|
sensitivityDescription: "感度を低くすると、誤検知(偽陽性)が減るで。感度を高くすると、検知漏れ(偽陰性)が減るで。"
|
||||||
|
setSensitiveFlagAutomatically: "NSFWフラグを設定するで"
|
||||||
|
setSensitiveFlagAutomaticallyDescription: "この設定をオフにしても内部的に判定結果は保持されるで。"
|
||||||
|
_ffVisibility:
|
||||||
|
public: "公開"
|
||||||
_ad:
|
_ad:
|
||||||
back: "戻る"
|
back: "戻る"
|
||||||
_gallery:
|
_gallery:
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
_lang_: "日本語(にゃ)"
|
_lang_: "日本語(にゃ)"
|
||||||
|
|
||||||
headlineMisskey: "ノートでつにゃがるネットワークにゃ!"
|
headlineMisskey: "ノートでつにゃがるネットワークにゃ!"
|
||||||
introMisskey: "ようこそ!Misskeyは、オープンソースの分散型マイクロブログサービスにゃにゃ。\n「ノート」を作成して、いま起こっていることを共有したり、あにゃたについて皆に発信しようにゃ📡\n「リアクション」機能で、皆のノートに素早く反応を追加することもできるにゃ👍\n新しい世界を探検しようにゃ!🚀"
|
introMisskey: "ようこそ!Misskeyは、オープンソースの分散型マイクロブログサービスにゃ。\n「ノート」を作成して、いま起こっていることを共有したり、あにゃたについて皆に発信しようにゃ📡\n「リアクション」機能で、皆のノートに素早く反応を追加することもできるにゃ👍\n新しい世界を探検しようにゃ!🚀"
|
||||||
monthAndDay: "{month}月 {day}日"
|
monthAndDay: "{month}月 {day}日"
|
||||||
search: "検索"
|
search: "検索"
|
||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
@ -45,7 +45,7 @@ copyContent: "内容をコピー"
|
|||||||
copyLink: "リンクをコピー"
|
copyLink: "リンクをコピー"
|
||||||
delete: "削除"
|
delete: "削除"
|
||||||
deleteAndEdit: "削除して編集"
|
deleteAndEdit: "削除して編集"
|
||||||
deleteAndEditConfirm: "このノートを削除してもう一度編集するにゃ?このノートへのリアクション、Renote、返信も全て削除されるにゃ。"
|
deleteAndEditConfirm: "このノートを削除してもう一度編集するかにゃ?このノートへのリアクション、Renote、返信も全て削除されるにゃ。"
|
||||||
addToList: "リストに追加"
|
addToList: "リストに追加"
|
||||||
sendMessage: "メッセージを送信"
|
sendMessage: "メッセージを送信"
|
||||||
copyUsername: "ユーザー名をコピー"
|
copyUsername: "ユーザー名をコピー"
|
||||||
@ -64,8 +64,8 @@ import: "インポート"
|
|||||||
export: "エクスポート"
|
export: "エクスポート"
|
||||||
files: "ファイル"
|
files: "ファイル"
|
||||||
download: "ダウンロード"
|
download: "ダウンロード"
|
||||||
driveFileDeleteConfirm: "ファイル「{name}」を削除するにゃ?このファイルを添付したノートも消えるにゃ。"
|
driveFileDeleteConfirm: "ファイル「{name}」を削除するかにゃ?このファイルを添付したノートも消えるにゃ。"
|
||||||
unfollowConfirm: "{name}のフォローを解除するにゃ?"
|
unfollowConfirm: "{name}のフォローを解除するかにゃ?"
|
||||||
exportRequested: "エクスポートをリクエストしたにゃ。これには時間がかかる場合があるにゃ。エクスポートが終わると、「ドライブ」に追加されるにゃ。"
|
exportRequested: "エクスポートをリクエストしたにゃ。これには時間がかかる場合があるにゃ。エクスポートが終わると、「ドライブ」に追加されるにゃ。"
|
||||||
importRequested: "インポートをリクエストしたにゃ。これには時間がかかる場合があるにゃ。"
|
importRequested: "インポートをリクエストしたにゃ。これには時間がかかる場合があるにゃ。"
|
||||||
lists: "リスト"
|
lists: "リスト"
|
||||||
@ -120,10 +120,10 @@ block: "ブロック"
|
|||||||
unblock: "ブロック解除"
|
unblock: "ブロック解除"
|
||||||
suspend: "凍結"
|
suspend: "凍結"
|
||||||
unsuspend: "解凍"
|
unsuspend: "解凍"
|
||||||
blockConfirm: "ブロックするにゃ?"
|
blockConfirm: "ブロックするかにゃ?"
|
||||||
unblockConfirm: "ブロック解除するにゃ?"
|
unblockConfirm: "ブロック解除するかにゃ?"
|
||||||
suspendConfirm: "凍結するにゃ?"
|
suspendConfirm: "凍結するかにゃ?"
|
||||||
unsuspendConfirm: "解凍するにゃ?"
|
unsuspendConfirm: "解凍するかにゃ?"
|
||||||
selectList: "リストを選択"
|
selectList: "リストを選択"
|
||||||
selectAntenna: "アンテニャを選択"
|
selectAntenna: "アンテニャを選択"
|
||||||
selectWidget: "ウィジェットを選択"
|
selectWidget: "ウィジェットを選択"
|
||||||
@ -152,9 +152,9 @@ setWallpaper: "壁紙を設定"
|
|||||||
removeWallpaper: "壁紙を削除"
|
removeWallpaper: "壁紙を削除"
|
||||||
searchWith: "検索: {q}"
|
searchWith: "検索: {q}"
|
||||||
youHaveNoLists: "リストがにゃいにゃ"
|
youHaveNoLists: "リストがにゃいにゃ"
|
||||||
followConfirm: "{name}をフォローするにゃ?"
|
followConfirm: "{name}をフォローするかにゃ?"
|
||||||
proxyAccount: "プロキシアカウント"
|
proxyAccount: "プロキシアカウント"
|
||||||
proxyAccountDescription: "プロキシアカウントは、特定の条件下でユーザーのリモートフォローを代行するアカウントにゃ。例えば、ユーザーがリモートユーザーをリストに入れたとき、リストに入れられたユーザーを誰もフォローしていにゃいとアクティビティがインスタンスに配達されにゃいため、代わりにプロキシアカウントがフォローするにゃようにするにゃ。"
|
proxyAccountDescription: "プロキシアカウントは、特定の条件下でユーザーのリモートフォローを代行するアカウントにゃ。例えば、ユーザーがリモートユーザーをリストに入れたとき、リストに入れられたユーザーを誰もフォローしていにゃいとアクティビティがインスタンスに配達されにゃいため、代わりにプロキシアカウントがフォローするようにするにゃ。"
|
||||||
host: "ホスト"
|
host: "ホスト"
|
||||||
selectUser: "ユーザーを選択"
|
selectUser: "ユーザーを選択"
|
||||||
recipient: "宛先"
|
recipient: "宛先"
|
||||||
@ -184,10 +184,10 @@ disk: "ディスク"
|
|||||||
instanceInfo: "インスタンス情報"
|
instanceInfo: "インスタンス情報"
|
||||||
statistics: "統計"
|
statistics: "統計"
|
||||||
clearQueue: "キューをクリア"
|
clearQueue: "キューをクリア"
|
||||||
clearQueueConfirmTitle: "キューをクリアするにゃ?"
|
clearQueueConfirmTitle: "キューをクリアするかにゃ?"
|
||||||
clearQueueConfirmText: "未配達の投稿は配送されにゃくにゃるにゃ。通常この操作を行う必要はにゃいにゃ。"
|
clearQueueConfirmText: "未配達の投稿は配送されにゃくにゃるにゃ。通常この操作を行う必要はにゃいにゃ。"
|
||||||
clearCachedFiles: "キャッシュをクリア"
|
clearCachedFiles: "キャッシュをクリア"
|
||||||
clearCachedFilesConfirm: "キャッシュされたリモートファイルをすべて削除するにゃ?"
|
clearCachedFilesConfirm: "キャッシュされたリモートファイルをすべて削除するかにゃ?"
|
||||||
blockedInstances: "ブロックしたインスタンス"
|
blockedInstances: "ブロックしたインスタンス"
|
||||||
blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定するにゃ。ブロックされたインスタンスは、このインスタンスとやり取りできにゃくにゃるにゃ。"
|
blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定するにゃ。ブロックされたインスタンスは、このインスタンスとやり取りできにゃくにゃるにゃ。"
|
||||||
muteAndBlock: "ミュートとブロック"
|
muteAndBlock: "ミュートとブロック"
|
||||||
@ -195,7 +195,7 @@ mutedUsers: "ミュートしたユーザー"
|
|||||||
blockedUsers: "ブロックしたユーザー"
|
blockedUsers: "ブロックしたユーザー"
|
||||||
noUsers: "ユーザーはいにゃいにゃ"
|
noUsers: "ユーザーはいにゃいにゃ"
|
||||||
editProfile: "プロフィールを編集"
|
editProfile: "プロフィールを編集"
|
||||||
noteDeleteConfirm: "このノートを削除するにゃ?"
|
noteDeleteConfirm: "このノートを削除するかにゃ?"
|
||||||
pinLimitExceeded: "これ以上ピン留めできにゃいにゃ"
|
pinLimitExceeded: "これ以上ピン留めできにゃいにゃ"
|
||||||
intro: "Misskeyのインストールが完了したにゃ!管理者アカウントを作成するにゃ!"
|
intro: "Misskeyのインストールが完了したにゃ!管理者アカウントを作成するにゃ!"
|
||||||
done: "完了"
|
done: "完了"
|
||||||
@ -231,9 +231,9 @@ announcements: "お知らせ"
|
|||||||
imageUrl: "画像URL"
|
imageUrl: "画像URL"
|
||||||
remove: "削除"
|
remove: "削除"
|
||||||
removed: "削除したにゃ"
|
removed: "削除したにゃ"
|
||||||
removeAreYouSure: "「{x}」を削除するにゃ?"
|
removeAreYouSure: "「{x}」を削除するかにゃ?"
|
||||||
deleteAreYouSure: "「{x}」を削除するにゃ?"
|
deleteAreYouSure: "「{x}」を削除するかにゃ?"
|
||||||
resetAreYouSure: "リセットするにゃ?"
|
resetAreYouSure: "リセットするかにゃ?"
|
||||||
saved: "保存したにゃ"
|
saved: "保存したにゃ"
|
||||||
messaging: "チャット"
|
messaging: "チャット"
|
||||||
upload: "アップロード"
|
upload: "アップロード"
|
||||||
@ -288,7 +288,7 @@ unableToDelete: "削除できにゃいにゃ"
|
|||||||
inputNewFileName: "新しいファイル名を入力してくださいにゃ"
|
inputNewFileName: "新しいファイル名を入力してくださいにゃ"
|
||||||
inputNewDescription: "新しいキャプションを入力してくださいにゃ"
|
inputNewDescription: "新しいキャプションを入力してくださいにゃ"
|
||||||
inputNewFolderName: "新しいフォルダ名を入力してくださいにゃ"
|
inputNewFolderName: "新しいフォルダ名を入力してくださいにゃ"
|
||||||
circularReferenceFolder: "移動先のフォルダーは、移動するにゃフォルダーのサブフォルダーにゃ。"
|
circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーにゃ。"
|
||||||
hasChildFilesOrFolders: "このフォルダは空じゃにゃいから、削除できにゃいにゃ。"
|
hasChildFilesOrFolders: "このフォルダは空じゃにゃいから、削除できにゃいにゃ。"
|
||||||
copyUrl: "URLをコピー"
|
copyUrl: "URLをコピー"
|
||||||
rename: "名前を変更"
|
rename: "名前を変更"
|
||||||
@ -299,7 +299,7 @@ whenServerDisconnected: "サーバーとの接続が失われたとき"
|
|||||||
disconnectedFromServer: "サーバーから切断されたにゃ"
|
disconnectedFromServer: "サーバーから切断されたにゃ"
|
||||||
reload: "リロード"
|
reload: "リロード"
|
||||||
doNothing: "にゃにもしにゃい"
|
doNothing: "にゃにもしにゃい"
|
||||||
reloadConfirm: "リロードするにゃ?"
|
reloadConfirm: "リロードするかにゃ?"
|
||||||
watch: "ウォッチ"
|
watch: "ウォッチ"
|
||||||
unwatch: "ウォッチ解除"
|
unwatch: "ウォッチ解除"
|
||||||
accept: "許可"
|
accept: "許可"
|
||||||
@ -339,7 +339,7 @@ pinnedUsers: "ピン留めユーザー"
|
|||||||
pinnedUsersDescription: "「みつける」ページにゃどにピン留めしたいユーザーを改行で区切って記述するにゃ。"
|
pinnedUsersDescription: "「みつける」ページにゃどにピン留めしたいユーザーを改行で区切って記述するにゃ。"
|
||||||
pinnedPages: "ピン留めページ"
|
pinnedPages: "ピン留めページ"
|
||||||
pinnedPagesDescription: "インスタンスのトップページにピン留めしたいページのパスを改行で区切って記述するにゃ。"
|
pinnedPagesDescription: "インスタンスのトップページにピン留めしたいページのパスを改行で区切って記述するにゃ。"
|
||||||
pinnedClipId: "ピン留めするにゃクリップのID"
|
pinnedClipId: "ピン留めするクリップのID"
|
||||||
pinnedNotes: "ピン留めされたノート"
|
pinnedNotes: "ピン留めされたノート"
|
||||||
hcaptcha: "hCaptcha"
|
hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "hCaptchaを有効にするにゃ"
|
enableHcaptcha: "hCaptchaを有効にするにゃ"
|
||||||
@ -349,7 +349,7 @@ recaptcha: "reCAPTCHA"
|
|||||||
enableRecaptcha: "reCAPTCHAを有効にするにゃ"
|
enableRecaptcha: "reCAPTCHAを有効にするにゃ"
|
||||||
recaptchaSiteKey: "サイトキー"
|
recaptchaSiteKey: "サイトキー"
|
||||||
recaptchaSecretKey: "シークレットキー"
|
recaptchaSecretKey: "シークレットキー"
|
||||||
avoidMultiCaptchaConfirm: "複数のCaptchaを使用すると干渉を起こす可能性があるにゃ。他のCaptchaを無効にするにゃ?キャンセルして複数のCaptchaを有効化したままにすることも可能にゃ。"
|
avoidMultiCaptchaConfirm: "複数のCaptchaを使用すると干渉を起こす可能性があるにゃ。他のCaptchaを無効にするかにゃ?キャンセルして複数のCaptchaを有効化したままにすることも可能にゃ。"
|
||||||
antennas: "アンテニャ"
|
antennas: "アンテニャ"
|
||||||
manageAntennas: "アンテニャの管理"
|
manageAntennas: "アンテニャの管理"
|
||||||
name: "名前"
|
name: "名前"
|
||||||
@ -367,9 +367,9 @@ connectedTo: "次のアカウントに接続されているにゃ"
|
|||||||
notesAndReplies: "投稿と返信"
|
notesAndReplies: "投稿と返信"
|
||||||
withFiles: "ファイル付き"
|
withFiles: "ファイル付き"
|
||||||
silence: "サイレンス"
|
silence: "サイレンス"
|
||||||
silenceConfirm: "サイレンスするにゃ?"
|
silenceConfirm: "サイレンスするかにゃ?"
|
||||||
unsilence: "サイレンス解除"
|
unsilence: "サイレンス解除"
|
||||||
unsilenceConfirm: "サイレンス解除するにゃ?"
|
unsilenceConfirm: "サイレンス解除するかにゃ?"
|
||||||
popularUsers: "人気のユーザー"
|
popularUsers: "人気のユーザー"
|
||||||
recentlyUpdatedUsers: "最近投稿したユーザー"
|
recentlyUpdatedUsers: "最近投稿したユーザー"
|
||||||
recentlyRegisteredUsers: "最近登録したユーザー"
|
recentlyRegisteredUsers: "最近登録したユーザー"
|
||||||
@ -425,7 +425,7 @@ noteOf: "{user}のノート"
|
|||||||
inviteToGroup: "グループに招待"
|
inviteToGroup: "グループに招待"
|
||||||
maxNoteTextLength: "ノートの文字数制限"
|
maxNoteTextLength: "ノートの文字数制限"
|
||||||
quoteAttached: "引用付き"
|
quoteAttached: "引用付き"
|
||||||
quoteQuestion: "引用として添付するにゃ?"
|
quoteQuestion: "引用として添付するかにゃ?"
|
||||||
noMessagesYet: "まだチャットはにゃいにゃ"
|
noMessagesYet: "まだチャットはにゃいにゃ"
|
||||||
newMessageExists: "新しいメッセージがあります"
|
newMessageExists: "新しいメッセージがあります"
|
||||||
onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつにゃ"
|
onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつにゃ"
|
||||||
@ -531,7 +531,7 @@ script: "スクリプト"
|
|||||||
disablePagesScript: "Pagesのスクリプトを無効にするにゃ"
|
disablePagesScript: "Pagesのスクリプトを無効にするにゃ"
|
||||||
updateRemoteUser: "リモートユーザー情報の更新"
|
updateRemoteUser: "リモートユーザー情報の更新"
|
||||||
deleteAllFiles: "すべてのファイルを削除"
|
deleteAllFiles: "すべてのファイルを削除"
|
||||||
deleteAllFilesConfirm: "すべてのファイルを削除するにゃ?"
|
deleteAllFilesConfirm: "すべてのファイルを削除するかにゃ?"
|
||||||
removeAllFollowing: "フォローを全解除"
|
removeAllFollowing: "フォローを全解除"
|
||||||
removeAllFollowingDescription: "{host}からのフォローをすべて解除するにゃ。そのインスタンスがもう存在しにゃくにゃった場合にゃどに実行してくださいにゃ。"
|
removeAllFollowingDescription: "{host}からのフォローをすべて解除するにゃ。そのインスタンスがもう存在しにゃくにゃった場合にゃどに実行してくださいにゃ。"
|
||||||
userSuspended: "このユーザーは凍結されているにゃ。"
|
userSuspended: "このユーザーは凍結されているにゃ。"
|
||||||
@ -561,7 +561,7 @@ description: "説明"
|
|||||||
describeFile: "キャプションを付ける"
|
describeFile: "キャプションを付ける"
|
||||||
enterFileDescription: "キャプションを入力"
|
enterFileDescription: "キャプションを入力"
|
||||||
author: "作者"
|
author: "作者"
|
||||||
leaveConfirm: "未保存の変更があるにゃ。破棄するにゃ?"
|
leaveConfirm: "未保存の変更があるにゃ。破棄するかにゃ?"
|
||||||
manage: "管理"
|
manage: "管理"
|
||||||
plugins: "プラグイン"
|
plugins: "プラグイン"
|
||||||
deck: "デッキ"
|
deck: "デッキ"
|
||||||
@ -691,7 +691,7 @@ left: "左"
|
|||||||
center: "中央"
|
center: "中央"
|
||||||
wide: "広い"
|
wide: "広い"
|
||||||
narrow: "狭い"
|
narrow: "狭い"
|
||||||
reloadToApplySetting: "設定はページリロード後に反映されるにゃ。今すぐリロードするにゃ?"
|
reloadToApplySetting: "設定はページリロード後に反映されるにゃ。今すぐリロードするかにゃ?"
|
||||||
needReloadToApply: "反映には再起動が必要にゃ。"
|
needReloadToApply: "反映には再起動が必要にゃ。"
|
||||||
showTitlebar: "タイトルバーを表示するにゃ"
|
showTitlebar: "タイトルバーを表示するにゃ"
|
||||||
clearCache: "キャッシュをクリア"
|
clearCache: "キャッシュをクリア"
|
||||||
@ -709,8 +709,8 @@ advanced: "高度"
|
|||||||
value: "値"
|
value: "値"
|
||||||
createdAt: "作成日時"
|
createdAt: "作成日時"
|
||||||
updatedAt: "更新日時"
|
updatedAt: "更新日時"
|
||||||
saveConfirm: "保存するにゃ?"
|
saveConfirm: "保存するかにゃ?"
|
||||||
deleteConfirm: "削除するにゃ?"
|
deleteConfirm: "削除するかにゃ?"
|
||||||
invalidValue: "有効にゃ値ではにゃいにゃ。"
|
invalidValue: "有効にゃ値ではにゃいにゃ。"
|
||||||
registry: "レジストリ"
|
registry: "レジストリ"
|
||||||
closeAccount: "アカウントを閉鎖するにゃ"
|
closeAccount: "アカウントを閉鎖するにゃ"
|
||||||
@ -734,7 +734,7 @@ showingPastTimeline: "過去のタイムラインを表示しているにゃ"
|
|||||||
clear: "クリア"
|
clear: "クリア"
|
||||||
markAllAsRead: "全て既読にするにゃ"
|
markAllAsRead: "全て既読にするにゃ"
|
||||||
goBack: "戻る"
|
goBack: "戻る"
|
||||||
unlikeConfirm: "いいね解除するにゃ?"
|
unlikeConfirm: "いいね解除するかにゃ?"
|
||||||
fullView: "フルビュー"
|
fullView: "フルビュー"
|
||||||
quitFullView: "フルビュー解除"
|
quitFullView: "フルビュー解除"
|
||||||
addDescription: "説明を追加"
|
addDescription: "説明を追加"
|
||||||
@ -795,7 +795,7 @@ whatIsNew: "更新情報を見る"
|
|||||||
translate: "翻訳"
|
translate: "翻訳"
|
||||||
translatedFrom: "{x}から翻訳"
|
translatedFrom: "{x}から翻訳"
|
||||||
accountDeletionInProgress: "アカウントの削除が進行中にゃ"
|
accountDeletionInProgress: "アカウントの削除が進行中にゃ"
|
||||||
usernameInfo: "サーバー上であにゃたのアカウントを一意に識別するにゃための名前。アルファベット(a~z, A~Z)、数字(0~9)、およびアンダーバー(_)が使用できるにゃ。ユーザー名は後から変更することは出来ません。"
|
usernameInfo: "サーバー上であにゃたのアカウントを一意に識別するための名前にゃ。アルファベット(a~z, A~Z)、数字(0~9)、およびアンダーバー(_)が使用できるにゃ。ユーザー名は後から変更することは出来ません。"
|
||||||
aiChanMode: "藍モード"
|
aiChanMode: "藍モード"
|
||||||
keepCw: "CWを維持するにゃ"
|
keepCw: "CWを維持するにゃ"
|
||||||
pubSub: "Pub/Subのアカウント"
|
pubSub: "Pub/Subのアカウント"
|
||||||
@ -820,7 +820,7 @@ ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開
|
|||||||
continueThread: "さらにスレッドを見る"
|
continueThread: "さらにスレッドを見る"
|
||||||
deleteAccountConfirm: "アカウントが削除されます。よろしいにゃか?"
|
deleteAccountConfirm: "アカウントが削除されます。よろしいにゃか?"
|
||||||
incorrectPassword: "パスワードが間違っているにゃ。"
|
incorrectPassword: "パスワードが間違っているにゃ。"
|
||||||
voteConfirm: "「{choice}」に投票するにゃ?"
|
voteConfirm: "「{choice}」に投票するかにゃ?"
|
||||||
hide: "隠す"
|
hide: "隠す"
|
||||||
leaveGroup: "グループから抜ける"
|
leaveGroup: "グループから抜ける"
|
||||||
leaveGroupConfirm: "「{name}」から抜けるにゃ?"
|
leaveGroupConfirm: "「{name}」から抜けるにゃ?"
|
||||||
@ -834,8 +834,12 @@ emojiSizeFixed: "文字サイズを固定する"
|
|||||||
emojiStretch: "自動で伸縮しない"
|
emojiStretch: "自動で伸縮しない"
|
||||||
emojiGenerate: "生成"
|
emojiGenerate: "生成"
|
||||||
emojiColor: "カラーコード"
|
emojiColor: "カラーコード"
|
||||||
|
colorPicker: "カラーピッカー"
|
||||||
emojiApproval: "絵文字を登録"
|
emojiApproval: "絵文字を登録"
|
||||||
deckOld: "旧デッキ"
|
deckOld: "旧デッキ"
|
||||||
|
pakuruConfirm: "パクりますか?"
|
||||||
|
pakuru: "パクる"
|
||||||
|
duplicateEmoji: "同じ名前の絵文字が存在します。インポートしますか?"
|
||||||
|
|
||||||
|
|
||||||
_emailUnavailable:
|
_emailUnavailable:
|
||||||
@ -858,7 +862,7 @@ _signup:
|
|||||||
_accountDelete:
|
_accountDelete:
|
||||||
accountDelete: "アカウントの削除"
|
accountDelete: "アカウントの削除"
|
||||||
mayTakeTime: "アカウントの削除は負荷のかかる処理であるため、作成したコンテンツの数やアップロードしたファイルの数が多いと完了までに時間がかかることがあるにゃ。"
|
mayTakeTime: "アカウントの削除は負荷のかかる処理であるため、作成したコンテンツの数やアップロードしたファイルの数が多いと完了までに時間がかかることがあるにゃ。"
|
||||||
sendEmail: "アカウントの削除が完了するにゃ際は、登録してあったメールアドレス宛に通知を送信するにゃ。"
|
sendEmail: "アカウントの削除が完了する際は、登録してあったメールアドレス宛に通知を送信するにゃ。"
|
||||||
requestAccountDelete: "アカウント削除をリクエスト"
|
requestAccountDelete: "アカウント削除をリクエスト"
|
||||||
started: "削除処理が開始されたにゃ。"
|
started: "削除処理が開始されたにゃ。"
|
||||||
inProgress: "削除が進行中"
|
inProgress: "削除が進行中"
|
||||||
@ -946,7 +950,7 @@ _mfm:
|
|||||||
flip: "反転"
|
flip: "反転"
|
||||||
flipDescription: "内容を上下または左右に反転させます。"
|
flipDescription: "内容を上下または左右に反転させます。"
|
||||||
jelly: "アニメーション(びよんびよん)"
|
jelly: "アニメーション(びよんびよん)"
|
||||||
jellyDescription: "びよんびよんするにゃアニメーションを与えます。"
|
jellyDescription: "びよんびよんするアニメーションを与えます。"
|
||||||
tada: "アニメーション(じゃーん)"
|
tada: "アニメーション(じゃーん)"
|
||||||
tadaDescription: "ジャーン!という感じのアニメーションを与えます。"
|
tadaDescription: "ジャーン!という感じのアニメーションを与えます。"
|
||||||
jump: "アニメーション(ジャンプ)"
|
jump: "アニメーション(ジャンプ)"
|
||||||
@ -958,7 +962,7 @@ _mfm:
|
|||||||
twitch: "アニメーション(ブレ)"
|
twitch: "アニメーション(ブレ)"
|
||||||
twitchDescription: "激しくブレるアニメーションを与えます。"
|
twitchDescription: "激しくブレるアニメーションを与えます。"
|
||||||
spin: "アニメーション(回転)"
|
spin: "アニメーション(回転)"
|
||||||
spinDescription: "回転するにゃアニメーションを与えます。"
|
spinDescription: "回転するアニメーションを与えます。"
|
||||||
x2: "大きく"
|
x2: "大きく"
|
||||||
x2Description: "内容を大きく表示するにゃ。"
|
x2Description: "内容を大きく表示するにゃ。"
|
||||||
x3: "とても大きく"
|
x3: "とても大きく"
|
||||||
@ -985,8 +989,8 @@ _reversi:
|
|||||||
rules: "ルール"
|
rules: "ルール"
|
||||||
botSettings: "Botのオプション"
|
botSettings: "Botのオプション"
|
||||||
thisGameIsStartedSoon: "対局は数秒後に開始されます"
|
thisGameIsStartedSoon: "対局は数秒後に開始されます"
|
||||||
waitingForOther: "相手の準備が完了するにゃのを待っているにゃ"
|
waitingForOther: "相手の準備が完了するのを待っているにゃ"
|
||||||
waitingForMe: "あにゃたの準備が完了するにゃのを待っているにゃ"
|
waitingForMe: "あにゃたの準備が完了するのを待っているにゃ"
|
||||||
waitingBoth: "準備してくださいにゃ"
|
waitingBoth: "準備してくださいにゃ"
|
||||||
ready: "準備完了"
|
ready: "準備完了"
|
||||||
cancelReady: "準備を再開"
|
cancelReady: "準備を再開"
|
||||||
@ -1038,10 +1042,10 @@ _menuDisplay:
|
|||||||
hide: "隠す"
|
hide: "隠す"
|
||||||
|
|
||||||
_wordMute:
|
_wordMute:
|
||||||
muteWords: "ミュートするにゃワード"
|
muteWords: "ミュートするワード"
|
||||||
muteWordsDescription: "スペースで区切るとAND指定ににゃり、改行で区切るとOR指定ににゃるにゃ。"
|
muteWordsDescription: "スペースで区切るとAND指定ににゃり、改行で区切るとOR指定ににゃるにゃ。"
|
||||||
muteWordsDescription2: "キーワードをスラッシュで囲むと正規表現ににゃるにゃ。"
|
muteWordsDescription2: "キーワードをスラッシュで囲むと正規表現ににゃるにゃ。"
|
||||||
softDescription: "指定した条件のノートをタイムラインから隠するにゃ。"
|
softDescription: "指定した条件のノートをタイムラインから隠すにゃ。"
|
||||||
hardDescription: "指定した条件のノートをタイムラインに追加しにゃいようにするにゃ。追加されにゃかったノートは、条件を変更しても除外されたままににゃるにゃ。"
|
hardDescription: "指定した条件のノートをタイムラインに追加しにゃいようにするにゃ。追加されにゃかったノートは、条件を変更しても除外されたままににゃるにゃ。"
|
||||||
soft: "ソフト"
|
soft: "ソフト"
|
||||||
hard: "ハード"
|
hard: "ハード"
|
||||||
@ -1051,7 +1055,7 @@ _instanceMute:
|
|||||||
instanceMuteDescription: "ミュートしたインスタンスのユーザーへの返信を含めて、設定したインスタンスの全てのノートとRenoteをミュートするにゃ。"
|
instanceMuteDescription: "ミュートしたインスタンスのユーザーへの返信を含めて、設定したインスタンスの全てのノートとRenoteをミュートするにゃ。"
|
||||||
instanceMuteDescription2: "改行で区切って設定します"
|
instanceMuteDescription2: "改行で区切って設定します"
|
||||||
title: "設定したインスタンスのノートを隠するにゃ。"
|
title: "設定したインスタンスのノートを隠するにゃ。"
|
||||||
heading: "ミュートするにゃインスタンス"
|
heading: "ミュートするインスタンス"
|
||||||
|
|
||||||
_theme:
|
_theme:
|
||||||
explore: "テーマを探す"
|
explore: "テーマを探す"
|
||||||
@ -1076,7 +1080,7 @@ _theme:
|
|||||||
func: "関数"
|
func: "関数"
|
||||||
funcKind: "関数の種類"
|
funcKind: "関数の種類"
|
||||||
argument: "引数"
|
argument: "引数"
|
||||||
basedProp: "元にするにゃプロパティの名前"
|
basedProp: "元にするプロパティの名前"
|
||||||
alpha: "不透明度"
|
alpha: "不透明度"
|
||||||
darken: "暗さ"
|
darken: "暗さ"
|
||||||
lighten: "明るさ"
|
lighten: "明るさ"
|
||||||
@ -1161,30 +1165,30 @@ _time:
|
|||||||
_tutorial:
|
_tutorial:
|
||||||
title: "Misskeyの使い方"
|
title: "Misskeyの使い方"
|
||||||
step1_1: "ようこそ。"
|
step1_1: "ようこそ。"
|
||||||
step1_2: "この画面は「タイムライン」と呼ばれ、あにゃたや、あにゃたが「フォロー」するにゃ人の「ノート」が時系列で表示されます。"
|
step1_2: "この画面は「タイムライン」と呼ばれ、あにゃたや、あにゃたが「フォロー」する人の「ノート」が時系列で表示されますにゃ。"
|
||||||
step1_3: "あにゃたはまだ何もノートを投稿しておらず、誰もフォローしていにゃいので、タイムラインには何も表示されていにゃいはずにゃ。"
|
step1_3: "あにゃたはまだ何もノートを投稿しておらず、誰もフォローしていにゃいので、タイムラインには何も表示されていにゃいはずにゃ。"
|
||||||
step2_1: "ノートを作成したり誰かをフォローしたりするにゃ前に、まずあにゃたのプロフィールを完成させましょう。"
|
step2_1: "ノートを作成したり誰かをフォローしたりする前に、まずあにゃたのプロフィールを完成させるにゃ!"
|
||||||
step2_2: "あにゃたがどんにゃ人かわかると、多くの人にノートを見てもらえたり、フォローしてもらいやすくにゃるにゃ。"
|
step2_2: "あにゃたがどんにゃ人かわかると、多くの人にノートを見てもらえたり、フォローしてもらいやすくにゃるにゃ。"
|
||||||
step3_1: "プロフィール設定はうまくできましたか?"
|
step3_1: "プロフィール設定はうまくできましたかにゃ?"
|
||||||
step3_2: "では試しに、何かノートを投稿してみてください。画面上にある鉛筆マークのボタンを押すとフォームが開きます。"
|
step3_2: "では試しに、何かノートを投稿してみてください。画面上にある鉛筆マークのボタンを押すとフォームが開くにゃ。"
|
||||||
step3_3: "内容を書いたら、フォーム右上のボタンを押すと投稿できるにゃ。"
|
step3_3: "内容を書いたら、フォーム右上のボタンを押すと投稿できるにゃ。"
|
||||||
step3_4: "内容が思いつかにゃい?「Misskey始めました」というのはいかがでしょう。"
|
step3_4: "内容が思いつかにゃい?「Misskey始めました」というのはいかがかにゃ?"
|
||||||
step4_1: "投稿できましたか?"
|
step4_1: "投稿できたかにゃ?"
|
||||||
step4_2: "あにゃたのノートがタイムラインに表示されていれば成功にゃ。"
|
step4_2: "あにゃたのノートがタイムラインに表示されていれば成功にゃ。"
|
||||||
step5_1: "次は、他の人をフォローしてタイムラインを賑やかにしたいところにゃ。"
|
step5_1: "次は、他の人をフォローしてタイムラインを賑やかにしたいところにゃ。"
|
||||||
step5_2: "{featured}で人気のノートが見れるので、その中から気ににゃった人を選んでフォローしたり、{explore}で人気のユーザーを探すこともできるにゃ。"
|
step5_2: "{featured}で人気のノートが見れるので、その中から気ににゃった人を選んでフォローしたり、{explore}で人気のユーザーを探すこともできるにゃ。"
|
||||||
step5_3: "ユーザーをフォローするにゃには、ユーザーのアイコンをクリックしてユーザーページを表示し、「フォロー」ボタンを押するにゃ。"
|
step5_3: "ユーザーをフォローするには、ユーザーのアイコンをクリックしてユーザーページを表示し、「フォロー」ボタンを押すにゃ。"
|
||||||
step5_4: "ユーザーによっては、フォローが承認されるまで時間がかかる場合があるにゃ。"
|
step5_4: "ユーザーによっては、フォローが承認されるまで時間がかかる場合があるにゃ。"
|
||||||
step6_1: "タイムラインに他のユーザーのノートが表示されていれば成功にゃ。"
|
step6_1: "タイムラインに他のユーザーのノートが表示されていれば成功にゃ。"
|
||||||
step6_2: "他の人のノートには、「リアクション」を付けることができ、簡単にあにゃたの反応を伝えられます。"
|
step6_2: "他の人のノートには、「リアクション」を付けることができ、簡単にあにゃたの反応を伝えられるにゃ!"
|
||||||
step6_3: "リアクションを付けるには、ノートの「+」マークをクリックして、好きにゃリアクションを選択するにゃ。"
|
step6_3: "リアクションを付けるには、ノートの「+」マークをクリックして、好きにゃリアクションを選択するにゃ。"
|
||||||
step7_1: "これで、Misskeyの基本的にゃ使い方の説明は終わりました。お疲れ様でした。"
|
step7_1: "これで、Misskeyの基本的にゃ使い方の説明は終わったにゃ。お疲れ様でしたにゃ。"
|
||||||
step7_2: "もっとMisskeyについて知りたいときは、{help}を見てみてください。"
|
step7_2: "もっとMisskeyについて知りたいときは、{help}を見てみてくださいにゃ。"
|
||||||
step7_3: "では、Misskeyをお楽しみください🚀"
|
step7_3: "では、Misskeyをお楽しみくださいにゃ🚀"
|
||||||
step8_1: "さいごに"
|
step8_1: "さいごに"
|
||||||
step8_2: "このインスタンスではガラス風デザインを標準で採用しています。"
|
step8_2: "このインスタンスではガラス風デザインを標準で採用しているにゃ。"
|
||||||
step8_3: "端末によってはパフォーマンスが低下する場合があります。"
|
step8_3: "端末によってはパフォーマンスが低下する場合があるにゃ。"
|
||||||
step8_4: "その場合は設定よりブラーを使用しないように設定+テーマをNoGlassにしてください。"
|
step8_4: "その場合は設定よりブラーを使用しないように設定+テーマをNoGlassにしてくださいにゃ。"
|
||||||
|
|
||||||
_2fa:
|
_2fa:
|
||||||
alreadyRegistered: "既に設定は完了しているにゃ。"
|
alreadyRegistered: "既に設定は完了しているにゃ。"
|
||||||
@ -1194,7 +1198,7 @@ _2fa:
|
|||||||
step2: "次に、表示されているQRコードをアプリでスキャンするにゃ。"
|
step2: "次に、表示されているQRコードをアプリでスキャンするにゃ。"
|
||||||
step3: "アプリに表示されているトークンを入力して完了にゃ。"
|
step3: "アプリに表示されているトークンを入力して完了にゃ。"
|
||||||
step4: "これからログインするときも、同じようにトークンを入力するにゃ。"
|
step4: "これからログインするときも、同じようにトークンを入力するにゃ。"
|
||||||
securityKeyInfo: "FIDO2をサポートするにゃハードウェアセキュリティキーもしくは端末の指紋認証やPINを使用してログインするにゃように設定できるにゃ。"
|
securityKeyInfo: "FIDO2をサポートするハードウェアセキュリティキーもしくは端末の指紋認証やPINを使用してログインするように設定できるにゃ。"
|
||||||
|
|
||||||
_permissions:
|
_permissions:
|
||||||
"read:account": "アカウントの情報を見る"
|
"read:account": "アカウントの情報を見る"
|
||||||
@ -1231,8 +1235,8 @@ _permissions:
|
|||||||
"write:gallery-likes": "ギャラリーのいいねを操作するにゃ"
|
"write:gallery-likes": "ギャラリーのいいねを操作するにゃ"
|
||||||
|
|
||||||
_auth:
|
_auth:
|
||||||
shareAccess: "「{name}」がアカウントにアクセスすることを許可するにゃ?"
|
shareAccess: "「{name}」がアカウントにアクセスすることを許可するかにゃ?"
|
||||||
shareAccessAsk: "アカウントへのアクセスを許可するにゃ?"
|
shareAccessAsk: "アカウントへのアクセスを許可するかにゃ?"
|
||||||
permissionAsk: "このアプリは次の権限を要求しているにゃ"
|
permissionAsk: "このアプリは次の権限を要求しているにゃ"
|
||||||
pleaseGoBack: "アプリケーションに戻ってやっていってください"
|
pleaseGoBack: "アプリケーションに戻ってやっていってください"
|
||||||
callback: "アプリケーションに戻っているにゃ"
|
callback: "アプリケーションに戻っているにゃ"
|
||||||
@ -1393,7 +1397,7 @@ _rooms:
|
|||||||
remove: "しまう"
|
remove: "しまう"
|
||||||
clear: "片付け"
|
clear: "片付け"
|
||||||
clearConfirm: "全ての家具をしまいるにゃか?"
|
clearConfirm: "全ての家具をしまいるにゃか?"
|
||||||
leaveConfirm: "未保存の変更があります、移動するにゃ?"
|
leaveConfirm: "未保存の変更があります、移動するかにゃ?"
|
||||||
chooseImage: "画像を選択"
|
chooseImage: "画像を選択"
|
||||||
roomType: "部屋のタイプ"
|
roomType: "部屋のタイプ"
|
||||||
carpetColor: "床の色"
|
carpetColor: "床の色"
|
||||||
@ -1558,8 +1562,8 @@ _pages:
|
|||||||
pushEvent: "イベントを送信させる"
|
pushEvent: "イベントを送信させる"
|
||||||
_pushEvent:
|
_pushEvent:
|
||||||
event: "イベント名"
|
event: "イベント名"
|
||||||
message: "押したときに表示するにゃメッセージ"
|
message: "押したときに表示するメッセージ"
|
||||||
variable: "送信するにゃ変数"
|
variable: "送信する変数"
|
||||||
no-variable: "にゃし"
|
no-variable: "にゃし"
|
||||||
callAiScript: "AiScript呼び出し"
|
callAiScript: "AiScript呼び出し"
|
||||||
_callAiScript:
|
_callAiScript:
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "사용자 검색"
|
|||||||
reply: "답글"
|
reply: "답글"
|
||||||
loadMore: "더 보기"
|
loadMore: "더 보기"
|
||||||
showMore: "더 보기"
|
showMore: "더 보기"
|
||||||
|
showLess: "닫기"
|
||||||
youGotNewFollower: "새로운 팔로워가 있습니다"
|
youGotNewFollower: "새로운 팔로워가 있습니다"
|
||||||
receiveFollowRequest: "새로운 팔로우 요청이 있습니다"
|
receiveFollowRequest: "새로운 팔로우 요청이 있습니다"
|
||||||
followRequestAccepted: "팔로우가 수락되었습니다"
|
followRequestAccepted: "팔로우가 수락되었습니다"
|
||||||
@ -561,6 +562,7 @@ author: "작성자"
|
|||||||
leaveConfirm: "저장하지 않은 변경사항이 있습니다. 취소하시겠습니까?"
|
leaveConfirm: "저장하지 않은 변경사항이 있습니다. 취소하시겠습니까?"
|
||||||
manage: "관리"
|
manage: "관리"
|
||||||
plugins: "플러그인"
|
plugins: "플러그인"
|
||||||
|
preferencesBackups: "환경설정 백업"
|
||||||
deck: "덱"
|
deck: "덱"
|
||||||
undeck: "덱 해제"
|
undeck: "덱 해제"
|
||||||
useBlurEffectForModal: "모달에 흐림 효과 사용"
|
useBlurEffectForModal: "모달에 흐림 효과 사용"
|
||||||
@ -611,7 +613,7 @@ create: "생성"
|
|||||||
notificationSetting: "알림 설정"
|
notificationSetting: "알림 설정"
|
||||||
notificationSettingDesc: "표시할 알림의 종류를 선택해 주세요."
|
notificationSettingDesc: "표시할 알림의 종류를 선택해 주세요."
|
||||||
useGlobalSetting: "글로벌 설정을 사용하기"
|
useGlobalSetting: "글로벌 설정을 사용하기"
|
||||||
useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용되니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다."
|
useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용됩니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다."
|
||||||
other: "기타"
|
other: "기타"
|
||||||
regenerateLoginToken: "로그인 토큰을 재생성"
|
regenerateLoginToken: "로그인 토큰을 재생성"
|
||||||
regenerateLoginTokenDescription: "로그인할 때 사용되는 내부 토큰을 재생성합니다. 일반적으로 이 작업을 실행할 필요는 없습니다. 이 기능을 사용하면 이 계정으로 로그인한 모든 기기에서 로그아웃됩니다."
|
regenerateLoginTokenDescription: "로그인할 때 사용되는 내부 토큰을 재생성합니다. 일반적으로 이 작업을 실행할 필요는 없습니다. 이 기능을 사용하면 이 계정으로 로그인한 모든 기기에서 로그아웃됩니다."
|
||||||
@ -889,6 +891,7 @@ activeEmailValidationDescription: "유저가 입력한 메일 주소가 일회
|
|||||||
navbar: "네비게이션 바"
|
navbar: "네비게이션 바"
|
||||||
shuffle: "셔플"
|
shuffle: "셔플"
|
||||||
account: "계정"
|
account: "계정"
|
||||||
|
move: "이동"
|
||||||
_sensitiveMediaDetection:
|
_sensitiveMediaDetection:
|
||||||
description: "기계학습을 통해 자동으로 민감한 미디어를 탐지하여, 모더레이션에 참고할 수 있도록 합니다. 서버의 부하를 약간 증가시킵니다."
|
description: "기계학습을 통해 자동으로 민감한 미디어를 탐지하여, 모더레이션에 참고할 수 있도록 합니다. 서버의 부하를 약간 증가시킵니다."
|
||||||
sensitivity: "탐지 민감도"
|
sensitivity: "탐지 민감도"
|
||||||
@ -939,6 +942,24 @@ _plugin:
|
|||||||
install: "플러그인 설치"
|
install: "플러그인 설치"
|
||||||
installWarn: "신뢰할 수 없는 플러그인은 설치하지 않는 것이 좋습니다."
|
installWarn: "신뢰할 수 없는 플러그인은 설치하지 않는 것이 좋습니다."
|
||||||
manage: "플러그인 관리"
|
manage: "플러그인 관리"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "생성한 백업"
|
||||||
|
saveNew: "새 백업 만들기"
|
||||||
|
loadFile: "파일 가져오기"
|
||||||
|
apply: "이 기기에 적용"
|
||||||
|
save: "현재 설정으로 덮어쓰기"
|
||||||
|
inputName: "백업 이름을 입력하세요"
|
||||||
|
cannotSave: "저장하지 못했습니다"
|
||||||
|
nameAlreadyExists: "\"{name}\" 백업이 이미 존재합니다. 다른 이름을 설정하여 주십시오."
|
||||||
|
applyConfirm: "\"{name}\" 백업을 현재 기기에 적용하시겠습니까? 현재 설정은 덮어 씌워집니다."
|
||||||
|
saveConfirm: "{name} 을 덮어쓰시겠습니까?"
|
||||||
|
deleteConfirm: "{name} 을(를) 삭제하시겠습니까?"
|
||||||
|
renameConfirm: "\"{old}\" 백업을 \"{new}\"(으)로 바꾸시겠습니까?"
|
||||||
|
noBackups: "저장된 백업이 없습니다. \"새 백업 만들기\"를 눌러 현재 클라이언트 설정을 서버에 백업할 수 있습니다."
|
||||||
|
createdAt: "생성 날짜: {date} {time}"
|
||||||
|
updatedAt: "갱신 날짜: {date} {time}"
|
||||||
|
cannotLoad: "가져오기에 실패했습니다"
|
||||||
|
invalidFile: "파일 형식이 올바르지 않습니다."
|
||||||
_registry:
|
_registry:
|
||||||
scope: "범위"
|
scope: "범위"
|
||||||
key: "키"
|
key: "키"
|
||||||
@ -1022,6 +1043,8 @@ _mfm:
|
|||||||
sparkleDescription: "반짝이는 파티클 효과를 추가합니다."
|
sparkleDescription: "반짝이는 파티클 효과를 추가합니다."
|
||||||
rotate: "회전"
|
rotate: "회전"
|
||||||
rotateDescription: "지정한 각도로 회전시킵니다."
|
rotateDescription: "지정한 각도로 회전시킵니다."
|
||||||
|
plain: "평문"
|
||||||
|
plainDescription: "안에 있는 MFM 구문을 모두 무시하고 평문으로 표시합니다."
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "보이지 않음"
|
none: "보이지 않음"
|
||||||
remote: "리모트 유저에게만 보이기"
|
remote: "리모트 유저에게만 보이기"
|
||||||
@ -1254,6 +1277,7 @@ _widgets:
|
|||||||
activity: "활동"
|
activity: "활동"
|
||||||
photos: "사진"
|
photos: "사진"
|
||||||
digitalClock: "디지털 시계"
|
digitalClock: "디지털 시계"
|
||||||
|
unixClock: "UNIX 시계"
|
||||||
federation: "연합"
|
federation: "연합"
|
||||||
instanceCloud: "인스턴스 구름"
|
instanceCloud: "인스턴스 구름"
|
||||||
postForm: "글 입력란"
|
postForm: "글 입력란"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
_lang_: "język polski"
|
_lang_: "Polski"
|
||||||
headlineMisskey: "Sieć połączona wpisami"
|
headlineMisskey: "Sieć połączona wpisami"
|
||||||
introMisskey: "Misskey jest serwisem mikroblogowym typu open source.\nMisskey to opensource'owy serwis mikroblogowy, w którym możesz tworzyć \"notatki\", aby dzielić się tym, co się dzieje i opowiadać wszystkim o sobie.\nMożesz również użyć funkcji \"Reakcje\", aby szybko dodać własne reakcje do notatek innych użytkowników👍.\nOdkrywaj nowy świat🚀!"
|
introMisskey: "Misskey jest serwisem mikroblogowym typu open source.\nMisskey to opensource'owy serwis mikroblogowy, w którym możesz tworzyć \"notatki\", aby dzielić się tym, co się dzieje i opowiadać wszystkim o sobie.\nMożesz również użyć funkcji \"Reakcje\", aby szybko dodać własne reakcje do notatek innych użytkowników👍.\nOdkrywaj nowy świat🚀!"
|
||||||
monthAndDay: "{month}-{day}"
|
monthAndDay: "{month}-{day}"
|
||||||
@ -52,6 +52,7 @@ searchUser: "Wyszukiwanie użytkowników"
|
|||||||
reply: "Odpowiedz"
|
reply: "Odpowiedz"
|
||||||
loadMore: "Załaduj więcej"
|
loadMore: "Załaduj więcej"
|
||||||
showMore: "Załaduj więcej"
|
showMore: "Załaduj więcej"
|
||||||
|
showLess: "Zamknij"
|
||||||
youGotNewFollower: "Zaobserwował(a) Cię"
|
youGotNewFollower: "Zaobserwował(a) Cię"
|
||||||
receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji"
|
receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji"
|
||||||
followRequestAccepted: "Zaakceptowano prośbę o możliwość obserwacji"
|
followRequestAccepted: "Zaakceptowano prośbę o możliwość obserwacji"
|
||||||
@ -87,7 +88,7 @@ enterListName: "Nazwa listy"
|
|||||||
privacy: "Prywatność"
|
privacy: "Prywatność"
|
||||||
makeFollowManuallyApprove: "Prośby o możliwość obserwacji wymagają zatwierdzenia"
|
makeFollowManuallyApprove: "Prośby o możliwość obserwacji wymagają zatwierdzenia"
|
||||||
defaultNoteVisibility: "Domyślna widoczność"
|
defaultNoteVisibility: "Domyślna widoczność"
|
||||||
follow: "Obserwowani"
|
follow: "Obserwuj"
|
||||||
followRequest: "Poproś o możliwość obserwacji"
|
followRequest: "Poproś o możliwość obserwacji"
|
||||||
followRequests: "Prośby o możliwość obserwacji"
|
followRequests: "Prośby o możliwość obserwacji"
|
||||||
unfollow: "Przestań obserwować"
|
unfollow: "Przestań obserwować"
|
||||||
@ -126,7 +127,7 @@ unsuspendConfirm: "Czy na pewno chcesz cofnąć zawieszenie tego konta?"
|
|||||||
selectList: "Wybierz listę"
|
selectList: "Wybierz listę"
|
||||||
selectAntenna: "Wybierz Antennę"
|
selectAntenna: "Wybierz Antennę"
|
||||||
selectWidget: "Wybierz widżet"
|
selectWidget: "Wybierz widżet"
|
||||||
editWidgets: "Edytuj widżet"
|
editWidgets: "Edytuj widżety"
|
||||||
editWidgetsExit: "Gotowe"
|
editWidgetsExit: "Gotowe"
|
||||||
customEmojis: "Niestandardowe emoji"
|
customEmojis: "Niestandardowe emoji"
|
||||||
emoji: "Emoji"
|
emoji: "Emoji"
|
||||||
@ -141,6 +142,7 @@ flagAsBot: "To konto jest botem"
|
|||||||
flagAsBotDescription: "Jeżeli ten kanał jest kontrolowany przez jakiś program, ustaw tę opcję. Jeżeli włączona, będzie działać jako flaga informująca innych programistów, aby zapobiegać nieskończonej interakcji z różnymi botami i dostosowywać wewnętrzne systemy Misskey, traktując konto jako bota."
|
flagAsBotDescription: "Jeżeli ten kanał jest kontrolowany przez jakiś program, ustaw tę opcję. Jeżeli włączona, będzie działać jako flaga informująca innych programistów, aby zapobiegać nieskończonej interakcji z różnymi botami i dostosowywać wewnętrzne systemy Misskey, traktując konto jako bota."
|
||||||
flagAsCat: "To konto jest kotem"
|
flagAsCat: "To konto jest kotem"
|
||||||
flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot."
|
flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot."
|
||||||
|
flagShowTimelineReplies: "Pokazuj odpowiedzi na osi czasu"
|
||||||
autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz"
|
autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz"
|
||||||
addAccount: "Dodaj konto"
|
addAccount: "Dodaj konto"
|
||||||
loginFailed: "Nie udało się zalogować"
|
loginFailed: "Nie udało się zalogować"
|
||||||
@ -200,6 +202,7 @@ done: "Gotowe"
|
|||||||
processing: "Przetwarzanie"
|
processing: "Przetwarzanie"
|
||||||
preview: "Podgląd"
|
preview: "Podgląd"
|
||||||
default: "Domyślne"
|
default: "Domyślne"
|
||||||
|
defaultValueIs: "Domyślne: {value}"
|
||||||
noCustomEmojis: "Brak emoji"
|
noCustomEmojis: "Brak emoji"
|
||||||
noJobs: "Brak zadań"
|
noJobs: "Brak zadań"
|
||||||
federating: "Federowanie"
|
federating: "Federowanie"
|
||||||
@ -234,6 +237,7 @@ resetAreYouSure: "Czy na pewno chcesz zresetować?"
|
|||||||
saved: "Zapisano"
|
saved: "Zapisano"
|
||||||
messaging: "Wiadomości"
|
messaging: "Wiadomości"
|
||||||
upload: "Wyślij"
|
upload: "Wyślij"
|
||||||
|
keepOriginalUploading: "Zachowaj oryginalny obraz"
|
||||||
fromDrive: "Z dysku"
|
fromDrive: "Z dysku"
|
||||||
fromUrl: "Z adresu URL"
|
fromUrl: "Z adresu URL"
|
||||||
uploadFromUrl: "Wyślij z adresu URL"
|
uploadFromUrl: "Wyślij z adresu URL"
|
||||||
@ -376,6 +380,7 @@ administrator: "Admin"
|
|||||||
token: "Token"
|
token: "Token"
|
||||||
twoStepAuthentication: "Uwierzytelnianie dwuskładnikowe"
|
twoStepAuthentication: "Uwierzytelnianie dwuskładnikowe"
|
||||||
moderator: "Moderator"
|
moderator: "Moderator"
|
||||||
|
moderation: "Moderacja"
|
||||||
nUsersMentioned: "{n} wspomnianych użytkowników"
|
nUsersMentioned: "{n} wspomnianych użytkowników"
|
||||||
securityKey: "Klucz bezpieczeństwa"
|
securityKey: "Klucz bezpieczeństwa"
|
||||||
securityKeyName: "Nazwa klucza"
|
securityKeyName: "Nazwa klucza"
|
||||||
@ -443,11 +448,13 @@ uiLanguage: "Język wyświetlania UI"
|
|||||||
groupInvited: "Zaproszony(-a) do grupy"
|
groupInvited: "Zaproszony(-a) do grupy"
|
||||||
aboutX: "O {x}"
|
aboutX: "O {x}"
|
||||||
useOsNativeEmojis: "Używaj natywnych Emoji systemu"
|
useOsNativeEmojis: "Używaj natywnych Emoji systemu"
|
||||||
|
disableDrawer: "Nie używaj menu w stylu szuflady"
|
||||||
youHaveNoGroups: "Nie masz żadnych grup"
|
youHaveNoGroups: "Nie masz żadnych grup"
|
||||||
joinOrCreateGroup: "Uzyskaj zaproszenie do dołączenia do grupy lub utwórz własną grupę."
|
joinOrCreateGroup: "Uzyskaj zaproszenie do dołączenia do grupy lub utwórz własną grupę."
|
||||||
noHistory: "Brak historii"
|
noHistory: "Brak historii"
|
||||||
signinHistory: "Historia logowania"
|
signinHistory: "Historia logowania"
|
||||||
disableAnimatedMfm: "Wyłącz MFM z animacją"
|
disableAnimatedMfm: "Wyłącz MFM z animacją"
|
||||||
|
doing: "Przetwarzanie..."
|
||||||
category: "Kategoria"
|
category: "Kategoria"
|
||||||
tags: "Tagi"
|
tags: "Tagi"
|
||||||
docSource: "Źródło tego dokumentu"
|
docSource: "Źródło tego dokumentu"
|
||||||
@ -522,6 +529,9 @@ deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?"
|
|||||||
removeAllFollowingDescription: "Przestań obserwować wszystkie konta z {host}. Wykonaj to, jeżeli instancja już nie istnieje."
|
removeAllFollowingDescription: "Przestań obserwować wszystkie konta z {host}. Wykonaj to, jeżeli instancja już nie istnieje."
|
||||||
userSuspended: "To konto zostało zawieszone."
|
userSuspended: "To konto zostało zawieszone."
|
||||||
userSilenced: "Ten użytkownik został wyciszony."
|
userSilenced: "Ten użytkownik został wyciszony."
|
||||||
|
yourAccountSuspendedTitle: "To konto jest zawieszone"
|
||||||
|
yourAccountSuspendedDescription: "To konto zostało zawieszone z powodu złamania regulaminu serwera lub innych podobnych. Skontaktuj się z administratorem, jeśli chciałbyś poznać bardziej szczegółowy powód. Proszę nie zakładać nowego konta."
|
||||||
|
menu: "Menu"
|
||||||
divider: "Rozdzielacz"
|
divider: "Rozdzielacz"
|
||||||
addItem: "Dodaj element"
|
addItem: "Dodaj element"
|
||||||
relays: "Przekaźniki"
|
relays: "Przekaźniki"
|
||||||
@ -540,7 +550,7 @@ disablePlayer: "Zamknij odtwarzacz wideo"
|
|||||||
expandTweet: "Rozwiń tweet"
|
expandTweet: "Rozwiń tweet"
|
||||||
themeEditor: "Edytor motywu"
|
themeEditor: "Edytor motywu"
|
||||||
description: "Opis"
|
description: "Opis"
|
||||||
describeFile: "dodaj podpis"
|
describeFile: "Dodaj podpis"
|
||||||
enterFileDescription: "Wprowadź napis"
|
enterFileDescription: "Wprowadź napis"
|
||||||
author: "Autor"
|
author: "Autor"
|
||||||
leaveConfirm: "Są niezapisane zmiany. Czy chcesz je odrzucić?"
|
leaveConfirm: "Są niezapisane zmiany. Czy chcesz je odrzucić?"
|
||||||
@ -577,6 +587,7 @@ emptyToDisableSmtpAuth: "Pozostaw adres e-mail i hasło puste, aby wyłączyć w
|
|||||||
smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS"
|
smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS"
|
||||||
testEmail: "Przetestuj dostarczanie wiadomości e-mail"
|
testEmail: "Przetestuj dostarczanie wiadomości e-mail"
|
||||||
wordMute: "Wyciszenie słowa"
|
wordMute: "Wyciszenie słowa"
|
||||||
|
instanceMute: "Wyciszone instancje"
|
||||||
userSaysSomething: "{name} powiedział(-a) coś"
|
userSaysSomething: "{name} powiedział(-a) coś"
|
||||||
makeActive: "Aktywuj"
|
makeActive: "Aktywuj"
|
||||||
display: "Wyświetlanie"
|
display: "Wyświetlanie"
|
||||||
@ -606,6 +617,7 @@ fillAbuseReportDescription: "Wypełnij szczegóły zgłoszenia. Jeżeli dotyczy
|
|||||||
abuseReported: "Twoje zgłoszenie zostało wysłane. Dziękujemy."
|
abuseReported: "Twoje zgłoszenie zostało wysłane. Dziękujemy."
|
||||||
reporteeOrigin: "Pochodzenie zgłoszonego"
|
reporteeOrigin: "Pochodzenie zgłoszonego"
|
||||||
reporterOrigin: "Pochodzenie zgłaszającego"
|
reporterOrigin: "Pochodzenie zgłaszającego"
|
||||||
|
forwardReport: "Przekaż zgłoszenie do innej instancji"
|
||||||
send: "Wyślij"
|
send: "Wyślij"
|
||||||
abuseMarkAsResolved: "Oznacz zgłoszenie jako rozwiązane"
|
abuseMarkAsResolved: "Oznacz zgłoszenie jako rozwiązane"
|
||||||
openInNewTab: "Otwórz w nowej karcie"
|
openInNewTab: "Otwórz w nowej karcie"
|
||||||
@ -618,8 +630,12 @@ random: "Losowe"
|
|||||||
system: "System"
|
system: "System"
|
||||||
switchUi: "Przełącz interfejs użytkownika"
|
switchUi: "Przełącz interfejs użytkownika"
|
||||||
desktop: "Pulpit"
|
desktop: "Pulpit"
|
||||||
|
clip: "Klip"
|
||||||
createNew: "Utwórz nowy"
|
createNew: "Utwórz nowy"
|
||||||
optional: "Nieobowiązkowe"
|
optional: "Nieobowiązkowe"
|
||||||
|
createNewClip: "Utwórz nowy klip"
|
||||||
|
unclip: "Odczep"
|
||||||
|
confirmToUnclipAlreadyClippedNote: "Ten wpis jest już częścią klipu \"{name}\". Czy chcesz ją usunąć z tego klipu?"
|
||||||
public: "Publiczny"
|
public: "Publiczny"
|
||||||
i18nInfo: "Misskey jest tłumaczone na wiele języków przez wolontariuszy. Możesz pomóc na {link}."
|
i18nInfo: "Misskey jest tłumaczone na wiele języków przez wolontariuszy. Możesz pomóc na {link}."
|
||||||
manageAccessTokens: "Zarządzaj tokenami dostępu"
|
manageAccessTokens: "Zarządzaj tokenami dostępu"
|
||||||
@ -653,6 +669,7 @@ pageLikesCount: "Liczba otrzymanych polubień stron"
|
|||||||
pageLikedCount: "Liczba polubionych stron"
|
pageLikedCount: "Liczba polubionych stron"
|
||||||
contact: "Kontakt"
|
contact: "Kontakt"
|
||||||
useSystemFont: "Używaj domyślnej czcionki systemu"
|
useSystemFont: "Używaj domyślnej czcionki systemu"
|
||||||
|
clips: "Klipy"
|
||||||
experimentalFeatures: "Eksperymentalne funkcje"
|
experimentalFeatures: "Eksperymentalne funkcje"
|
||||||
developer: "Programista"
|
developer: "Programista"
|
||||||
makeExplorable: "Pokazuj konto na stronie „Eksploruj”"
|
makeExplorable: "Pokazuj konto na stronie „Eksploruj”"
|
||||||
@ -724,6 +741,7 @@ notRecommended: "Nie zalecane"
|
|||||||
botProtection: "Zabezpieczenie przed botami"
|
botProtection: "Zabezpieczenie przed botami"
|
||||||
instanceBlocking: "Zablokowane instancje"
|
instanceBlocking: "Zablokowane instancje"
|
||||||
selectAccount: "Wybierz konto"
|
selectAccount: "Wybierz konto"
|
||||||
|
switchAccount: "Przełącz konto"
|
||||||
enabled: "Właczono"
|
enabled: "Właczono"
|
||||||
disabled: "Wyłączono"
|
disabled: "Wyłączono"
|
||||||
quickAction: "Szybkie działania"
|
quickAction: "Szybkie działania"
|
||||||
@ -755,22 +773,103 @@ global: "Globalna"
|
|||||||
squareAvatars: "Wyświetlaj kwadratowe awatary"
|
squareAvatars: "Wyświetlaj kwadratowe awatary"
|
||||||
sent: "Wyślij"
|
sent: "Wyślij"
|
||||||
received: "Otrzymane"
|
received: "Otrzymane"
|
||||||
|
searchResult: "Wyniki wyszukiwania"
|
||||||
hashtags: "Hashtag"
|
hashtags: "Hashtag"
|
||||||
|
troubleshooting: "Rozwiązywanie problemów"
|
||||||
|
useBlurEffect: "Użyj efektów rozmycia w UI"
|
||||||
|
learnMore: "Dowiedz się więcej"
|
||||||
|
misskeyUpdated: "Misskey zostało zaktualizowane!"
|
||||||
|
whatIsNew: "Pokaż zmiany"
|
||||||
|
translate: "Przetłumacz"
|
||||||
|
translatedFrom: "Przetłumaczone z {x}"
|
||||||
|
accountDeletionInProgress: "Trwa usuwanie konta"
|
||||||
|
usernameInfo: "Nazwa, która identyfikuje Twoje konto spośród innych na tym serwerze. Możesz użyć alfabetu (a~z, A~Z), cyfr (0~9) lub podkreślników (_). Nazwy użytkownika nie mogą być później zmieniane."
|
||||||
|
aiChanMode: "Tryb Ai"
|
||||||
|
keepCw: "Zostaw ostrzeżenia o zawartości"
|
||||||
pubSub: "Konta Pub/Sub"
|
pubSub: "Konta Pub/Sub"
|
||||||
|
resolved: "Rozwiązane"
|
||||||
|
unresolved: "Nierozwiązane"
|
||||||
|
breakFollow: "Usuń obserwującego"
|
||||||
|
itsOn: "Włączone"
|
||||||
|
itsOff: "Wyłączone"
|
||||||
|
unread: "Nieodczytane"
|
||||||
|
filter: "Filtr"
|
||||||
|
controlPanel: "Panel sterowania"
|
||||||
|
manageAccounts: "Zarządzaj kontami"
|
||||||
|
makeReactionsPublic: "Ustawić historię reakcji jako publiczną"
|
||||||
|
makeReactionsPublicDescription: "To spowoduje, że lista wszystkich Twoich dotychczasowych reakcji będzie publicznie widoczna."
|
||||||
|
classic: "Klasyczny"
|
||||||
|
muteThread: "Wycisz wątek"
|
||||||
|
unmuteThread: "Wyłącz wyciszenie wątku"
|
||||||
|
ffVisibility: "Widoczność obserwowanych/obserwujących"
|
||||||
|
ffVisibilityDescription: "Pozwala skonfigurować, kto może zobaczyć, kogo obserwujesz i kto Cię obserwuje."
|
||||||
|
continueThread: "Pokaż kontynuację wątku"
|
||||||
|
deleteAccountConfirm: "Spowoduje to nieodwracalne usunięcie Twojego konta. Kontynuować?"
|
||||||
|
incorrectPassword: "Nieprawidłowe hasło."
|
||||||
|
voteConfirm: "Potwierdzić swój głos na \"{choice}\"?"
|
||||||
hide: "Ukryj"
|
hide: "Ukryj"
|
||||||
|
leaveGroup: "Opuść grupę"
|
||||||
|
leaveGroupConfirm: "Czy na pewno chcesz opuścić \"{name}\"?"
|
||||||
|
useDrawerReactionPickerForMobile: "Wyświetlaj wybornik reakcji jako szufladę na urządzeniach mobilnych"
|
||||||
|
welcomeBackWithName: "Witaj z powrotem, {name}"
|
||||||
|
clickToFinishEmailVerification: "Kliknij [{ok}], aby zakończyć weryfikację e-mail."
|
||||||
|
overridedDeviceKind: "Typ urządzenia"
|
||||||
|
smartphone: "Smartfon"
|
||||||
|
tablet: "Tablet"
|
||||||
|
auto: "Automatycznie"
|
||||||
|
size: "Rozmiar"
|
||||||
|
numberOfColumn: "Liczba kolumn"
|
||||||
searchByGoogle: "Szukaj"
|
searchByGoogle: "Szukaj"
|
||||||
indefinitely: "Nigdy"
|
indefinitely: "Nigdy"
|
||||||
file: "Pliki"
|
file: "Pliki"
|
||||||
|
logoutConfirm: "Czy na pewno chcesz się wylogować?"
|
||||||
|
lastActiveDate: "Ostatnio użyte w"
|
||||||
|
statusbar: "Pasek stanu"
|
||||||
|
pleaseSelect: "Wybierz opcję"
|
||||||
reverse: "Odwróć"
|
reverse: "Odwróć"
|
||||||
colored: "Kolorowe"
|
colored: "Kolorowe"
|
||||||
label: "Etykieta"
|
label: "Etykieta"
|
||||||
|
type: "Typ"
|
||||||
|
speed: "Prędkość"
|
||||||
|
localOnly: "Lokalne tylko"
|
||||||
|
failedToUpload: "Przesyłanie nie powiodło się"
|
||||||
|
cannotUploadBecauseInappropriate: "Nie można przesłać tego pliku, ponieważ jego części zostały wykryte jako potencjalnie nieodpowiednie."
|
||||||
|
cannotUploadBecauseNoFreeSpace: "Przesyłanie nie powiodło się z powodu braku miejsca na dysku."
|
||||||
|
beta: "Beta"
|
||||||
|
enableAutoSensitive: "Automatyczne oznaczanie NSFW"
|
||||||
|
enableAutoSensitiveDescription: "Umożliwia automatyczne wykrywanie i oznaczanie zawartości NSFW za pomocą uczenia maszynowego. Nawet jeśli ta opcja jest wyłączona, może być włączona w całej instancji."
|
||||||
|
navbar: "Pasek nawigacyjny"
|
||||||
account: "Konta"
|
account: "Konta"
|
||||||
|
move: "Przenieś"
|
||||||
|
_sensitiveMediaDetection:
|
||||||
|
description: "Zmniejsza wysiłek związany z moderacją serwera dzięki automatycznemu rozpoznawaniu zawartości NSFW za pomocą uczenia maszynowego. To nieznacznie zwiększy obciążenie serwera."
|
||||||
|
setSensitiveFlagAutomatically: "Oznacz jako NSFW"
|
||||||
|
_emailUnavailable:
|
||||||
|
used: "Ten adres e-mail jest już używany"
|
||||||
|
format: "Format tego adresu e-mail jest nieprawidłowy"
|
||||||
|
disposable: "Nie można używać jednorazowych adresów e-mail"
|
||||||
|
mx: "Ten serwer e-mail jest nieprawidłowy"
|
||||||
|
smtp: "Ten serwer e-mail nie odpowiada"
|
||||||
_ffVisibility:
|
_ffVisibility:
|
||||||
public: "Publikuj"
|
public: "Publiczne"
|
||||||
|
followers: "Widoczne tylko dla obserwujących"
|
||||||
|
private: "Prywatne"
|
||||||
|
_signup:
|
||||||
|
almostThere: "Prawie na miejscu"
|
||||||
|
emailAddressInfo: "Podaj swój adres e-mail. Nie zostanie on upubliczniony."
|
||||||
|
emailSent: "E-mail z potwierdzeniem został wysłany na Twój adres e-mail ({email}). Kliknij dołączony link, aby dokończyć tworzenie konta."
|
||||||
|
_accountDelete:
|
||||||
|
accountDelete: "Usuń konto"
|
||||||
|
mayTakeTime: "Ponieważ usuwanie konta jest procesem wymagającym dużej ilości zasobów, jego ukończenie może zająć trochę czasu, w zależności od ilości utworzonej zawartości i liczby przesłanych plików."
|
||||||
|
sendEmail: "Po zakończeniu usuwania konta na adres e-mail zarejestrowany na tym koncie zostanie wysłana wiadomość e-mail."
|
||||||
|
requestAccountDelete: "Poproś o usunięcie konta"
|
||||||
|
started: "Usuwanie się rozpoczęło."
|
||||||
|
inProgress: "Usuwanie jest obecnie w toku"
|
||||||
_ad:
|
_ad:
|
||||||
back: "Wróć"
|
back: "Wróć"
|
||||||
reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej"
|
reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej"
|
||||||
_forgotPassword:
|
_forgotPassword:
|
||||||
|
enterEmail: "Wpisz adres e-mail użyty do rejestracji. Zostanie do niego wysłany link, za pomocą którego możesz zresetować hasło."
|
||||||
ifNoEmail: "Jeżeli nie podano adresu e-mail podczas rejestracji, skontaktuj się z administratorem zamiast tego."
|
ifNoEmail: "Jeżeli nie podano adresu e-mail podczas rejestracji, skontaktuj się z administratorem zamiast tego."
|
||||||
contactAdmin: "Jeżeli Twoja instancja nie obsługuje adresów e-mail, skontaktuj się zamiast tego z administratorem, aby zresetować hasło."
|
contactAdmin: "Jeżeli Twoja instancja nie obsługuje adresów e-mail, skontaktuj się zamiast tego z administratorem, aby zresetować hasło."
|
||||||
_gallery:
|
_gallery:
|
||||||
@ -787,6 +886,23 @@ _plugin:
|
|||||||
install: "Zainstaluj wtyczki"
|
install: "Zainstaluj wtyczki"
|
||||||
installWarn: "Nie instaluj niezaufanych wtyczek."
|
installWarn: "Nie instaluj niezaufanych wtyczek."
|
||||||
manage: "Zarządzanie wtyczkami"
|
manage: "Zarządzanie wtyczkami"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "Utworzone kopie zapasowe"
|
||||||
|
saveNew: "Zapisz nową kopię zapasową"
|
||||||
|
loadFile: "Załaduj z pliku"
|
||||||
|
apply: "Zastosuj do tego urządzenia"
|
||||||
|
save: "Zapisz zmiany"
|
||||||
|
inputName: "Proszę podać nazwę dla tej kopii zapasowej"
|
||||||
|
cannotSave: "Zapisanie nie powiodło się"
|
||||||
|
nameAlreadyExists: "Kopia zapasowa o nazwie \"{name}\" już istnieje. Proszę podać inną nazwę."
|
||||||
|
applyConfirm: "Czy na pewno chcesz zastosować kopię zapasową \"{name}\" na tym urządzeniu? Istniejące ustawienia tego urządzenia zostaną nadpisane."
|
||||||
|
saveConfirm: "Zapisać kopię zapasową jako {name}?"
|
||||||
|
deleteConfirm: "Usunąć kopię zapasową {name}?"
|
||||||
|
renameConfirm: "Zmienić nazwę kopii zapasowej z \"{old}\" na \"{new}\"?"
|
||||||
|
createdAt: "Utworzony w: {date} {time}"
|
||||||
|
updatedAt: "Zaktualizowano w: {date} {time}"
|
||||||
|
cannotLoad: "Ładowanie nie powiodło się"
|
||||||
|
invalidFile: "Nieprawidłowy format pliku"
|
||||||
_registry:
|
_registry:
|
||||||
scope: "Zakres"
|
scope: "Zakres"
|
||||||
key: "Klucz"
|
key: "Klucz"
|
||||||
@ -821,10 +937,13 @@ _mfm:
|
|||||||
bold: "Pogrubienie"
|
bold: "Pogrubienie"
|
||||||
boldDescription: "Wyróżnia litery pogrubiając je."
|
boldDescription: "Wyróżnia litery pogrubiając je."
|
||||||
small: "Małe"
|
small: "Małe"
|
||||||
|
smallDescription: "Wyświetla treść jako małą i cienką."
|
||||||
center: "Wyśrodkowanie"
|
center: "Wyśrodkowanie"
|
||||||
centerDescription: "Wyśrodkowuje zawartość."
|
centerDescription: "Wyśrodkowuje zawartość."
|
||||||
|
inlineCode: "Kod (w wierszu)"
|
||||||
blockCode: "Kod (blok)"
|
blockCode: "Kod (blok)"
|
||||||
blockCodeDescription: "Wyświetla kod z podświetlaną składnią składający się z wielu linii."
|
blockCodeDescription: "Wyświetla kod z podświetlaną składnią składający się z wielu linii."
|
||||||
|
blockMath: "Matematyka (Blok)"
|
||||||
quote: "Cytuj"
|
quote: "Cytuj"
|
||||||
quoteDescription: "Wyświetla treść jako cytat."
|
quoteDescription: "Wyświetla treść jako cytat."
|
||||||
emoji: "Niestandardowe emoji"
|
emoji: "Niestandardowe emoji"
|
||||||
@ -833,6 +952,20 @@ _mfm:
|
|||||||
searchDescription: "Wyświetla pole wyszukiwania z wcześniej wpisanym tekstem."
|
searchDescription: "Wyświetla pole wyszukiwania z wcześniej wpisanym tekstem."
|
||||||
flip: "Odwróć"
|
flip: "Odwróć"
|
||||||
flipDescription: "Przerzuca treść poziomo lub pionowo."
|
flipDescription: "Przerzuca treść poziomo lub pionowo."
|
||||||
|
jelly: "Animacja (Galaretka)"
|
||||||
|
jellyDescription: "Nadaje treści galaretowatą animację."
|
||||||
|
tada: "Animation (Tada)"
|
||||||
|
tadaDescription: "Nadaje treści animację podobną do \"Tada!\"."
|
||||||
|
jump: "Animacja (Skok)"
|
||||||
|
jumpDescription: "Nadaje treści animację skakania."
|
||||||
|
bounce: "Animacja (Odbijanie)"
|
||||||
|
bounceDescription: "Nadaje treści animację odbijania się."
|
||||||
|
shake: "Animacja (Wstrząsanie)"
|
||||||
|
shakeDescription: "Nadaje treści animację wstrząsania."
|
||||||
|
twitch: "Animacja (Drganie)"
|
||||||
|
twitchDescription: "Nadaje treści mocno drgającą animację."
|
||||||
|
spin: "Animacja (Obrót)"
|
||||||
|
spinDescription: "Nadaje treści animację obracania."
|
||||||
x2: "Duże"
|
x2: "Duże"
|
||||||
x2Description: "Czyni treść większą."
|
x2Description: "Czyni treść większą."
|
||||||
x3: "Bardzo duże"
|
x3: "Bardzo duże"
|
||||||
@ -840,9 +973,17 @@ _mfm:
|
|||||||
x4: "Ogromne"
|
x4: "Ogromne"
|
||||||
x4Description: "Czyni treść jeszcze większą niż jeszcze większa."
|
x4Description: "Czyni treść jeszcze większą niż jeszcze większa."
|
||||||
blur: "Rozmycie"
|
blur: "Rozmycie"
|
||||||
|
blurDescription: "Rozmywa treść. Zostanie wyraźnie wyświetlona po najechaniu."
|
||||||
font: "Czcionka"
|
font: "Czcionka"
|
||||||
fontDescription: "Wybiera czcionkę do wyświetlania treści."
|
fontDescription: "Wybiera czcionkę do wyświetlania treści."
|
||||||
|
rainbow: "Tęcza"
|
||||||
|
rainbowDescription: "Sprawia, że zawartość pojawia się w kolorach tęczy."
|
||||||
|
sparkle: "Blask"
|
||||||
|
sparkleDescription: "Nadaje zawartości efekt lśniącego brokatu."
|
||||||
rotate: "Obróć"
|
rotate: "Obróć"
|
||||||
|
rotateDescription: "Obraca zawartość o określony kąt."
|
||||||
|
plain: "Zwyczajny"
|
||||||
|
plainDescription: "Wyłącza efekty wszystkich MFM zawartych w tym efekcie MFM."
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "Nigdy nie pokazuj"
|
none: "Nigdy nie pokazuj"
|
||||||
remote: "Pokaż dla zdalnych użytkowników"
|
remote: "Pokaż dla zdalnych użytkowników"
|
||||||
@ -862,6 +1003,7 @@ _channel:
|
|||||||
usersCount: "{n} uczestnicy"
|
usersCount: "{n} uczestnicy"
|
||||||
notesCount: "{n} wpisy"
|
notesCount: "{n} wpisy"
|
||||||
_menuDisplay:
|
_menuDisplay:
|
||||||
|
top: "Góra"
|
||||||
hide: "Ukryj"
|
hide: "Ukryj"
|
||||||
_wordMute:
|
_wordMute:
|
||||||
muteWords: "Słowo do wyciszenia"
|
muteWords: "Słowo do wyciszenia"
|
||||||
@ -869,6 +1011,9 @@ _wordMute:
|
|||||||
soft: "Łagodny"
|
soft: "Łagodny"
|
||||||
hard: "Twardy"
|
hard: "Twardy"
|
||||||
mutedNotes: "Wyciszone wpisy"
|
mutedNotes: "Wyciszone wpisy"
|
||||||
|
_instanceMute:
|
||||||
|
title: "Ukrywa wpisy z wymienionych instancji."
|
||||||
|
heading: "Lista instancji do wyciszenia"
|
||||||
_theme:
|
_theme:
|
||||||
explore: "Przeglądaj motywy"
|
explore: "Przeglądaj motywy"
|
||||||
install: "Zainstaluj motyw"
|
install: "Zainstaluj motyw"
|
||||||
@ -949,6 +1094,7 @@ _sfx:
|
|||||||
notification: "Powiadomienia"
|
notification: "Powiadomienia"
|
||||||
chat: "Wiadomości"
|
chat: "Wiadomości"
|
||||||
chatBg: "Rozmowy (tło)"
|
chatBg: "Rozmowy (tło)"
|
||||||
|
antenna: "Anteny"
|
||||||
channel: "Powiadomienia kanału"
|
channel: "Powiadomienia kanału"
|
||||||
_ago:
|
_ago:
|
||||||
future: "W przyszłości"
|
future: "W przyszłości"
|
||||||
@ -968,12 +1114,30 @@ _time:
|
|||||||
_tutorial:
|
_tutorial:
|
||||||
title: "Jak korzystać z Misskey"
|
title: "Jak korzystać z Misskey"
|
||||||
step1_1: "Witaj!"
|
step1_1: "Witaj!"
|
||||||
|
step1_2: "Ta strona nazywa się „oś czasu”. Pokazuje chronologicznie uporządkowane wpisy osób, które „śledzisz”."
|
||||||
step1_3: "Twoja oś czasu jest jeszcze pusta, ponieważ nie opublikowałeś(-aś) jeszcze żadnych wpisów i nie obserwujesz jeszcze nikogo."
|
step1_3: "Twoja oś czasu jest jeszcze pusta, ponieważ nie opublikowałeś(-aś) jeszcze żadnych wpisów i nie obserwujesz jeszcze nikogo."
|
||||||
step2_1: "Ukończmy konfigurację profilu zanim utworzymy wpis lub zaczniemy kogoś obserwować."
|
step2_1: "Ukończmy konfigurację profilu zanim utworzymy wpis lub zaczniemy kogoś obserwować."
|
||||||
|
step2_2: "Podanie pewnych informacji o tym, kim jesteś, ułatwi innym określenie, czy chcą widzieć Twoje wpisy lub Cię obserwować."
|
||||||
step3_1: "Zakończyłeś(-aś) konfigurację profilu?"
|
step3_1: "Zakończyłeś(-aś) konfigurację profilu?"
|
||||||
|
step3_2: "Następnie spróbujmy opublikować wpis. Możesz to zrobić, naciskając przycisk z ikoną ołówka na ekranie."
|
||||||
step3_3: "Wypełnij pole i kliknij przycisk w prawym górnym rogu by wysłać post."
|
step3_3: "Wypełnij pole i kliknij przycisk w prawym górnym rogu by wysłać post."
|
||||||
|
step3_4: "Nie masz nic do powiedzenia? Spróbuj \"ustawiam swój misskey\"!"
|
||||||
|
step4_1: "Zakończyłeś publikowanie pierwszego wpisu?"
|
||||||
|
step4_2: "Hurra! Teraz Twój pierwszy wpis powinien być wyświetlany na Twojej osi czasu."
|
||||||
|
step5_1: "Teraz spróbujmy ożywić Twoją oś czasu, przez zaobserwowanie innych ludzi."
|
||||||
|
step5_2: "{featured} pokaże Ci popularne wpisy na tej instancji. {explore} pozwoli Ci znaleźć popularnych użytkowników. Spróbuj znaleźć tam osoby, które chcesz obserwować!"
|
||||||
|
step5_3: "Aby obserwować innych użytkowników, kliknij ich ikonę i naciśnij przycisk \"Obserwuj\" na ich profilu."
|
||||||
|
step5_4: "Jeśli inny użytkownik ma ikonę kłódki obok swojej nazwy, może minąć trochę czasu, zanim ten użytkownik ręcznie zatwierdzi Twoją prośbę o obserwowanie."
|
||||||
|
step6_1: "Powinieneś teraz widzieć wpisy innych użytkowników na swojej osi czasu."
|
||||||
|
step6_2: "Możesz także umieścić „reakcje” na wpisach innych osób, aby szybko na nie odpowiedzieć."
|
||||||
|
step6_3: "Aby dodać \"reakcję\", naciśnij znak \"+\" na wpisie innego użytkownika i wybierz emotikonę, którą chcesz zareagować."
|
||||||
|
step7_1: "Gratulacje! Ukończyłeś podstawowy samouczek Misskey."
|
||||||
|
step7_2: "Jeśli chcesz dowiedzieć się więcej o Misskey, wypróbuj sekcję {help}."
|
||||||
|
step7_3: "A teraz powodzenia i baw się dobrze z Misskey! 🚀"
|
||||||
_2fa:
|
_2fa:
|
||||||
|
alreadyRegistered: "Zarejestrowałeś już urządzenie do uwierzytelniania dwuskładnikowego."
|
||||||
registerDevice: "Zarejestruj nowe urządzenie"
|
registerDevice: "Zarejestruj nowe urządzenie"
|
||||||
|
registerKey: "Zarejestruj klucz bezpieczeństwa"
|
||||||
step1: "Najpierw, zainstaluj aplikację uwierzytelniającą (taką jak {a} lub {b}) na swoim urządzeniu."
|
step1: "Najpierw, zainstaluj aplikację uwierzytelniającą (taką jak {a} lub {b}) na swoim urządzeniu."
|
||||||
step2: "Następnie, zeskanuje kod QR z ekranu."
|
step2: "Następnie, zeskanuje kod QR z ekranu."
|
||||||
step3: "Wprowadź token podany w aplikacji, aby ukończyć konfigurację."
|
step3: "Wprowadź token podany w aplikacji, aby ukończyć konfigurację."
|
||||||
@ -989,6 +1153,7 @@ _permissions:
|
|||||||
"write:favorites": "Edycja Twojej listy ulubionych."
|
"write:favorites": "Edycja Twojej listy ulubionych."
|
||||||
"read:following": "Wyświetlanie informacji o obserwowanych"
|
"read:following": "Wyświetlanie informacji o obserwowanych"
|
||||||
"write:following": "Obserwowanie lub cofanie obserwacji innych kont"
|
"write:following": "Obserwowanie lub cofanie obserwacji innych kont"
|
||||||
|
"read:messaging": "Zobacz swoje czaty"
|
||||||
"read:mutes": "Wyświetlanie listy osób, które wyciszyłeś(-aś)"
|
"read:mutes": "Wyświetlanie listy osób, które wyciszyłeś(-aś)"
|
||||||
"write:mutes": "Edycja listy osób, które wyciszyłeś(-aś)"
|
"write:mutes": "Edycja listy osób, które wyciszyłeś(-aś)"
|
||||||
"read:notifications": "Wyświetlanie powiadomień"
|
"read:notifications": "Wyświetlanie powiadomień"
|
||||||
@ -1002,6 +1167,10 @@ _permissions:
|
|||||||
"write:page-likes": "Edycja polubień na stronach"
|
"write:page-likes": "Edycja polubień na stronach"
|
||||||
"read:user-groups": "Wyświetlanie grup użytkownika"
|
"read:user-groups": "Wyświetlanie grup użytkownika"
|
||||||
"write:user-groups": "Edycja lub usuwanie grup użytkownika"
|
"write:user-groups": "Edycja lub usuwanie grup użytkownika"
|
||||||
|
"read:channels": "Zobacz swoje kanały"
|
||||||
|
"write:channels": "Edytuj swoje kanały"
|
||||||
|
"read:gallery": "Zobacz swoją galerię"
|
||||||
|
"write:gallery": "Edytuj swoją galerię"
|
||||||
_auth:
|
_auth:
|
||||||
shareAccess: "Czy chcesz autoryzować „{name}” do dostępu do tego konta?"
|
shareAccess: "Czy chcesz autoryzować „{name}” do dostępu do tego konta?"
|
||||||
permissionAsk: "Ta aplikacja wymaga następujących uprawnień:"
|
permissionAsk: "Ta aplikacja wymaga następujących uprawnień:"
|
||||||
@ -1020,12 +1189,21 @@ _widgets:
|
|||||||
calendar: "Kalendarz"
|
calendar: "Kalendarz"
|
||||||
trends: "Na czasie"
|
trends: "Na czasie"
|
||||||
clock: "Zegar"
|
clock: "Zegar"
|
||||||
|
rss: "Czytnik RSS"
|
||||||
activity: "Aktywność"
|
activity: "Aktywność"
|
||||||
photos: "Zdjęcia"
|
photos: "Zdjęcia"
|
||||||
|
digitalClock: "Zegar cyfrowy"
|
||||||
|
unixClock: "Zegar UNIX"
|
||||||
federation: "Federacja"
|
federation: "Federacja"
|
||||||
postForm: "Utwórz wpis"
|
instanceCloud: "Chmura instancji"
|
||||||
|
postForm: "Formularz tworzenia wpisu"
|
||||||
|
slideshow: "Pokaz slajdów"
|
||||||
button: "Przycisk"
|
button: "Przycisk"
|
||||||
|
onlineUsers: "Użytkownicy online"
|
||||||
jobQueue: "Kolejka zadań"
|
jobQueue: "Kolejka zadań"
|
||||||
|
serverMetric: "Metryka serwera"
|
||||||
|
aiscript: "Konsola AiScript"
|
||||||
|
aichan: "Ai"
|
||||||
_cw:
|
_cw:
|
||||||
hide: "Ukryj"
|
hide: "Ukryj"
|
||||||
show: "Załaduj więcej"
|
show: "Załaduj więcej"
|
||||||
@ -1392,9 +1570,11 @@ _notification:
|
|||||||
youReceivedFollowRequest: "Otrzymałeś(-aś) prośbę o możliwość obserwacji"
|
youReceivedFollowRequest: "Otrzymałeś(-aś) prośbę o możliwość obserwacji"
|
||||||
yourFollowRequestAccepted: "Twoja prośba o możliwość obserwacji została przyjęta"
|
yourFollowRequestAccepted: "Twoja prośba o możliwość obserwacji została przyjęta"
|
||||||
youWereInvitedToGroup: "Zaproszony(-a) do grupy"
|
youWereInvitedToGroup: "Zaproszony(-a) do grupy"
|
||||||
|
pollEnded: "Wyniki ankiety stały się dostępne"
|
||||||
|
emptyPushNotificationMessage: "Powiadomienia push zostały zaktualizowane"
|
||||||
_types:
|
_types:
|
||||||
all: "Wszystkie"
|
all: "Wszystkie"
|
||||||
follow: "Obserwowani"
|
follow: "Nowi obserwujący"
|
||||||
mention: "Wspomnij"
|
mention: "Wspomnij"
|
||||||
reply: "Odpowiedzi"
|
reply: "Odpowiedzi"
|
||||||
renote: "Udostępnij"
|
renote: "Udostępnij"
|
||||||
@ -1406,12 +1586,14 @@ _notification:
|
|||||||
groupInvited: "Zaproszono do grup"
|
groupInvited: "Zaproszono do grup"
|
||||||
app: "Powiadomienia z aplikacji"
|
app: "Powiadomienia z aplikacji"
|
||||||
_actions:
|
_actions:
|
||||||
|
followBack: "zaobserwował cię z powrotem"
|
||||||
reply: "Odpowiedz"
|
reply: "Odpowiedz"
|
||||||
renote: "Udostępnij"
|
renote: "Udostępnij"
|
||||||
_deck:
|
_deck:
|
||||||
alwaysShowMainColumn: "Zawsze pokazuj główną kolumnę"
|
alwaysShowMainColumn: "Zawsze pokazuj główną kolumnę"
|
||||||
columnAlign: "Wyrównaj kolumny"
|
columnAlign: "Wyrównaj kolumny"
|
||||||
addColumn: "Dodaj kolumnę"
|
addColumn: "Dodaj kolumnę"
|
||||||
|
configureColumn: "Ustawienia kolumny"
|
||||||
swapLeft: "Przesuń w lewo"
|
swapLeft: "Przesuń w lewo"
|
||||||
swapRight: "Przesuń w prawo"
|
swapRight: "Przesuń w prawo"
|
||||||
swapUp: "Zamień z powyższym"
|
swapUp: "Zamień z powyższym"
|
||||||
@ -1419,6 +1601,9 @@ _deck:
|
|||||||
stackLeft: "Przypnij do lewej"
|
stackLeft: "Przypnij do lewej"
|
||||||
popRight: "Odepnij w prawo"
|
popRight: "Odepnij w prawo"
|
||||||
profile: "Profil"
|
profile: "Profil"
|
||||||
|
newProfile: "Nowy profil"
|
||||||
|
deleteProfile: "Usuń profil"
|
||||||
|
widgetsIntroduction: "Wybierz \"Edytuj widżety\" w menu kolumny i dodaj widżet."
|
||||||
_columns:
|
_columns:
|
||||||
main: "Główna"
|
main: "Główna"
|
||||||
widgets: "Widżety"
|
widgets: "Widżety"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Pesquisar utilizador"
|
|||||||
reply: "Responder"
|
reply: "Responder"
|
||||||
loadMore: "Carregar mais"
|
loadMore: "Carregar mais"
|
||||||
showMore: "Ver mais"
|
showMore: "Ver mais"
|
||||||
|
showLess: "Fechar"
|
||||||
youGotNewFollower: "Você tem um novo seguidor"
|
youGotNewFollower: "Você tem um novo seguidor"
|
||||||
receiveFollowRequest: "Pedido de seguimento recebido"
|
receiveFollowRequest: "Pedido de seguimento recebido"
|
||||||
followRequestAccepted: "Pedido de seguir aceito"
|
followRequestAccepted: "Pedido de seguir aceito"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Caută un utilizator"
|
|||||||
reply: "Răspunde"
|
reply: "Răspunde"
|
||||||
loadMore: "Incarcă mai mult"
|
loadMore: "Incarcă mai mult"
|
||||||
showMore: "Arată mai mult"
|
showMore: "Arată mai mult"
|
||||||
|
showLess: "Închide"
|
||||||
youGotNewFollower: "te-a urmărit"
|
youGotNewFollower: "te-a urmărit"
|
||||||
receiveFollowRequest: "Cerere de urmărire primită"
|
receiveFollowRequest: "Cerere de urmărire primită"
|
||||||
followRequestAccepted: "Cerere de urmărire acceptată"
|
followRequestAccepted: "Cerere de urmărire acceptată"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Поиск людей"
|
|||||||
reply: "Ответить"
|
reply: "Ответить"
|
||||||
loadMore: "Показать еще"
|
loadMore: "Показать еще"
|
||||||
showMore: "Показать еще"
|
showMore: "Показать еще"
|
||||||
|
showLess: "Закрыть"
|
||||||
youGotNewFollower: "Новый подписчик"
|
youGotNewFollower: "Новый подписчик"
|
||||||
receiveFollowRequest: "Получен запрос на подписку"
|
receiveFollowRequest: "Получен запрос на подписку"
|
||||||
followRequestAccepted: "Запрос на подписку принят"
|
followRequestAccepted: "Запрос на подписку принят"
|
||||||
@ -561,6 +562,7 @@ author: "Автор"
|
|||||||
leaveConfirm: "Вы не сохранили изменения. Хотите выйти и потерять их?"
|
leaveConfirm: "Вы не сохранили изменения. Хотите выйти и потерять их?"
|
||||||
manage: "Управление"
|
manage: "Управление"
|
||||||
plugins: "Расширения"
|
plugins: "Расширения"
|
||||||
|
preferencesBackups: "Резервная копия"
|
||||||
deck: "Пульт"
|
deck: "Пульт"
|
||||||
undeck: "Покинуть пульт"
|
undeck: "Покинуть пульт"
|
||||||
useBlurEffectForModal: "Размывка под формой поверх всего"
|
useBlurEffectForModal: "Размывка под формой поверх всего"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Hľadať používateľov"
|
|||||||
reply: "Odpovedať"
|
reply: "Odpovedať"
|
||||||
loadMore: "Zobraziť viac"
|
loadMore: "Zobraziť viac"
|
||||||
showMore: "Zobraziť viac"
|
showMore: "Zobraziť viac"
|
||||||
|
showLess: "Zavrieť"
|
||||||
youGotNewFollower: "Máte nového sledujúceho"
|
youGotNewFollower: "Máte nového sledujúceho"
|
||||||
receiveFollowRequest: "Žiadosť o sledovanie prijatá"
|
receiveFollowRequest: "Žiadosť o sledovanie prijatá"
|
||||||
followRequestAccepted: "Žiadosť o sledovanie akceptovaná"
|
followRequestAccepted: "Žiadosť o sledovanie akceptovaná"
|
||||||
@ -561,6 +562,7 @@ author: "Autor"
|
|||||||
leaveConfirm: "Máte neuložené zmeny. Chcete ich zahodiť?"
|
leaveConfirm: "Máte neuložené zmeny. Chcete ich zahodiť?"
|
||||||
manage: "Administrácia"
|
manage: "Administrácia"
|
||||||
plugins: "Pluginy"
|
plugins: "Pluginy"
|
||||||
|
preferencesBackups: "Zálohy nastavení"
|
||||||
deck: "Deck"
|
deck: "Deck"
|
||||||
useBlurEffectForModal: "Použiť efekt rozmazania na okná"
|
useBlurEffectForModal: "Použiť efekt rozmazania na okná"
|
||||||
useFullReactionPicker: "Použiť plnú veľkosť výberu reakcií"
|
useFullReactionPicker: "Použiť plnú veľkosť výberu reakcií"
|
||||||
@ -936,6 +938,24 @@ _plugin:
|
|||||||
install: "Inštalova pluginy"
|
install: "Inštalova pluginy"
|
||||||
installWarn: "Prosím neinštalujte nedôveryhodné pluginy."
|
installWarn: "Prosím neinštalujte nedôveryhodné pluginy."
|
||||||
manage: "Spravovanie pluginov"
|
manage: "Spravovanie pluginov"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "Vytvorené zálohy"
|
||||||
|
saveNew: "Uložiť novú"
|
||||||
|
loadFile: "Nahrať súbor"
|
||||||
|
apply: "Použiť na toto zariadenie"
|
||||||
|
save: "Uložiť"
|
||||||
|
inputName: "Názov zálohy"
|
||||||
|
cannotSave: "Nedá sa uložiť"
|
||||||
|
nameAlreadyExists: "Záloha s názvom \"{name}\" už existuje. Zadajte iný názov."
|
||||||
|
applyConfirm: "Chcete použiť zálohu '{name}' na aktuálne zariadenie? Aktuálne nastavenia zariadenia sa stratia."
|
||||||
|
saveConfirm: "Chcete prepísať {name}?"
|
||||||
|
deleteConfirm: "Naozaj chcete odstrániť \"{name}\"?"
|
||||||
|
renameConfirm: "Chcete zmeniť \"{old}\" na \"{new}\"?"
|
||||||
|
noBackups: "Nie je k dispozícii žiadna záloha. \"Uložiť novú\" umožňuje uložiť aktuálnu konfiguráciu zariadenia na server."
|
||||||
|
createdAt: "Dátum vytvorenia: {date} {time}"
|
||||||
|
updatedAt: "Dátum úpravy: {date} {time}"
|
||||||
|
cannotLoad: "Nedá sa nahrať"
|
||||||
|
invalidFile: "Neplatný formát súboru"
|
||||||
_registry:
|
_registry:
|
||||||
scope: "Oblasť"
|
scope: "Oblasť"
|
||||||
key: "Kľúč"
|
key: "Kľúč"
|
||||||
@ -1019,6 +1039,8 @@ _mfm:
|
|||||||
sparkleDescription: "Obsahu dodá trblietajúci efekt."
|
sparkleDescription: "Obsahu dodá trblietajúci efekt."
|
||||||
rotate: "Otáčať"
|
rotate: "Otáčať"
|
||||||
rotateDescription: "Otočí obsah o určitý uhol."
|
rotateDescription: "Otočí obsah o určitý uhol."
|
||||||
|
plain: "Obyčajné"
|
||||||
|
plainDescription: "Bez akejkoľvej syntaxe"
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "Nikdy nezobrazovať"
|
none: "Nikdy nezobrazovať"
|
||||||
remote: "Zobraziť pre vzdialených používateľov"
|
remote: "Zobraziť pre vzdialených používateľov"
|
||||||
@ -1252,6 +1274,7 @@ _widgets:
|
|||||||
activity: "Aktivita"
|
activity: "Aktivita"
|
||||||
photos: "Fotky"
|
photos: "Fotky"
|
||||||
digitalClock: "Digitálne hodiny"
|
digitalClock: "Digitálne hodiny"
|
||||||
|
unixClock: "UNIX čas"
|
||||||
federation: "Federácia"
|
federation: "Federácia"
|
||||||
instanceCloud: "Cloud serverov"
|
instanceCloud: "Cloud serverov"
|
||||||
postForm: "Napísať poznámku"
|
postForm: "Napísať poznámku"
|
||||||
|
@ -203,6 +203,7 @@ done: "Klar"
|
|||||||
processing: "Bearbetar..."
|
processing: "Bearbetar..."
|
||||||
preview: "Förhandsvisning"
|
preview: "Förhandsvisning"
|
||||||
default: "Standard"
|
default: "Standard"
|
||||||
|
defaultValueIs: "Standard: {value}"
|
||||||
noCustomEmojis: "Det finns ingen emoji"
|
noCustomEmojis: "Det finns ingen emoji"
|
||||||
noJobs: "Det finns inga jobb"
|
noJobs: "Det finns inga jobb"
|
||||||
federating: "Federerar"
|
federating: "Federerar"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "ค้นหาผู้ใช้งาน"
|
|||||||
reply: "ตอบกลับ"
|
reply: "ตอบกลับ"
|
||||||
loadMore: "โหลดเพิ่มเติม"
|
loadMore: "โหลดเพิ่มเติม"
|
||||||
showMore: "แสดงเพิ่มเติม"
|
showMore: "แสดงเพิ่มเติม"
|
||||||
|
showLess: "ปิด"
|
||||||
youGotNewFollower: "ได้ติดตามคุณ"
|
youGotNewFollower: "ได้ติดตามคุณ"
|
||||||
receiveFollowRequest: "คำขอผู้ติดตามที่ได้รับ"
|
receiveFollowRequest: "คำขอผู้ติดตามที่ได้รับ"
|
||||||
followRequestAccepted: "ผู้ติดตามได้ตอบรับคำขอร้องของคุณแล้ว"
|
followRequestAccepted: "ผู้ติดตามได้ตอบรับคำขอร้องของคุณแล้ว"
|
||||||
@ -561,6 +562,7 @@ author: "ผู้เขียน"
|
|||||||
leaveConfirm: "คุณมีการเปลี่ยนแปลงที่ไม่ได้บันทึกนะ นายต้องการทิ้งการเปลี่ยนแปลงเหล่านั้นหรอ?"
|
leaveConfirm: "คุณมีการเปลี่ยนแปลงที่ไม่ได้บันทึกนะ นายต้องการทิ้งการเปลี่ยนแปลงเหล่านั้นหรอ?"
|
||||||
manage: "การจัดการ"
|
manage: "การจัดการ"
|
||||||
plugins: "ปลั๊กอิน"
|
plugins: "ปลั๊กอิน"
|
||||||
|
preferencesBackups: "ตั้งค่าการสำรองข้อมูล"
|
||||||
deck: "เด็ค"
|
deck: "เด็ค"
|
||||||
undeck: "ออกจากเด็ค"
|
undeck: "ออกจากเด็ค"
|
||||||
useBlurEffectForModal: "ใช้เอฟเฟกต์เบลอสำหรับโมดอล"
|
useBlurEffectForModal: "ใช้เอฟเฟกต์เบลอสำหรับโมดอล"
|
||||||
@ -597,7 +599,7 @@ wordMute: "ปิดเสียงคำ"
|
|||||||
regexpError: "ข้อผิดพลาดของนิพจน์ทั่วไป"
|
regexpError: "ข้อผิดพลาดของนิพจน์ทั่วไป"
|
||||||
regexpErrorDescription: "เกิดข้อผิดพลาดในนิพจน์ทั่วไปในบรรทัดที่ {line} ของการปิดเสียงคำ {tab} ของคุณ:"
|
regexpErrorDescription: "เกิดข้อผิดพลาดในนิพจน์ทั่วไปในบรรทัดที่ {line} ของการปิดเสียงคำ {tab} ของคุณ:"
|
||||||
instanceMute: "ปิดเสียง อินสแตนซ์"
|
instanceMute: "ปิดเสียง อินสแตนซ์"
|
||||||
userSaysSomething: "{ชื่อ} พูดอะไรบางอย่าง"
|
userSaysSomething: "{name} พูดอะไรบางอย่าง"
|
||||||
makeActive: "เปิดใช้งาน"
|
makeActive: "เปิดใช้งาน"
|
||||||
display: "แสดงผล"
|
display: "แสดงผล"
|
||||||
copy: "คัดลอก"
|
copy: "คัดลอก"
|
||||||
@ -835,23 +837,293 @@ themeColor: "อินสแตนซ์ Ticker Color"
|
|||||||
size: "ขนาด"
|
size: "ขนาด"
|
||||||
numberOfColumn: "จำนวนคอลัมน์"
|
numberOfColumn: "จำนวนคอลัมน์"
|
||||||
searchByGoogle: "ค้นหา"
|
searchByGoogle: "ค้นหา"
|
||||||
|
instanceDefaultLightTheme: "ธีมสว่างค่าเริ่มต้นสำหรับอินสแตนซ์"
|
||||||
|
instanceDefaultDarkTheme: "ธีมมืดค่าเริ่มต้นอินสแตนซ์"
|
||||||
|
instanceDefaultThemeDescription: "ป้อนรหัสธีมในรูปแบบออบเจ็กต์"
|
||||||
|
mutePeriod: "ระยะเวลาปิดเสียง"
|
||||||
|
indefinitely: "ตลอดไป"
|
||||||
|
tenMinutes: "10 นาที"
|
||||||
|
oneHour: "1 ชั่วโมง"
|
||||||
|
oneDay: "1 วัน"
|
||||||
|
oneWeek: "1 สัปดาห์"
|
||||||
|
reflectMayTakeTime: "อาจจำเป็นต้องใช้เวลาสักระยะหนึ่งจึงจะเห็นแสดงผลได้นะ"
|
||||||
|
failedToFetchAccountInformation: "ไม่สามารถเรียกดึงข้อมูลบัญชีได้"
|
||||||
|
rateLimitExceeded: "เกินขีดจำกัดอัตรา"
|
||||||
|
cropImage: "ครอบตัดรูปภาพ"
|
||||||
|
cropImageAsk: "คุณต้องการครอบตัดรูปภาพนี้อย่างงั้นหรือ?"
|
||||||
file: "ไฟล์"
|
file: "ไฟล์"
|
||||||
|
recentNHours: "ล่าสุด {n} ชั่วโมงที่แล้ว"
|
||||||
|
recentNDays: "ล่าสุด {n} วันที่แล้ว"
|
||||||
|
noEmailServerWarning: "ไม่ได้กำหนดค่าเซิร์ฟเวอร์อีเมลนี้"
|
||||||
|
thereIsUnresolvedAbuseReportWarning: "มีรายงานที่ยังไม่ได้แก้ไข"
|
||||||
|
recommended: "แนะนำ"
|
||||||
|
check: "ตรวจสอบ"
|
||||||
|
driveCapOverrideLabel: "เปลี่ยนความจุของไดรฟ์สำหรับผู้ใช้รายนี้"
|
||||||
|
driveCapOverrideCaption: "รีเซ็ตความจุเป็นค่าเริ่มต้นโดยการป้อนค่าเป็น 0 หรือ ต่ำกว่า"
|
||||||
|
requireAdminForView: "คุณจำเป็นต้องเข้าสู่ระบบด้วยบัญชีผู้ดูแลระบบเพื่อเข้าดูสิ่งนี้"
|
||||||
|
isSystemAccount: "บัญชีที่ถูกสร้างมานั้น และถูกดำเนินการโดยอัตโนมัติด้วยระบบ"
|
||||||
|
typeToConfirm: "โปรดป้อน {x} เพื่อยืนยัน"
|
||||||
|
deleteAccount: "ลบบัญชี"
|
||||||
|
document: "เอกสาร"
|
||||||
|
numberOfPageCache: "จำนวนหน้าเพจที่แคช"
|
||||||
|
numberOfPageCacheDescription: "การเพิ่มจำนวนนี้จะช่วยเพิ่มความสะดวกให้กับผู้ใช้งาน แต่จะทำให้เซิร์ฟเวอร์โหลดมากขึ้นและต้องใช้หน่วยความจำมากขึ้นอีกด้วย"
|
||||||
|
logoutConfirm: "คุณแน่ใจว่าต้องการออกจากระบบ?"
|
||||||
|
lastActiveDate: "ใช้งานล่าสุดที่"
|
||||||
|
statusbar: "ไอคอนบนแถบสถานะ"
|
||||||
|
pleaseSelect: "ตัวเลือก"
|
||||||
|
reverse: "ย้อนกลับ"
|
||||||
|
colored: "สี"
|
||||||
|
refreshInterval: "รอบการอัพเดต"
|
||||||
|
label: "ป้ายชื่อ"
|
||||||
|
type: "รูปแบบ"
|
||||||
|
speed: "ความเร็ว"
|
||||||
|
slow: "ช้า"
|
||||||
|
fast: "เร็ว"
|
||||||
|
sensitiveMediaDetection: "การตรวจจับของสื่อ NSFW"
|
||||||
|
localOnly: "เฉพาะท้องถิ่น"
|
||||||
|
remoteOnly: "รีโมทเท่านั้น"
|
||||||
|
failedToUpload: "การอัปโหลดล้มเหลว"
|
||||||
|
cannotUploadBecauseInappropriate: "ไม่สามารถอัปโหลดไฟล์นี้ได้เนื่องจากระบบตรวจพบบางส่วนของไฟล์ว่านี้อาจจะเป็น NSFW"
|
||||||
|
cannotUploadBecauseNoFreeSpace: "การอัปโหลดนั้นล้มเหลวเนื่องจากไม่มีความจุของไดรฟ์"
|
||||||
|
beta: "เบต้า"
|
||||||
|
enableAutoSensitive: "ทำเครื่องหมาย NSFW อัตโนมัติ"
|
||||||
|
enableAutoSensitiveDescription: "อนุญาตให้ตรวจหาและทำเครื่องหมายสื่อ NSFW โดยอัตโนมัติผ่านการเรียนรู้ของเครื่องหากเป็นไปได้ แม้ว่าตัวเลือกนี้จะถูกปิดใช้งาน แต่ก็สามารถเปิดใช้งานได้ทั้งอินสแตนซ์นี้"
|
||||||
|
activeEmailValidationDescription: "เปิดใช้งานการตรวจสอบที่อยู่อีเมลให้มีความเข้มงวดยิ่งขึ้น ซึ่งอาจจะรวมไปถึงการตรวจสอบที่อยู่อีเมล์ที่ใช้แล้วทิ้งและโดยให้พิจารณาว่าสามารถสื่อสารด้วยได้หรือไม่ เมื่อไม่เลือกระบบจะตรวจสอบเฉพาะรูปแบบของอีเมลเท่านั้น"
|
||||||
|
navbar: "แถบนำทาง"
|
||||||
|
shuffle: "สลับ"
|
||||||
account: "บัญชีผู้ใช้"
|
account: "บัญชีผู้ใช้"
|
||||||
|
move: "ย้าย"
|
||||||
|
_sensitiveMediaDetection:
|
||||||
|
description: "ลดความพยายามในการดูแลเซิร์ฟเวอร์ผ่านการจดจำสื่อ NSFW โดยอัตโนมัติผ่านการเรียนรู้ของเครื่อง การทำสิ่งนี้อาจจะเพิ่มภาระบนเซิร์ฟเวอร์เล็กน้อย"
|
||||||
|
sensitivity: "การตรวจจับความไว"
|
||||||
|
sensitivityDescription: "การลดความไวนั้นจะนำไปสู่การตรวจจับที่ผิดพลาดน้อยลง (ผลบวกที่ผิดพลาด) แต่ในขณะที่การเพิ่มนั้นจะนำไปสู่การตรวจหาที่พลาดน้อยลง (ผลลบเท็จ)"
|
||||||
|
setSensitiveFlagAutomatically: "ทำเครื่องหมายว่าเป็น NSFW"
|
||||||
|
setSensitiveFlagAutomaticallyDescription: "ผลลัพธ์ของการตรวจจับภายในนั้นจะยังคงอยู่ ถึงแม้ว่าจะปิดตัวเลือกนี้"
|
||||||
|
analyzeVideos: "เปิดใช้งานวิเคราะห์ของวิดีโอ"
|
||||||
|
analyzeVideosDescription: "การวิเคราะห์วิดีโอนอกเหนือจากรูปภาพนั้น การทำสิ่งนี้จะทำให้เพิ่มภาระบนเซิร์ฟเวอร์เล็กน้อย"
|
||||||
|
_emailUnavailable:
|
||||||
|
used: "ที่อยู่อีเมลนี้ได้ถูกใช้ไปแล้ว"
|
||||||
|
format: "รูปแบบของที่อยู่อีเมลนี้ไม่ถูกต้อง"
|
||||||
|
disposable: "ที่อยู่อีเมลที่ใช้แล้วทิ้งนั้นไม่สามารถใช้ได้"
|
||||||
|
mx: "เซิร์ฟเวอร์อีเมลนี้ไม่ถูกต้อง"
|
||||||
|
smtp: "เซิร์ฟเวอร์อีเมลนี้ไม่มีการตอบสนอง"
|
||||||
_ffVisibility:
|
_ffVisibility:
|
||||||
public: "เผยแพร่"
|
public: "เผยแพร่"
|
||||||
|
followers: "ปรากฏให้แก่ผู้ติดตามเท่านั้น"
|
||||||
|
private: "ส่วนตัว"
|
||||||
|
_signup:
|
||||||
|
almostThere: "เกือบจะมี"
|
||||||
|
emailAddressInfo: "โปรดกรอกอีเมลของคุณ มันจะไม่เปิดเผยต่อสาธารณะ"
|
||||||
|
emailSent: "เราได้ส่งอีเมลยืนยันไปยังที่อยู่อีเมลของคุณแล้วนะ ({email}) โปรดคลิกลิงก์ที่รวมไว้เพื่อสร้างบัญชีให้เสร็จสิ้น"
|
||||||
|
_accountDelete:
|
||||||
|
accountDelete: "ลบบัญชีผู้ใช้"
|
||||||
|
mayTakeTime: "เนื่องจากการลบบัญชีนี้จะเป็นกระบวนการที่ต้องใช้ทรัพยากรมาก จึงอาจจะต้องใช้เวลาสักครู่ถึงจะเสร็จสมบูรณ์ ทั้งนี้ขึ้นอยู่กับจำนวนเนื้อหาที่คุณสร้างและจำนวนไฟล์ที่คุณอัปโหลดนะ"
|
||||||
|
sendEmail: "เมื่อการลบบัญชีนี้เสร็จสิ้น เราอาจจะส่งอีเมลไปยังที่อยู่อีเมลของคุณที่เคยลงทะเบียนไว้กับบัญชีนี้นะ"
|
||||||
|
requestAccountDelete: "ร้องขอให้ลบบัญชี"
|
||||||
|
started: "การลบได้เริ่มต้นขึ้น"
|
||||||
|
inProgress: "ปัจจุบันกำลังดำเนินการลบอยู่"
|
||||||
_ad:
|
_ad:
|
||||||
back: "ย้อนกลับ"
|
back: "ย้อนกลับ"
|
||||||
|
reduceFrequencyOfThisAd: "แสดงโฆษณานี้ให้น้อยลง"
|
||||||
|
_forgotPassword:
|
||||||
|
enterEmail: "ป้อนที่อยู่อีเมลที่คุณเคยใช้ในการลงทะเบียนไว้ ลิงก์ที่คุณสามารถรีเซ็ตรหัสผ่านได้นั้นจะถูกส่งไปนะ"
|
||||||
|
ifNoEmail: "ถ้าหากคุณไม่ได้ใช้อีเมลระหว่างการลงทะเบียน กรุณาติดต่อผู้ดูแลระบบอินสแตนซ์แทนนะ"
|
||||||
|
contactAdmin: "อินสแตนซ์นี้ไม่รองรับการใช้งานที่อยู่อีเมลนี้ กรุณาติดต่อผู้ดูแลระบบอินสแตนซ์เพื่อรีเซ็ตรหัสผ่านของคุณแทน"
|
||||||
|
_gallery:
|
||||||
|
my: "แกลลอรี่ของฉัน"
|
||||||
|
liked: "โพสต์ที่ถูกใจ"
|
||||||
|
like: "ชื่นชอบ"
|
||||||
|
unlike: "ลบไลค์"
|
||||||
_email:
|
_email:
|
||||||
_follow:
|
_follow:
|
||||||
title: "ได้ติดตามคุณ"
|
title: "ได้ติดตามคุณ"
|
||||||
|
_receiveFollowRequest:
|
||||||
|
title: "คุณได้รับคำขอติดตาม"
|
||||||
|
_plugin:
|
||||||
|
install: "ติดตั้งปลั๊กอิน"
|
||||||
|
installWarn: "กรุณาอย่าติดตั้งปลั๊กอินที่ไม่น่าเชื่อถือนะคะ"
|
||||||
|
manage: "จัดการปลั๊กอิน"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "สร้างการสำรองข้อมูล"
|
||||||
|
saveNew: "บันทึกใหม่"
|
||||||
|
loadFile: "โหลดจากไฟล์"
|
||||||
|
apply: "นำไปใช้กับอุปกรณ์นี้"
|
||||||
|
save: "บันทึก"
|
||||||
|
inputName: "กรุณาป้อนชื่อสำหรับข้อมูลสำรองนี้"
|
||||||
|
cannotSave: "การบันทึกล้มเหลว"
|
||||||
|
nameAlreadyExists: "มีข้อมูลสำรองชื่อ \"{name}\" นี้อยู่แล้ว กรุณาป้อนชื่ออื่นนะ"
|
||||||
|
applyConfirm: "คุณต้องการใช้ข้อมูลสำรอง \"{name}\" กับอุปกรณ์นี้อย่างงั้นจริงหรอ การตั้งค่าที่มีอยู่ของอุปกรณ์นี้จะถูกเขียนทับนะ"
|
||||||
|
saveConfirm: "บันทึกข้อมูลสำรองเป็น {name} มั้ย?"
|
||||||
|
deleteConfirm: "ลบข้อมูลสำรอง {name} มั้ย?"
|
||||||
|
renameConfirm: "เปลี่ยนชื่อข้อมูลสำรองนี้จาก \"{old}\" เป็น \"{new}\" หรือป่าว"
|
||||||
|
noBackups: "ไม่มีข้อมูลสำรองนะ คุณสามารถสำรองข้อมูลการตั้งค่าไคลเอนต์ของคุณบนเซิร์ฟเวอร์นี้โดยใช้ \"สร้างการสำรองข้อมูลใหม่\"ได้นะ"
|
||||||
|
createdAt: "สร้างเมื่อ: {date} {time}"
|
||||||
|
updatedAt: "อัปเดตเมื่อ: {date} {time}"
|
||||||
|
cannotLoad: "การโหลดล้มเหลว"
|
||||||
|
invalidFile: "รูปแบบไฟล์ไม่ถูกต้องนะ"
|
||||||
|
_registry:
|
||||||
|
scope: "สโคป"
|
||||||
|
key: "คีย์"
|
||||||
|
keys: "คีย์"
|
||||||
|
domain: "โดเมน"
|
||||||
|
createKey: "สร้างคีย์"
|
||||||
|
_aboutMisskey:
|
||||||
|
about: "Misskey เป็นซอฟต์แวร์โอเพ่นซอร์สที่ถูกพัฒนาโดย Syuilo ตั้งแต่ปี 2014"
|
||||||
|
contributors: "ผู้สนับสนุนหลัก"
|
||||||
|
allContributors: "ผู้มีส่วนร่วมทั้งหมด"
|
||||||
|
source: "ซอร์สโค้ด"
|
||||||
|
translation: "รับแปลภาษา Misskey"
|
||||||
|
donate: "บริจาคให้กับ Misskey"
|
||||||
|
morePatrons: "เราขอขอบคุณสำหรับความช่วยเหลือจากผู้ช่วยอื่นๆ ที่ไม่ได้ระบุไว้ที่นี่นะ ขอขอบคุณ! 🥰"
|
||||||
|
patrons: "สมาชิกพันธมิตร"
|
||||||
|
_nsfw:
|
||||||
|
respect: "ซ่อนสื่อ NSFW"
|
||||||
|
ignore: "อย่าซ่อนสื่อ NSFW"
|
||||||
|
force: "ซ่อนสื่อทั้งหมด"
|
||||||
_mfm:
|
_mfm:
|
||||||
|
cheatSheet: "โค้ด MFM Cheat Sheet"
|
||||||
|
intro: "MFM เป็นภาษามาร์กอัปพิเศษเฉพาะของ Misskey ที่สามารถใช้ได้ในหลายที่ คุณยังสามารถดูรายการไวยากรณ์ MFM ที่มีอยู่ทั้งหมดได้ที่นี่นะ"
|
||||||
|
dummy: "Misskey ขยายโลกของ Fediverse"
|
||||||
mention: "กล่าวถึง"
|
mention: "กล่าวถึง"
|
||||||
|
mentionDescription: "คุณสามารถระบุผู้ใช้โดยใช้ At-Symbol และชื่อผู้ใช้ได้นะ"
|
||||||
|
hashtag: "แฮชแท็ก"
|
||||||
|
hashtagDescription: "คุณสามารถระบุชื่อแฮชแท็กได้โดยใช้เครื่องหมายตัวเลขและข้อความได้นะ"
|
||||||
|
url: "URL"
|
||||||
|
urlDescription: "สามารถแสดง URL ได้นะ"
|
||||||
|
link: "ลิงก์"
|
||||||
|
linkDescription: "เจาะจงเฉพาะ ส่วนของข้อความที่สามารถแสดงเป็น URL ได้"
|
||||||
|
bold: "ตัวหนา"
|
||||||
|
boldDescription: "ไฮไลท์ตัวอักษรโดยทำให้หนาขึ้น"
|
||||||
|
small: "ขนาดเล็ก"
|
||||||
|
smallDescription: "แสดงผลเนื้อหาขนาดเล็กและบาง"
|
||||||
|
center: "เซ็นเตอร์"
|
||||||
|
centerDescription: "แสดงผลเนื้อหาเป็นศูนย์กลาง"
|
||||||
|
inlineCode: "โค้ด (อินไลน์)"
|
||||||
|
inlineCodeDescription: "แสดงผลการเน้นไวยากรณ์แบบอินไลน์สำหรับโค้ด (โปรแกรม)"
|
||||||
|
blockCode: "โค้ด (บล็อก)"
|
||||||
|
blockCodeDescription: "แสดงผลการเน้นไวยากรณ์สำหรับโค้ดหลายบรรทัด (โปรแกรม) ในบล็อก"
|
||||||
|
inlineMath: "คณิต (อินไลน์)"
|
||||||
|
inlineMathDescription: "แสดงผลสูตรคณิต (KaTeX) ในบรรทัด"
|
||||||
|
blockMath: "คณิต (บล็อก)"
|
||||||
|
blockMathDescription: "แสดงผลสูตรคณิตหลายบรรทัด (KaTeX) ในบล็อก"
|
||||||
quote: "อ้างคำพูด"
|
quote: "อ้างคำพูด"
|
||||||
|
quoteDescription: "แสดงผลเนื้อหาเป็นใบเสนอราคา"
|
||||||
emoji: "กำหนดอีโมจิเอง"
|
emoji: "กำหนดอีโมจิเอง"
|
||||||
|
emojiDescription: "โดยล้อมรอบชื่ออีโมจิที่กำหนดเองด้วยเครื่องหมายทวิภาค จะสามารถแสดงผลอีโมจิที่กำหนดเองได้"
|
||||||
search: "ค้นหา"
|
search: "ค้นหา"
|
||||||
|
searchDescription: "แสดงผลกล่องค้นหาพร้อมกับข้อความที่ป้อนไว้ล่วงหน้า"
|
||||||
|
flip: "พลิก"
|
||||||
|
flipDescription: "พลิกเนื้อหาในแนวนอนหรือแนวตั้ง"
|
||||||
|
jelly: "แอนิเมชั่น (เยลลี่)"
|
||||||
|
jellyDescription: "ให้เนื้อหาเป็นแอนิเมชั่นเหมือนเยลลี่"
|
||||||
|
tada: "แอนิเมชั่น (ธาดา)"
|
||||||
|
tadaDescription: "ให้เนื้อหาเป็นแอนิเมชั่นเหมือน \"ทาด้า!\""
|
||||||
|
jump: "อนิเมชั่น (กระโดด)"
|
||||||
|
jumpDescription: "ให้เนื้อหามีภาพเคลื่อนไหวแบบกระโดด"
|
||||||
|
bounce: "อนิเมชั่น (เด้ง)"
|
||||||
|
bounceDescription: "ให้เนื้อหามีอนิเมชั่นเด้ง"
|
||||||
|
shake: "อนิเมชั่น (เขย่า)"
|
||||||
|
shakeDescription: "ให้เนื้อหามีภาพเคลื่อนไหวสั่น"
|
||||||
|
twitch: "แอนิเมชั่น (Twitch)"
|
||||||
|
twitchDescription: "ให้เนื้อหามีแอนิเมชั่นกระตุกอย่างแรง"
|
||||||
|
spin: "แอนิเมชั่น (สปิน)"
|
||||||
|
spinDescription: "ให้เนื้อหาเป็นภาพเคลื่อนไหวแบบหมุน"
|
||||||
|
x2: "ขนาดใหญ่"
|
||||||
|
x2Description: "แสดงเนื้อหาที่ใหญ่ขึ้น"
|
||||||
|
x3: "ใหญ่มาก"
|
||||||
|
x3Description: "แสดงเนื้อหาอีเว้นท์ที่ใหญ่ขึ้น"
|
||||||
|
x4: "ใหญ่อย่างไม่น่าเชื่อ"
|
||||||
|
x4Description: "แสดงผลเนื้อหาที่ใหญ่กว่าใหญ่กว่าขนาดใหญ่"
|
||||||
|
blur: "เบลอ"
|
||||||
|
blurDescription: "เบลอเนื้อหา จะแสดงผลอย่างชัดเจนต่อเมื่อวางเมาส์เหนือ"
|
||||||
|
font: "ตัวอักษร"
|
||||||
|
fontDescription: "ตั้งค่าตัวอักษรเพื่อแสดงเนื้อหาใน"
|
||||||
|
rainbow: "สายรุ้ง"
|
||||||
|
rainbowDescription: "ทำให้เนื้อหานั้นปรากฏเป็นสีรุ้ง"
|
||||||
|
sparkle: "กลิตเตอร์"
|
||||||
|
sparkleDescription: "ให้เนื้อหานั้นมีเอฟเฟกต์แบบอนุภาคประกาย"
|
||||||
|
rotate: "หมุนหน้าจอ"
|
||||||
|
rotateDescription: "เปลี่ยนเนื้อหาตามด้วยมุมที่ระบุไว้"
|
||||||
|
plain: "เรียบง่าย"
|
||||||
|
plainDescription: "ปิดการใช้งานเอฟเฟกต์ของ MFM ทั้งหมดที่มีอยู่ในเอฟเฟกต์ MFM นี้"
|
||||||
|
_instanceTicker:
|
||||||
|
none: "ไม่ต้องแสดง"
|
||||||
|
remote: "แสดงสำหรับผู้ใช้ระยะไกล"
|
||||||
|
always: "แสดงเสมอ"
|
||||||
|
_serverDisconnectedBehavior:
|
||||||
|
reload: "โหลดใหม่โดยอัตโนมัติ"
|
||||||
|
dialog: "แสดงกล่องโต้ตอบคำเตือน"
|
||||||
|
quiet: "แสดงคำเตือนที่ไม่เป็นการรบกวน"
|
||||||
|
_channel:
|
||||||
|
create: "สร้างแชนแนลใหม่"
|
||||||
|
edit: "แก้ไขแชนแนล"
|
||||||
|
setBanner: "เซตแบนเนอร์"
|
||||||
|
removeBanner: "ลบแบนเนอร์"
|
||||||
|
featured: "เทรนด์"
|
||||||
|
owned: "เจ้าของ"
|
||||||
|
following: "ติดตามแล้ว"
|
||||||
|
usersCount: "{n} ผู้เข้าร่วม"
|
||||||
|
notesCount: "{n} โน้ต"
|
||||||
|
_menuDisplay:
|
||||||
|
sideFull: "ด้านข้าง"
|
||||||
|
sideIcon: "ด้านข้าง (ไอคอน)"
|
||||||
|
top: "ท็อป"
|
||||||
|
hide: "ซ่อน"
|
||||||
|
_wordMute:
|
||||||
|
muteWords: "ปิดเสียงคำ"
|
||||||
|
muteWordsDescription: "คั่นด้วยช่องว่างสำหรับเงื่อนไข AND หรือด้วยการขึ้นบรรทัดใหม่สำหรับเงื่อนไข OR นะ"
|
||||||
|
muteWordsDescription2: "ล้อมรอบคีย์เวิร์ดด้วยเครื่องหมายทับเพื่อใช้นิพจน์ทั่วไป"
|
||||||
|
softDescription: "ซ่อนโน้ตให้ตรงตามเงื่อนไขที่ตั้งไว้จากไทม์ไลน์"
|
||||||
|
hardDescription: "ป้องกันไม่ให้โน้ตย่อที่ตรงตามเงื่อนไขที่ตั้งไว้ไม่ให้ถูกเพิ่มลงในไทม์ไลน์ นอกจากนี้ โน้ตเหล่านี้จะไม่ถูกเพิ่มลงในไทม์ไลน์แม้ว่าจะมีการเปลี่ยนแปลงเงื่อนไขยังไงก็ตาม"
|
||||||
|
soft: "ซอฟ"
|
||||||
|
hard: "ยาก"
|
||||||
|
mutedNotes: "ปิดเสียงโน้ต"
|
||||||
|
_instanceMute:
|
||||||
|
instanceMuteDescription: "การดำเนินการนี้จะปิดเสียง\"โน้ต/รีโน้ต\"จากอินสแตนซ์ที่อยู่ในรายการ รวมถึงบันทึกของผู้ใช้ที่ตอบกลับผู้ใช้จากอินสแตนซ์ที่ปิดเสียง"
|
||||||
|
instanceMuteDescription2: "คั่นด้วยการขึ้นบรรทัดใหม่"
|
||||||
|
title: "ซ่อนโน้ตจากอินสแตนซ์ที่มีอยู่ในรายการ"
|
||||||
|
heading: "รายชื่ออินสแตนซ์ที่ถูกปิดเสียง"
|
||||||
_theme:
|
_theme:
|
||||||
|
explore: "สำรวจธีม"
|
||||||
|
install: "ติดตั้งธีม"
|
||||||
|
manage: "จัดการธีม"
|
||||||
|
code: "โค้ดธีม"
|
||||||
description: "รายละเอียด"
|
description: "รายละเอียด"
|
||||||
|
installed: "{name} ได้รับการติดตั้ง"
|
||||||
|
installedThemes: "ธีมที่ติดตั้ง"
|
||||||
|
builtinThemes: "ธีมในตัว"
|
||||||
|
alreadyInstalled: "ธีมนี้ได้รับการติดตั้งแล้ว"
|
||||||
|
invalid: "รูปแบบของธีมนี้ไม่ถูกต้องนะ"
|
||||||
|
make: "ทำธีม"
|
||||||
|
base: "ฐาน"
|
||||||
|
addConstant: "เพิ่มค่าคงที่"
|
||||||
|
constant: "ตัวแปร"
|
||||||
|
defaultValue: "ค่าเริ่มต้น"
|
||||||
|
color: "สี"
|
||||||
|
refProp: "อ้างอิงคุณสมบัติ"
|
||||||
|
refConst: "อ้างอิงค่าคงที่"
|
||||||
|
key: "คีย์"
|
||||||
|
func: "ฟังก์ชัน"
|
||||||
|
funcKind: "ประเภทฟังก์ชัน"
|
||||||
|
argument: "อากิวเม้นต์"
|
||||||
|
basedProp: "ทรัพย์สินอ้างอิง"
|
||||||
|
alpha: "ความทึบแสง"
|
||||||
|
darken: "มืดลง"
|
||||||
|
lighten: "สว่าง"
|
||||||
|
inputConstantName: "ป้อนชื่อสำหรับค่าคงที่นี้"
|
||||||
|
importInfo: "ถ้าหากต้องการป้อนโค้ดที่นี่ คุณยังสามารถนำเข้าไปยังโปรแกรมแก้ไขธีมได้"
|
||||||
|
deleteConstantConfirm: "คุณต้องการลบค่าคงที่ {const} หรือป่าว?"
|
||||||
keys:
|
keys:
|
||||||
|
accent: "เน้น"
|
||||||
|
bg: "ภาพพื้นหลัง"
|
||||||
|
fg: "ข้อความ"
|
||||||
|
focus: "โฟกัส"
|
||||||
|
indicator: "ตัวบ่งชี้"
|
||||||
|
panel: "แผงควบคุม"
|
||||||
|
shadow: "เงา"
|
||||||
|
header: "ส่วนหัว"
|
||||||
|
navBg: "พื้นหลังแถบด้านข้าง"
|
||||||
|
navFg: "ข้อความแถบด้านข้าง"
|
||||||
mention: "กล่าวถึง"
|
mention: "กล่าวถึง"
|
||||||
renote: "รีโน้ต"
|
renote: "รีโน้ต"
|
||||||
divider: "ตัวแบ่ง"
|
divider: "ตัวแบ่ง"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Пошук користувачів"
|
|||||||
reply: "Відповісти"
|
reply: "Відповісти"
|
||||||
loadMore: "Показати більше"
|
loadMore: "Показати більше"
|
||||||
showMore: "Показати більше"
|
showMore: "Показати більше"
|
||||||
|
showLess: "Закрити"
|
||||||
youGotNewFollower: "Новий підписник"
|
youGotNewFollower: "Новий підписник"
|
||||||
receiveFollowRequest: "Отримано запит на підписку"
|
receiveFollowRequest: "Отримано запит на підписку"
|
||||||
followRequestAccepted: "Підписка прийнята"
|
followRequestAccepted: "Підписка прийнята"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "Tìm kiếm người dùng"
|
|||||||
reply: "Trả lời"
|
reply: "Trả lời"
|
||||||
loadMore: "Tải thêm"
|
loadMore: "Tải thêm"
|
||||||
showMore: "Xem thêm"
|
showMore: "Xem thêm"
|
||||||
|
showLess: "Đóng"
|
||||||
youGotNewFollower: "đã theo dõi bạn"
|
youGotNewFollower: "đã theo dõi bạn"
|
||||||
receiveFollowRequest: "Đã yêu cầu theo dõi"
|
receiveFollowRequest: "Đã yêu cầu theo dõi"
|
||||||
followRequestAccepted: "Đã chấp nhận yêu cầu theo dõi"
|
followRequestAccepted: "Đã chấp nhận yêu cầu theo dõi"
|
||||||
@ -561,6 +562,7 @@ author: "Tác giả"
|
|||||||
leaveConfirm: "Có những thay đổi chưa được lưu. Bạn có muốn bỏ chúng không?"
|
leaveConfirm: "Có những thay đổi chưa được lưu. Bạn có muốn bỏ chúng không?"
|
||||||
manage: "Quản lý"
|
manage: "Quản lý"
|
||||||
plugins: "Plugin"
|
plugins: "Plugin"
|
||||||
|
preferencesBackups: "Sao lưu thiết lập"
|
||||||
deck: "Deck"
|
deck: "Deck"
|
||||||
undeck: "Bỏ Deck"
|
undeck: "Bỏ Deck"
|
||||||
useBlurEffectForModal: "Sử dụng hiệu ứng mờ cho các hộp thoại"
|
useBlurEffectForModal: "Sử dụng hiệu ứng mờ cho các hộp thoại"
|
||||||
@ -890,6 +892,7 @@ activeEmailValidationDescription: "Cho phép xác minh địa chỉ email chặt
|
|||||||
navbar: "Thanh điều hướng"
|
navbar: "Thanh điều hướng"
|
||||||
shuffle: "Xáo trộn"
|
shuffle: "Xáo trộn"
|
||||||
account: "Tài khoản của bạn"
|
account: "Tài khoản của bạn"
|
||||||
|
move: "Di chuyển"
|
||||||
_sensitiveMediaDetection:
|
_sensitiveMediaDetection:
|
||||||
description: "Giảm nỗ lực kiểm duyệt máy chủ thông qua việc tự động nhận dạng media NSFW thông qua học máy. Điều này sẽ làm tăng một chút áp lực trên máy chủ."
|
description: "Giảm nỗ lực kiểm duyệt máy chủ thông qua việc tự động nhận dạng media NSFW thông qua học máy. Điều này sẽ làm tăng một chút áp lực trên máy chủ."
|
||||||
sensitivity: "Phát hiện nhạy cảm"
|
sensitivity: "Phát hiện nhạy cảm"
|
||||||
@ -940,6 +943,24 @@ _plugin:
|
|||||||
install: "Cài đặt tiện ích"
|
install: "Cài đặt tiện ích"
|
||||||
installWarn: "Vui lòng không cài đặt những tiện ích đáng ngờ."
|
installWarn: "Vui lòng không cài đặt những tiện ích đáng ngờ."
|
||||||
manage: "Quản lý plugin"
|
manage: "Quản lý plugin"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "Tạo sao lưu"
|
||||||
|
saveNew: "Lưu bản sao lưu"
|
||||||
|
loadFile: "Nhập tập tin"
|
||||||
|
apply: "Áp dụng lên thiết bị này"
|
||||||
|
save: "Lưu thay đổi"
|
||||||
|
inputName: "Nhập tên bản sao lưu"
|
||||||
|
cannotSave: "Không thể lưu"
|
||||||
|
nameAlreadyExists: "Bản sao lưu \"{name}\" đã tồn tại. Xin nhập tên khác."
|
||||||
|
applyConfirm: "Bạn có chắc muốn áp dụng bản sao lưu \"{name}\" cho thiết bị này? Thiết lập hiện tại sẽ bị ghi đè."
|
||||||
|
saveConfirm: "Lưu bản sao lưu {name}?"
|
||||||
|
deleteConfirm: "Xóa bản sao lưu {name}?"
|
||||||
|
renameConfirm: "Đổi tên bản sao lưu \"{old}\" thành \"{new}\"?"
|
||||||
|
noBackups: "Chưa có bản sao lưu. Bạn có thể sao lưu thiết lập trên máy chủ này bằng cách sử dụng \"Tạo sao lưu\"."
|
||||||
|
createdAt: "Tạo vào: {time} {date}"
|
||||||
|
updatedAt: "Cập nhật: {time} {date}"
|
||||||
|
cannotLoad: "Tải thất bại"
|
||||||
|
invalidFile: "Sai định dạng tập tin"
|
||||||
_registry:
|
_registry:
|
||||||
scope: "Phạm vi"
|
scope: "Phạm vi"
|
||||||
key: "Mã"
|
key: "Mã"
|
||||||
@ -1023,6 +1044,8 @@ _mfm:
|
|||||||
sparkleDescription: "Làm cho nội dung hiệu ứng hạt lấp lánh."
|
sparkleDescription: "Làm cho nội dung hiệu ứng hạt lấp lánh."
|
||||||
rotate: "Xoay"
|
rotate: "Xoay"
|
||||||
rotateDescription: "Xoay nội dung theo một góc cụ thể."
|
rotateDescription: "Xoay nội dung theo một góc cụ thể."
|
||||||
|
plain: "Đơn giản"
|
||||||
|
plainDescription: "Vô hiệu hóa mọi hiệu ứng MFM chứa trong hiệu ứng MFM này."
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "Không hiển thị"
|
none: "Không hiển thị"
|
||||||
remote: "Hiện cho người dùng từ máy chủ khác"
|
remote: "Hiện cho người dùng từ máy chủ khác"
|
||||||
@ -1256,6 +1279,7 @@ _widgets:
|
|||||||
activity: "Hoạt động"
|
activity: "Hoạt động"
|
||||||
photos: "Kho ảnh"
|
photos: "Kho ảnh"
|
||||||
digitalClock: "Đồng hồ số"
|
digitalClock: "Đồng hồ số"
|
||||||
|
unixClock: "Đồng hồ UNIX"
|
||||||
federation: "Liên hợp"
|
federation: "Liên hợp"
|
||||||
instanceCloud: "Instance cloud"
|
instanceCloud: "Instance cloud"
|
||||||
postForm: "Mẫu đăng"
|
postForm: "Mẫu đăng"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "搜索用户"
|
|||||||
reply: "回复"
|
reply: "回复"
|
||||||
loadMore: "查看更多"
|
loadMore: "查看更多"
|
||||||
showMore: "查看更多"
|
showMore: "查看更多"
|
||||||
|
showLess: "关闭"
|
||||||
youGotNewFollower: "你有新的关注者"
|
youGotNewFollower: "你有新的关注者"
|
||||||
receiveFollowRequest: "您收到了关注请求"
|
receiveFollowRequest: "您收到了关注请求"
|
||||||
followRequestAccepted: "您的关注请求被通过了"
|
followRequestAccepted: "您的关注请求被通过了"
|
||||||
@ -140,7 +141,7 @@ cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远
|
|||||||
flagAsBot: "这是一个机器人账号"
|
flagAsBot: "这是一个机器人账号"
|
||||||
flagAsBotDescription: "如果此帐户由程序控制,请启用此项。启用后,此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为,并让Misskey的内部系统将此帐户识别为机器人。"
|
flagAsBotDescription: "如果此帐户由程序控制,请启用此项。启用后,此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为,并让Misskey的内部系统将此帐户识别为机器人。"
|
||||||
flagAsCat: "将这个账户设定为一只猫"
|
flagAsCat: "将这个账户设定为一只猫"
|
||||||
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。"
|
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。\n开启后,会在您的头像上出现猫耳朵,并将你的帖子中的「na」替换为「nya」,日文同理。"
|
||||||
flagShowTimelineReplies: "在时间线上显示帖子的回复"
|
flagShowTimelineReplies: "在时间线上显示帖子的回复"
|
||||||
flagShowTimelineRepliesDescription: "启用时,时间线除了显示用户的帖子外,还会显示其他用户对帖子的回复。"
|
flagShowTimelineRepliesDescription: "启用时,时间线除了显示用户的帖子外,还会显示其他用户对帖子的回复。"
|
||||||
autoAcceptFollowed: "自动允许关注者的关注"
|
autoAcceptFollowed: "自动允许关注者的关注"
|
||||||
@ -251,7 +252,7 @@ messageRead: "已读"
|
|||||||
noMoreHistory: "没有更多的历史记录"
|
noMoreHistory: "没有更多的历史记录"
|
||||||
startMessaging: "添加聊天"
|
startMessaging: "添加聊天"
|
||||||
nUsersRead: "{n}人已读"
|
nUsersRead: "{n}人已读"
|
||||||
agreeTo: "{0}勾选则表示已阅读并同意"
|
agreeTo: "勾选则表示已阅读并同意{0}"
|
||||||
tos: "服务条款"
|
tos: "服务条款"
|
||||||
start: "开始"
|
start: "开始"
|
||||||
home: "首页"
|
home: "首页"
|
||||||
@ -483,13 +484,13 @@ showFeaturedNotesInTimeline: "在时间线上显示热门推荐"
|
|||||||
objectStorage: "对象存储"
|
objectStorage: "对象存储"
|
||||||
useObjectStorage: "使用对象存储"
|
useObjectStorage: "使用对象存储"
|
||||||
objectStorageBaseUrl: "Base URL"
|
objectStorageBaseUrl: "Base URL"
|
||||||
objectStorageBaseUrlDesc: "URL前缀,用于构造URL到对象(媒体)的引用,如果您使用的是CDN或反向代理,请指定其URL,否则请根据您使用的服务指定可公开访问的地址。例如“https://<bucket>.s3.amazonaws.com”用于AWS S3,“https://storage.googleapis.com/<bucket>”用于GCS"
|
objectStorageBaseUrlDesc: "用于引用的URL。如果您正在使用CDN或反向代理,请指定其URL,例如S3:“https://<bucket>.s3.amazonaws.com”,GCS:“https://storage.googleapis.com/<bucket>”"
|
||||||
objectStorageBucket: "存储桶"
|
objectStorageBucket: "存储桶"
|
||||||
objectStorageBucketDesc: "请指定使用的对象存储服务的存储桶名称。"
|
objectStorageBucketDesc: "请指定使用的对象存储服务的存储桶名称。"
|
||||||
objectStoragePrefix: "前缀"
|
objectStoragePrefix: "前缀"
|
||||||
objectStoragePrefixDesc: "文件将存储在此前缀的目录下。"
|
objectStoragePrefixDesc: "文件将存储在此前缀的目录下。"
|
||||||
objectStorageEndpoint: "端点"
|
objectStorageEndpoint: "端点"
|
||||||
objectStorageEndpointDesc: "如果你希望使用AWS S3请留空。否则请根据你使用的服务来进行设置,指定端点形式为“<host>”或“<host>:<port>”。"
|
objectStorageEndpointDesc: "如果你使用AWS S3请留空。否则请根据你使用的服务商的说明来进行设置,指定端点形式为“<host>”或“<host>:<port>”。"
|
||||||
objectStorageRegion: "可用区"
|
objectStorageRegion: "可用区"
|
||||||
objectStorageRegionDesc: "指定一个可用区,例如“xx-east-1”。 如果您的对象存储服务没有可用区概念,请将其留空或填写“us-east-1”。"
|
objectStorageRegionDesc: "指定一个可用区,例如“xx-east-1”。 如果您的对象存储服务没有可用区概念,请将其留空或填写“us-east-1”。"
|
||||||
objectStorageUseSSL: "使用SSL"
|
objectStorageUseSSL: "使用SSL"
|
||||||
@ -561,6 +562,7 @@ author: "作者"
|
|||||||
leaveConfirm: "存在未保存的更改。要放弃更改吗?"
|
leaveConfirm: "存在未保存的更改。要放弃更改吗?"
|
||||||
manage: "管理"
|
manage: "管理"
|
||||||
plugins: "插件"
|
plugins: "插件"
|
||||||
|
preferencesBackups: "备份设置"
|
||||||
deck: "Deck"
|
deck: "Deck"
|
||||||
undeck: "取消Deck"
|
undeck: "取消Deck"
|
||||||
useBlurEffectForModal: "对话框使用模糊效果"
|
useBlurEffectForModal: "对话框使用模糊效果"
|
||||||
@ -666,7 +668,7 @@ yes: "是"
|
|||||||
no: "否"
|
no: "否"
|
||||||
driveFilesCount: "网盘的文件数"
|
driveFilesCount: "网盘的文件数"
|
||||||
driveUsage: "网盘的空间用量"
|
driveUsage: "网盘的空间用量"
|
||||||
noCrawle: "要求搜索引擎不索引该站点"
|
noCrawle: "要求搜索引擎不索引该用户"
|
||||||
noCrawleDescription: "要求搜索引擎不要收录(索引)您的用户页面,帖子,页面等。"
|
noCrawleDescription: "要求搜索引擎不要收录(索引)您的用户页面,帖子,页面等。"
|
||||||
lockedAccountInfo: "即使通过了关注请求,只要您不将帖子可见范围设置成“关注者”,任何人都可以看到您的帖子。"
|
lockedAccountInfo: "即使通过了关注请求,只要您不将帖子可见范围设置成“关注者”,任何人都可以看到您的帖子。"
|
||||||
alwaysMarkSensitive: "默认将媒体文件标记为敏感内容"
|
alwaysMarkSensitive: "默认将媒体文件标记为敏感内容"
|
||||||
@ -745,7 +747,7 @@ userInfo: "用户信息"
|
|||||||
unknown: "未知"
|
unknown: "未知"
|
||||||
onlineStatus: "在线状态"
|
onlineStatus: "在线状态"
|
||||||
hideOnlineStatus: "隐藏在线状态"
|
hideOnlineStatus: "隐藏在线状态"
|
||||||
hideOnlineStatusDescription: "隐藏在线状态后,可能会降低例如搜索等功能的便利性。"
|
hideOnlineStatusDescription: "隐藏在线状态后,可能会降低搜索等功能的便利性。"
|
||||||
online: "在线"
|
online: "在线"
|
||||||
active: "活动"
|
active: "活动"
|
||||||
offline: "离线"
|
offline: "离线"
|
||||||
@ -846,6 +848,7 @@ oneDay: "1天"
|
|||||||
oneWeek: "1周"
|
oneWeek: "1周"
|
||||||
reflectMayTakeTime: "可能需要一些时间才能体现出效果。"
|
reflectMayTakeTime: "可能需要一些时间才能体现出效果。"
|
||||||
failedToFetchAccountInformation: "获取账户信息失败"
|
failedToFetchAccountInformation: "获取账户信息失败"
|
||||||
|
rateLimitExceeded: "已超過速率限制"
|
||||||
cropImage: "剪裁图像"
|
cropImage: "剪裁图像"
|
||||||
cropImageAsk: "是否要裁剪图像?"
|
cropImageAsk: "是否要裁剪图像?"
|
||||||
file: "文件"
|
file: "文件"
|
||||||
@ -855,6 +858,7 @@ noEmailServerWarning: "电子邮件服务器未设置。"
|
|||||||
thereIsUnresolvedAbuseReportWarning: "有未解决的报告"
|
thereIsUnresolvedAbuseReportWarning: "有未解决的报告"
|
||||||
recommended: "推荐"
|
recommended: "推荐"
|
||||||
check: "检查"
|
check: "检查"
|
||||||
|
driveCapOverrideLabel: "變更此用戶的雲端硬碟容量上限"
|
||||||
driveCapOverrideCaption: "设定为 0 以下则会解除此限制。"
|
driveCapOverrideCaption: "设定为 0 以下则会解除此限制。"
|
||||||
requireAdminForView: "需要使用管理员账户登录才能查看。"
|
requireAdminForView: "需要使用管理员账户登录才能查看。"
|
||||||
isSystemAccount: "该账号由系统自动创建和管理。"
|
isSystemAccount: "该账号由系统自动创建和管理。"
|
||||||
@ -883,9 +887,12 @@ cannotUploadBecauseInappropriate: "因为可能含有不适宜的内容,无法
|
|||||||
cannotUploadBecauseNoFreeSpace: "因为已无可用空间,无法上传。"
|
cannotUploadBecauseNoFreeSpace: "因为已无可用空间,无法上传。"
|
||||||
beta: "测试"
|
beta: "测试"
|
||||||
enableAutoSensitive: "自动 NSFW 识别"
|
enableAutoSensitive: "自动 NSFW 识别"
|
||||||
|
enableAutoSensitiveDescription: "如果可用,请使用机器学习在媒体上自动设置 NSFW 标志。即使关闭此功能,也可能会根据实例自动设置。"
|
||||||
|
activeEmailValidationDescription: "积极地验证用户的电子邮件地址,判断它是一次性的电子邮件地址,还是可以实际通信的地址。关闭时,则只检查字符串是否正确。"
|
||||||
navbar: "导航栏"
|
navbar: "导航栏"
|
||||||
shuffle: "随机"
|
shuffle: "随机"
|
||||||
account: "账户"
|
account: "账户"
|
||||||
|
move: "移动"
|
||||||
_sensitiveMediaDetection:
|
_sensitiveMediaDetection:
|
||||||
description: "可以使用机器学习技术自动检测敏感媒体,以便进行审核。服务器负载将略微增加。"
|
description: "可以使用机器学习技术自动检测敏感媒体,以便进行审核。服务器负载将略微增加。"
|
||||||
sensitivity: "检测敏感度"
|
sensitivity: "检测敏感度"
|
||||||
@ -936,6 +943,24 @@ _plugin:
|
|||||||
install: "安装插件"
|
install: "安装插件"
|
||||||
installWarn: "请不要安装不可信的插件。"
|
installWarn: "请不要安装不可信的插件。"
|
||||||
manage: "管理插件..."
|
manage: "管理插件..."
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "已创建的备份"
|
||||||
|
saveNew: "另存为"
|
||||||
|
loadFile: "导入文件"
|
||||||
|
apply: "应用于本设备"
|
||||||
|
save: "覆盖存档"
|
||||||
|
inputName: "请输入备份的名称"
|
||||||
|
cannotSave: "无法保存"
|
||||||
|
nameAlreadyExists: "备份名称\"{name}\"已经存在,请指定其他名称。"
|
||||||
|
applyConfirm: "您是否要将备份\"{name}\"应用到当前设备上?当前设备现有配置将被丢弃。"
|
||||||
|
saveConfirm: "您确定要覆盖保存 {name} 吗?"
|
||||||
|
deleteConfirm: "您确定要删除 {name} 吗?"
|
||||||
|
renameConfirm: "您确定要把“{old}”改为“{new}”吗?"
|
||||||
|
noBackups: "当前没有备份,“另存为”允许您在服务器上保存当前客户端的配置。"
|
||||||
|
createdAt: "创建日期:{date} {time}"
|
||||||
|
updatedAt: "更新日期:{date} {time}"
|
||||||
|
cannotLoad: "无法加载"
|
||||||
|
invalidFile: "无效的的文件格式。"
|
||||||
_registry:
|
_registry:
|
||||||
scope: "范围"
|
scope: "范围"
|
||||||
key: "主要"
|
key: "主要"
|
||||||
@ -1019,6 +1044,8 @@ _mfm:
|
|||||||
sparkleDescription: "添加发光粒子效果。"
|
sparkleDescription: "添加发光粒子效果。"
|
||||||
rotate: "旋转"
|
rotate: "旋转"
|
||||||
rotateDescription: "旋转指定的角度。"
|
rotateDescription: "旋转指定的角度。"
|
||||||
|
plain: "简洁"
|
||||||
|
plainDescription: "禁用所有内部语法。"
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "不显示"
|
none: "不显示"
|
||||||
remote: "仅远程用户"
|
remote: "仅远程用户"
|
||||||
@ -1248,9 +1275,11 @@ _widgets:
|
|||||||
trends: "趋势"
|
trends: "趋势"
|
||||||
clock: "时钟"
|
clock: "时钟"
|
||||||
rss: "RSS阅读器"
|
rss: "RSS阅读器"
|
||||||
|
rssTicker: "RSS Ticker"
|
||||||
activity: "活动"
|
activity: "活动"
|
||||||
photos: "照片"
|
photos: "照片"
|
||||||
digitalClock: "数字时钟"
|
digitalClock: "数字时钟"
|
||||||
|
unixClock: "UNIX时钟"
|
||||||
federation: "联邦宇宙"
|
federation: "联邦宇宙"
|
||||||
instanceCloud: "实例云"
|
instanceCloud: "实例云"
|
||||||
postForm: "投稿窗口"
|
postForm: "投稿窗口"
|
||||||
@ -1701,6 +1730,9 @@ _deck:
|
|||||||
profile: "配置文件"
|
profile: "配置文件"
|
||||||
newProfile: "新建配置文件"
|
newProfile: "新建配置文件"
|
||||||
deleteProfile: "删除配置文件"
|
deleteProfile: "删除配置文件"
|
||||||
|
introduction: "将各列进行组合以创建您自己的界面!"
|
||||||
|
introduction2: "您可以随时通过屏幕右侧的 + 来添加列"
|
||||||
|
widgetsIntroduction: "从列菜单中,选择“小工具编辑”来添加小工具"
|
||||||
_columns:
|
_columns:
|
||||||
main: "主列"
|
main: "主列"
|
||||||
widgets: "小工具"
|
widgets: "小工具"
|
||||||
|
@ -52,6 +52,7 @@ searchUser: "搜尋使用者"
|
|||||||
reply: "回覆"
|
reply: "回覆"
|
||||||
loadMore: "載入更多"
|
loadMore: "載入更多"
|
||||||
showMore: "載入更多"
|
showMore: "載入更多"
|
||||||
|
showLess: "關閉"
|
||||||
youGotNewFollower: "您有新的追隨者"
|
youGotNewFollower: "您有新的追隨者"
|
||||||
receiveFollowRequest: "您有新的追隨請求"
|
receiveFollowRequest: "您有新的追隨請求"
|
||||||
followRequestAccepted: "追隨請求已接受"
|
followRequestAccepted: "追隨請求已接受"
|
||||||
@ -561,6 +562,7 @@ author: "作者"
|
|||||||
leaveConfirm: "有未保存的更改。要放棄嗎?"
|
leaveConfirm: "有未保存的更改。要放棄嗎?"
|
||||||
manage: "管理"
|
manage: "管理"
|
||||||
plugins: "外掛"
|
plugins: "外掛"
|
||||||
|
preferencesBackups: "備份設定檔"
|
||||||
deck: "多欄模式"
|
deck: "多欄模式"
|
||||||
undeck: "取消多欄模式"
|
undeck: "取消多欄模式"
|
||||||
useBlurEffectForModal: "在模態框使用模糊效果"
|
useBlurEffectForModal: "在模態框使用模糊效果"
|
||||||
@ -881,14 +883,16 @@ sensitiveMediaDetection: "敏感性媒體的檢測"
|
|||||||
localOnly: "僅限本地"
|
localOnly: "僅限本地"
|
||||||
remoteOnly: "僅限遠端"
|
remoteOnly: "僅限遠端"
|
||||||
failedToUpload: "上傳失敗"
|
failedToUpload: "上傳失敗"
|
||||||
cannotUploadBecauseInappropriate: "由於判定可能包含不適當的內容,因此無法上船。"
|
cannotUploadBecauseInappropriate: "由於判定可能包含不適當的內容,因此無法上傳。"
|
||||||
cannotUploadBecauseNoFreeSpace: "由於雲端硬碟沒有可用空間,因此無法上船>"
|
cannotUploadBecauseNoFreeSpace: "由於雲端硬碟沒有可用空間,因此無法上傳。"
|
||||||
beta: "Beta"
|
beta: "Beta"
|
||||||
enableAutoSensitive: "自動NSFW判定"
|
enableAutoSensitive: "自動NSFW判定"
|
||||||
enableAutoSensitiveDescription: "如果可用,請利用機器學習在媒體上自動設置 NSFW 旗標。 即使關閉此功能,依實例而定也可能會自動設置。"
|
enableAutoSensitiveDescription: "如果可用,請利用機器學習在媒體上自動設置 NSFW 旗標。 即使關閉此功能,依實例而定也可能會自動設置。"
|
||||||
activeEmailValidationDescription: "積極地驗證用戶的電子郵件地址,判斷它是否為免洗地址,或者它是否可以通信。 若關閉,則只會檢查字元是否正確。"
|
activeEmailValidationDescription: "積極地驗證用戶的電子郵件地址,判斷它是否為免洗地址,或者它是否可以通信。 若關閉,則只會檢查字元是否正確。"
|
||||||
navbar: "導覽列"
|
navbar: "導覽列"
|
||||||
|
shuffle: "隨機"
|
||||||
account: "帳戶"
|
account: "帳戶"
|
||||||
|
move: "移動 "
|
||||||
_sensitiveMediaDetection:
|
_sensitiveMediaDetection:
|
||||||
description: "您可以使用機器學習自動檢測敏感媒體並將其用於審核。 伺服器的負荷會稍微增加。"
|
description: "您可以使用機器學習自動檢測敏感媒體並將其用於審核。 伺服器的負荷會稍微增加。"
|
||||||
sensitivity: "檢測敏感度"
|
sensitivity: "檢測敏感度"
|
||||||
@ -913,7 +917,7 @@ _signup:
|
|||||||
emailSent: "已將確認郵件發送至您輸入的電子郵件地址 ({email})。請開啟電子郵件中的連結以完成帳戶創建。"
|
emailSent: "已將確認郵件發送至您輸入的電子郵件地址 ({email})。請開啟電子郵件中的連結以完成帳戶創建。"
|
||||||
_accountDelete:
|
_accountDelete:
|
||||||
accountDelete: "刪除帳戶"
|
accountDelete: "刪除帳戶"
|
||||||
mayTakeTime: "刪除帳戶的處理負荷較大,如果帳戶產生的內容數量上船的檔案數量較多的話,就需要花费一段時間才能完成。"
|
mayTakeTime: "刪除帳戶的處理負荷較大,如果帳戶產生的內容數量上傳的檔案數量較多的話,就需要花费一段時間才能完成。"
|
||||||
sendEmail: "帳戶删除完成後,將向註冊地電子郵件地址發送通知。"
|
sendEmail: "帳戶删除完成後,將向註冊地電子郵件地址發送通知。"
|
||||||
requestAccountDelete: "刪除帳戶請求"
|
requestAccountDelete: "刪除帳戶請求"
|
||||||
started: "已開始刪除作業。"
|
started: "已開始刪除作業。"
|
||||||
@ -939,6 +943,24 @@ _plugin:
|
|||||||
install: "安裝外掛組件"
|
install: "安裝外掛組件"
|
||||||
installWarn: "請不要安裝來源不明的外掛組件。"
|
installWarn: "請不要安裝來源不明的外掛組件。"
|
||||||
manage: "管理外掛"
|
manage: "管理外掛"
|
||||||
|
_preferencesBackups:
|
||||||
|
list: "已備份的設定檔"
|
||||||
|
saveNew: "另存新檔"
|
||||||
|
loadFile: "讀取檔案"
|
||||||
|
apply: "套用在此裝置"
|
||||||
|
save: "覆蓋存檔"
|
||||||
|
inputName: "輸入備份檔名稱"
|
||||||
|
cannotSave: "無法儲存"
|
||||||
|
nameAlreadyExists: "備份檔名稱「{name}」已經存在。請指定不同的名稱。"
|
||||||
|
applyConfirm: "將備份檔「{name}」套用在現在的裝置嗎?現在的裝置設定將會消失。"
|
||||||
|
saveConfirm: "要覆蓋存檔{name}嗎?"
|
||||||
|
deleteConfirm: "要刪除{name}嗎?"
|
||||||
|
renameConfirm: "要將「{old}」變更為「{new}」嗎?"
|
||||||
|
noBackups: "沒有備份檔。您可以用「另存新檔」將現在的客戶端設定儲存在伺服器上。"
|
||||||
|
createdAt: "建立日期:{date} {time}"
|
||||||
|
updatedAt: "更新日期:{date} {time}"
|
||||||
|
cannotLoad: "無法讀取"
|
||||||
|
invalidFile: "檔案形式錯誤。"
|
||||||
_registry:
|
_registry:
|
||||||
scope: "範圍"
|
scope: "範圍"
|
||||||
key: "機碼"
|
key: "機碼"
|
||||||
@ -1022,6 +1044,8 @@ _mfm:
|
|||||||
sparkleDescription: "添加閃閃發光的粒子效果。"
|
sparkleDescription: "添加閃閃發光的粒子效果。"
|
||||||
rotate: "旋轉"
|
rotate: "旋轉"
|
||||||
rotateDescription: "以指定的角度旋轉。"
|
rotateDescription: "以指定的角度旋轉。"
|
||||||
|
plain: "簡潔"
|
||||||
|
plainDescription: "停用全部的內部語法。"
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
none: "隱藏"
|
none: "隱藏"
|
||||||
remote: "向遠端使用者顯示"
|
remote: "向遠端使用者顯示"
|
||||||
@ -1255,6 +1279,7 @@ _widgets:
|
|||||||
activity: "動態"
|
activity: "動態"
|
||||||
photos: "照片"
|
photos: "照片"
|
||||||
digitalClock: "電子時鐘"
|
digitalClock: "電子時鐘"
|
||||||
|
unixClock: "UNIX時間"
|
||||||
federation: "聯邦宇宙"
|
federation: "聯邦宇宙"
|
||||||
instanceCloud: "實例雲"
|
instanceCloud: "實例雲"
|
||||||
postForm: "發佈窗口"
|
postForm: "發佈窗口"
|
||||||
|
10
package.json
10
package.json
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"version": "12.117.1-simkey-v1",
|
"version": "12.119.0-simkey-v10111",
|
||||||
"codename": "indigo",
|
"codename": "indigo",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/misskey-dev/misskey.git"
|
"url": "https://github.com/sim1222/misskey.git"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -41,10 +41,10 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/gulp": "4.0.9",
|
"@types/gulp": "4.0.9",
|
||||||
"@types/gulp-rename": "2.0.1",
|
"@types/gulp-rename": "2.0.1",
|
||||||
"@typescript-eslint/parser": "5.30.6",
|
"@typescript-eslint/parser": "5.36.2",
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"cypress": "10.3.0",
|
"cypress": "10.7.0",
|
||||||
"start-server-and-test": "1.14.0",
|
"start-server-and-test": "1.14.0",
|
||||||
"typescript": "4.7.4"
|
"typescript": "4.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,28 +14,27 @@
|
|||||||
"lodash": "^4.17.21"
|
"lodash": "^4.17.21"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@tensorflow/tfjs-node": "3.18.0"
|
"@tensorflow/tfjs-node": "3.20.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bull-board/koa": "4.0.0",
|
"@bull-board/koa": "4.2.2",
|
||||||
"@discordapp/twemoji": "14.0.2",
|
"@discordapp/twemoji": "14.0.2",
|
||||||
"@elastic/elasticsearch": "7.11.0",
|
"@elastic/elasticsearch": "7.11.0",
|
||||||
"@koa/cors": "3.1.0",
|
"@koa/cors": "3.1.0",
|
||||||
"@koa/multer": "3.0.0",
|
"@koa/multer": "3.0.0",
|
||||||
"@koa/router": "9.0.1",
|
"@koa/router": "9.0.1",
|
||||||
"@peertube/http-signature": "1.6.0",
|
"@peertube/http-signature": "1.7.0",
|
||||||
"@sinonjs/fake-timers": "9.1.2",
|
"@sinonjs/fake-timers": "9.1.2",
|
||||||
"@syuilo/aiscript": "0.11.1",
|
"@syuilo/aiscript": "0.11.1",
|
||||||
"abort-controller": "3.0.0",
|
|
||||||
"ajv": "8.11.0",
|
"ajv": "8.11.0",
|
||||||
"archiver": "5.3.1",
|
"archiver": "5.3.1",
|
||||||
"autobind-decorator": "2.4.0",
|
"autobind-decorator": "2.4.0",
|
||||||
"autwh": "0.1.0",
|
"autwh": "0.1.0",
|
||||||
"aws-sdk": "2.1165.0",
|
"aws-sdk": "2.1213.0",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"blurhash": "1.1.5",
|
"blurhash": "1.1.5",
|
||||||
"bull": "4.8.4",
|
"bull": "4.9.0",
|
||||||
"cacheable-lookup": "6.0.4",
|
"cacheable-lookup": "6.1.0",
|
||||||
"cbor": "8.1.0",
|
"cbor": "8.1.0",
|
||||||
"chalk": "5.0.1",
|
"chalk": "5.0.1",
|
||||||
"chalk-template": "0.4.0",
|
"chalk-template": "0.4.0",
|
||||||
@ -43,13 +42,13 @@
|
|||||||
"cli-highlight": "2.1.11",
|
"cli-highlight": "2.1.11",
|
||||||
"color-convert": "2.0.1",
|
"color-convert": "2.0.1",
|
||||||
"content-disposition": "0.5.4",
|
"content-disposition": "0.5.4",
|
||||||
"date-fns": "2.28.0",
|
"date-fns": "2.29.2",
|
||||||
"deep-email-validator": "0.1.21",
|
"deep-email-validator": "0.1.21",
|
||||||
"escape-regexp": "0.0.1",
|
"escape-regexp": "0.0.1",
|
||||||
"feed": "4.2.2",
|
"feed": "4.2.2",
|
||||||
"file-type": "17.1.2",
|
"file-type": "17.1.6",
|
||||||
"fluent-ffmpeg": "2.1.2",
|
"fluent-ffmpeg": "2.1.2",
|
||||||
"got": "12.1.0",
|
"got": "12.3.1",
|
||||||
"hpagent": "0.1.2",
|
"hpagent": "0.1.2",
|
||||||
"ioredis": "4.28.5",
|
"ioredis": "4.28.5",
|
||||||
"ip-cidr": "3.0.10",
|
"ip-cidr": "3.0.10",
|
||||||
@ -59,7 +58,7 @@
|
|||||||
"json5": "2.2.1",
|
"json5": "2.2.1",
|
||||||
"json5-loader": "4.0.1",
|
"json5-loader": "4.0.1",
|
||||||
"jsonld": "6.0.0",
|
"jsonld": "6.0.0",
|
||||||
"jsrsasign": "10.5.25",
|
"jsrsasign": "10.5.27",
|
||||||
"koa": "2.13.4",
|
"koa": "2.13.4",
|
||||||
"koa-bodyparser": "4.3.0",
|
"koa-bodyparser": "4.3.0",
|
||||||
"koa-favicon": "2.1.0",
|
"koa-favicon": "2.1.0",
|
||||||
@ -69,74 +68,71 @@
|
|||||||
"koa-send": "5.0.1",
|
"koa-send": "5.0.1",
|
||||||
"koa-slow": "2.1.0",
|
"koa-slow": "2.1.0",
|
||||||
"koa-views": "7.0.2",
|
"koa-views": "7.0.2",
|
||||||
"mfm-js": "0.23.0-canary.1",
|
"mfm-js": "0.23.0",
|
||||||
"mime-types": "2.1.35",
|
"mime-types": "2.1.35",
|
||||||
"misskey-js": "0.0.14",
|
"misskey-js": "0.0.14",
|
||||||
"mocha": "10.0.0",
|
"mocha": "10.0.0",
|
||||||
"ms": "3.0.0-canary.1",
|
"ms": "3.0.0-canary.1",
|
||||||
"multer": "1.4.4",
|
"multer": "1.4.4",
|
||||||
"nested-property": "4.0.0",
|
"nested-property": "4.0.0",
|
||||||
"node-fetch": "3.2.8",
|
"node-fetch": "3.2.10",
|
||||||
"nodemailer": "6.7.7",
|
"nodemailer": "6.7.8",
|
||||||
"nsfwjs": "2.4.1",
|
"nsfwjs": "2.4.2",
|
||||||
"os-utils": "0.0.14",
|
"os-utils": "0.0.14",
|
||||||
"parse5": "7.0.0",
|
"parse5": "7.1.1",
|
||||||
"pg": "8.7.3",
|
"pg": "8.8.0",
|
||||||
"private-ip": "2.3.3",
|
"private-ip": "2.3.4",
|
||||||
"probe-image-size": "7.2.3",
|
"probe-image-size": "7.2.3",
|
||||||
"promise-limit": "2.7.0",
|
"promise-limit": "2.7.0",
|
||||||
"pug": "3.0.2",
|
"pug": "3.0.2",
|
||||||
"punycode": "2.1.1",
|
"punycode": "2.1.1",
|
||||||
"pureimage": "0.3.14",
|
"pureimage": "0.3.14",
|
||||||
"qrcode": "1.5.0",
|
"qrcode": "1.5.1",
|
||||||
"random-seed": "0.3.0",
|
"random-seed": "0.3.0",
|
||||||
"ratelimiter": "3.4.1",
|
"ratelimiter": "3.4.1",
|
||||||
"re2": "1.17.7",
|
"re2": "1.17.7",
|
||||||
"redis-lock": "0.1.4",
|
"redis-lock": "0.1.4",
|
||||||
"reflect-metadata": "0.1.13",
|
"reflect-metadata": "0.1.13",
|
||||||
"rename": "1.0.4",
|
"rename": "1.0.4",
|
||||||
"require-all": "3.0.0",
|
|
||||||
"rndstr": "1.0.0",
|
"rndstr": "1.0.0",
|
||||||
"rss-parser": "3.12.0",
|
"rss-parser": "3.12.0",
|
||||||
"s-age": "1.1.2",
|
"s-age": "1.1.2",
|
||||||
"sanitize-html": "2.7.0",
|
"sanitize-html": "2.7.1",
|
||||||
"semver": "7.3.7",
|
"semver": "7.3.7",
|
||||||
"sharp": "0.29.3",
|
"sharp": "0.29.3",
|
||||||
"speakeasy": "2.0.0",
|
"speakeasy": "2.0.0",
|
||||||
"strict-event-emitter-types": "2.0.0",
|
"strict-event-emitter-types": "2.0.0",
|
||||||
"stringz": "2.1.0",
|
"stringz": "2.1.0",
|
||||||
"style-loader": "3.3.1",
|
|
||||||
"summaly": "2.7.0",
|
"summaly": "2.7.0",
|
||||||
"syslog-pro": "1.0.0",
|
"syslog-pro": "1.0.0",
|
||||||
"systeminformation": "5.12.0",
|
"systeminformation": "5.12.6",
|
||||||
"tinycolor2": "1.4.2",
|
"tinycolor2": "1.4.2",
|
||||||
"tmp": "0.2.1",
|
"tmp": "0.2.1",
|
||||||
"ts-loader": "9.3.1",
|
"ts-loader": "9.3.1",
|
||||||
"ts-node": "10.8.2",
|
"ts-node": "10.9.1",
|
||||||
"tsc-alias": "1.6.11",
|
"tsc-alias": "1.7.0",
|
||||||
"tsconfig-paths": "4.0.0",
|
"tsconfig-paths": "4.1.0",
|
||||||
"twemoji-parser": "14.0.0",
|
"twemoji-parser": "14.0.0",
|
||||||
"typeorm": "0.3.7",
|
"typeorm": "0.3.9",
|
||||||
"ulid": "2.3.0",
|
"ulid": "2.3.0",
|
||||||
"unzipper": "0.10.11",
|
"unzipper": "0.10.11",
|
||||||
"uuid": "8.3.2",
|
"uuid": "9.0.0",
|
||||||
"web-push": "3.5.0",
|
"web-push": "3.5.0",
|
||||||
"websocket": "1.0.34",
|
"websocket": "1.0.34",
|
||||||
"ws": "8.8.0",
|
"ws": "8.8.1",
|
||||||
"xev": "3.0.2"
|
"xev": "3.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@redocly/openapi-core": "1.0.0-beta.97",
|
"@redocly/openapi-core": "1.0.0-beta.108",
|
||||||
"@types/bcryptjs": "2.4.2",
|
"@types/bcryptjs": "2.4.2",
|
||||||
"@types/bull": "3.15.8",
|
"@types/bull": "3.15.9",
|
||||||
"@types/cbor": "6.0.0",
|
"@types/cbor": "6.0.0",
|
||||||
"@types/escape-regexp": "0.0.1",
|
"@types/escape-regexp": "0.0.1",
|
||||||
"@types/fluent-ffmpeg": "2.1.20",
|
"@types/fluent-ffmpeg": "2.1.20",
|
||||||
"@types/is-url": "1.2.30",
|
|
||||||
"@types/js-yaml": "4.0.5",
|
"@types/js-yaml": "4.0.5",
|
||||||
"@types/jsdom": "16.2.14",
|
"@types/jsdom": "20.0.0",
|
||||||
"@types/jsonld": "1.5.6",
|
"@types/jsonld": "1.5.6",
|
||||||
"@types/jsrsasign": "10.5.1",
|
"@types/jsrsasign": "10.5.2",
|
||||||
"@types/koa": "2.13.5",
|
"@types/koa": "2.13.5",
|
||||||
"@types/koa-bodyparser": "4.3.7",
|
"@types/koa-bodyparser": "4.3.7",
|
||||||
"@types/koa-cors": "0.0.2",
|
"@types/koa-cors": "0.0.2",
|
||||||
@ -149,20 +145,20 @@
|
|||||||
"@types/koa__multer": "2.0.4",
|
"@types/koa__multer": "2.0.4",
|
||||||
"@types/koa__router": "8.0.11",
|
"@types/koa__router": "8.0.11",
|
||||||
"@types/mocha": "9.1.1",
|
"@types/mocha": "9.1.1",
|
||||||
"@types/node": "18.0.3",
|
"@types/node": "18.7.16",
|
||||||
"@types/node-fetch": "3.0.3",
|
"@types/node-fetch": "3.0.3",
|
||||||
"@types/nodemailer": "6.4.4",
|
"@types/nodemailer": "6.4.5",
|
||||||
"@types/oauth": "0.9.1",
|
"@types/oauth": "0.9.1",
|
||||||
"@types/pug": "2.0.6",
|
"@types/pug": "2.0.6",
|
||||||
"@types/punycode": "2.1.0",
|
"@types/punycode": "2.1.0",
|
||||||
"@types/qrcode": "1.4.2",
|
"@types/qrcode": "1.5.0",
|
||||||
"@types/random-seed": "0.3.3",
|
"@types/random-seed": "0.3.3",
|
||||||
"@types/ratelimiter": "3.4.3",
|
"@types/ratelimiter": "3.4.3",
|
||||||
"@types/redis": "4.0.11",
|
"@types/redis": "4.0.11",
|
||||||
"@types/rename": "1.0.4",
|
"@types/rename": "1.0.4",
|
||||||
"@types/sanitize-html": "2.6.2",
|
"@types/sanitize-html": "2.6.2",
|
||||||
"@types/semver": "7.3.10",
|
"@types/semver": "7.3.12",
|
||||||
"@types/sharp": "0.30.4",
|
"@types/sharp": "0.30.5",
|
||||||
"@types/sinonjs__fake-timers": "8.1.2",
|
"@types/sinonjs__fake-timers": "8.1.2",
|
||||||
"@types/speakeasy": "2.0.7",
|
"@types/speakeasy": "2.0.7",
|
||||||
"@types/tinycolor2": "1.4.3",
|
"@types/tinycolor2": "1.4.3",
|
||||||
@ -171,12 +167,12 @@
|
|||||||
"@types/web-push": "3.3.2",
|
"@types/web-push": "3.3.2",
|
||||||
"@types/websocket": "1.0.5",
|
"@types/websocket": "1.0.5",
|
||||||
"@types/ws": "8.5.3",
|
"@types/ws": "8.5.3",
|
||||||
"@typescript-eslint/eslint-plugin": "5.30.6",
|
"@typescript-eslint/eslint-plugin": "5.36.2",
|
||||||
"@typescript-eslint/parser": "5.30.6",
|
"@typescript-eslint/parser": "5.36.2",
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"eslint": "8.19.0",
|
"eslint": "8.23.0",
|
||||||
"eslint-plugin-import": "2.26.0",
|
"eslint-plugin-import": "2.26.0",
|
||||||
"execa": "6.1.0",
|
"execa": "6.1.0",
|
||||||
"typescript": "4.7.4"
|
"typescript": "4.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import { Blocking } from '@/models/entities/blocking.js';
|
|||||||
* @param block The block to be rendered. The blockee relation must be loaded.
|
* @param block The block to be rendered. The blockee relation must be loaded.
|
||||||
*/
|
*/
|
||||||
export function renderBlock(block: Blocking) {
|
export function renderBlock(block: Blocking) {
|
||||||
if (block.blockee?.url == null) {
|
if (block.blockee?.uri == null) {
|
||||||
throw new Error('renderBlock: missing blockee uri');
|
throw new Error('renderBlock: missing blockee uri');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
|
import { In } from 'typeorm';
|
||||||
import { publishMainStream } from '@/services/stream.js';
|
import { publishMainStream } from '@/services/stream.js';
|
||||||
import { pushNotification } from '@/services/push-notification.js';
|
import { pushNotification } from '@/services/push-notification.js';
|
||||||
import { User } from '@/models/entities/user.js';
|
import { User } from '@/models/entities/user.js';
|
||||||
import { Notification } from '@/models/entities/notification.js';
|
import { Notification } from '@/models/entities/notification.js';
|
||||||
import { Notifications, Users } from '@/models/index.js';
|
import { Notifications, Users } from '@/models/index.js';
|
||||||
import { In } from 'typeorm';
|
|
||||||
|
|
||||||
export async function readNotification(
|
export async function readNotification(
|
||||||
userId: User['id'],
|
userId: User['id'],
|
||||||
notificationIds: Notification['id'][]
|
notificationIds: Notification['id'][],
|
||||||
) {
|
) {
|
||||||
if (notificationIds.length === 0) return;
|
if (notificationIds.length === 0) return;
|
||||||
|
|
||||||
// Update documents
|
// Update documents
|
||||||
const result = await Notifications.update({
|
const result = await Notifications.update({
|
||||||
|
notifieeId: userId,
|
||||||
id: In(notificationIds),
|
id: In(notificationIds),
|
||||||
isRead: false,
|
isRead: false,
|
||||||
}, {
|
}, {
|
||||||
@ -27,7 +28,7 @@ export async function readNotification(
|
|||||||
|
|
||||||
export async function readNotificationByQuery(
|
export async function readNotificationByQuery(
|
||||||
userId: User['id'],
|
userId: User['id'],
|
||||||
query: Record<string, any>
|
query: Record<string, any>,
|
||||||
) {
|
) {
|
||||||
const notificationIds = await Notifications.findBy({
|
const notificationIds = await Notifications.findBy({
|
||||||
...query,
|
...query,
|
||||||
|
@ -13,7 +13,7 @@ export const meta = {
|
|||||||
|
|
||||||
limit: {
|
limit: {
|
||||||
duration: 60000,
|
duration: 60000,
|
||||||
max: 10,
|
max: 100,
|
||||||
},
|
},
|
||||||
|
|
||||||
kind: 'read:notifications',
|
kind: 'read:notifications',
|
||||||
|
@ -95,6 +95,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const colorSchema = localStorage.getItem('colorSchema');
|
||||||
|
if (colorSchema) {
|
||||||
|
document.documentElement.style.setProperty('color-schema', colorSchema);
|
||||||
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
const fontSize = localStorage.getItem('fontSize');
|
const fontSize = localStorage.getItem('fontSize');
|
||||||
@ -141,6 +145,8 @@
|
|||||||
</button>
|
</button>
|
||||||
<p class="dont-worry">Don't worry, it's (probably) not your fault.</p>
|
<p class="dont-worry">Don't worry, it's (probably) not your fault.</p>
|
||||||
<p>If the problem persists after refreshing, please contact your instance's administrator.<br>You may also try the following options:</p>
|
<p>If the problem persists after refreshing, please contact your instance's administrator.<br>You may also try the following options:</p>
|
||||||
|
<p>Update your os and browser.</p>
|
||||||
|
<p>Disable an adblocker.</p>
|
||||||
<a href="/flush">
|
<a href="/flush">
|
||||||
<button class="button-small">
|
<button class="button-small">
|
||||||
<span class="button-label-small">Clear preferences and cache</span>
|
<span class="button-label-small">Clear preferences and cache</span>
|
||||||
|
@ -27,7 +27,7 @@ html
|
|||||||
.then(registrations => {
|
.then(registrations => {
|
||||||
return Promise.all(registrations.map(registration => registration.unregister()));
|
return Promise.all(registrations.map(registration => registration.unregister()));
|
||||||
})
|
})
|
||||||
.catch(e => { throw Error(e) });
|
.catch(e => { throw new Error(e) });
|
||||||
}
|
}
|
||||||
|
|
||||||
message(successText);
|
message(successText);
|
||||||
|
@ -138,7 +138,7 @@ describe('Note', () => {
|
|||||||
|
|
||||||
it('文字数ぎりぎりで怒られない', async(async () => {
|
it('文字数ぎりぎりで怒られない', async(async () => {
|
||||||
const post = {
|
const post = {
|
||||||
text: '!'.repeat(3000),
|
text: '!'.repeat(8192),
|
||||||
};
|
};
|
||||||
const res = await request('/notes/create', post, alice);
|
const res = await request('/notes/create', post, alice);
|
||||||
assert.strictEqual(res.status, 200);
|
assert.strictEqual(res.status, 200);
|
||||||
@ -146,7 +146,7 @@ describe('Note', () => {
|
|||||||
|
|
||||||
it('文字数オーバーで怒られる', async(async () => {
|
it('文字数オーバーで怒られる', async(async () => {
|
||||||
const post = {
|
const post = {
|
||||||
text: '!'.repeat(3001),
|
text: '!'.repeat(8193),
|
||||||
};
|
};
|
||||||
const res = await request('/notes/create', post, alice);
|
const res = await request('/notes/create', post, alice);
|
||||||
assert.strictEqual(res.status, 400);
|
assert.strictEqual(res.status, 400);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
"noFallthroughCasesInSwitch": true,
|
"noFallthroughCasesInSwitch": true,
|
||||||
"declaration": false,
|
"declaration": false,
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"target": "es2017",
|
"target": "es2021",
|
||||||
"module": "es2020",
|
"module": "es2020",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"allowSyntheticDefaultImports": true,
|
"allowSyntheticDefaultImports": true,
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
"noFallthroughCasesInSwitch": true,
|
"noFallthroughCasesInSwitch": true,
|
||||||
"declaration": false,
|
"declaration": false,
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"target": "es2017",
|
"target": "es2021",
|
||||||
"module": "es2020",
|
"module": "es2020",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"allowSyntheticDefaultImports": true,
|
"allowSyntheticDefaultImports": true,
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -11,102 +11,80 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@discordapp/twemoji": "14.0.2",
|
"@discordapp/twemoji": "14.0.2",
|
||||||
"@fortawesome/fontawesome-free": "6.1.1",
|
"@fortawesome/fontawesome-free": "6.1.2",
|
||||||
"@rollup/plugin-alias": "3.1.9",
|
"@rollup/plugin-alias": "3.1.9",
|
||||||
"@rollup/plugin-json": "4.1.0",
|
"@rollup/plugin-json": "4.1.0",
|
||||||
"@syuilo/aiscript": "0.11.1",
|
"@syuilo/aiscript": "0.11.1",
|
||||||
"@vitejs/plugin-vue": "3.0.1",
|
"@vitejs/plugin-vue": "3.1.0",
|
||||||
"@vue/compiler-sfc": "3.2.37",
|
"@vue/compiler-sfc": "3.2.39",
|
||||||
"abort-controller": "3.0.0",
|
|
||||||
"autobind-decorator": "2.4.0",
|
"autobind-decorator": "2.4.0",
|
||||||
"autosize": "5.0.1",
|
"autosize": "5.0.1",
|
||||||
"autwh": "0.1.0",
|
|
||||||
"blurhash": "1.1.5",
|
"blurhash": "1.1.5",
|
||||||
"broadcast-channel": "4.13.0",
|
"broadcast-channel": "4.14.0",
|
||||||
"browser-image-resizer": "git+https://github.com/misskey-dev/browser-image-resizer#v2.2.1-misskey.2",
|
"browser-image-resizer": "git+https://github.com/misskey-dev/browser-image-resizer#v2.2.1-misskey.2",
|
||||||
"chart.js": "3.8.0",
|
"chart.js": "3.9.1",
|
||||||
"chartjs-adapter-date-fns": "2.0.0",
|
"chartjs-adapter-date-fns": "2.0.0",
|
||||||
"chartjs-plugin-gradient": "0.5.0",
|
"chartjs-plugin-gradient": "0.5.1",
|
||||||
"chartjs-plugin-zoom": "1.2.1",
|
"chartjs-plugin-zoom": "1.2.1",
|
||||||
"compare-versions": "4.1.3",
|
"compare-versions": "5.0.1",
|
||||||
"content-disposition": "0.5.4",
|
|
||||||
"cropperjs": "2.0.0-beta",
|
"cropperjs": "2.0.0-beta",
|
||||||
"date-fns": "2.28.0",
|
"date-fns": "2.29.2",
|
||||||
"escape-regexp": "0.0.1",
|
"escape-regexp": "0.0.1",
|
||||||
"eventemitter3": "4.0.7",
|
"eventemitter3": "4.0.7",
|
||||||
"feed": "4.2.2",
|
|
||||||
"idb-keyval": "6.2.0",
|
"idb-keyval": "6.2.0",
|
||||||
"insert-text-at-cursor": "0.3.0",
|
"insert-text-at-cursor": "0.3.0",
|
||||||
"json5": "2.2.1",
|
"json5": "2.2.1",
|
||||||
"katex": "0.15.6",
|
"katex": "0.15.6",
|
||||||
"matter-js": "0.18.0",
|
"matter-js": "0.18.0",
|
||||||
"mfm-js": "0.23.0-canary.1",
|
"mfm-js": "0.23.0",
|
||||||
|
"misetehoshii": "https://github.com/melt-adzuki/misetehoshii",
|
||||||
"misskey-js": "0.0.14",
|
"misskey-js": "0.0.14",
|
||||||
"mocha": "10.0.0",
|
"photoswipe": "5.3.2",
|
||||||
"ms": "2.1.3",
|
"prismjs": "1.29.0",
|
||||||
"nested-property": "4.0.0",
|
|
||||||
"photoswipe": "5.2.8",
|
|
||||||
"prismjs": "1.28.0",
|
|
||||||
"private-ip": "2.3.3",
|
|
||||||
"promise-limit": "2.7.0",
|
|
||||||
"pug": "3.0.2",
|
|
||||||
"punycode": "2.1.1",
|
"punycode": "2.1.1",
|
||||||
"qrcode": "1.5.0",
|
|
||||||
"querystring": "0.2.1",
|
"querystring": "0.2.1",
|
||||||
"random-seed": "0.3.0",
|
|
||||||
"reflect-metadata": "0.1.13",
|
|
||||||
"rndstr": "1.0.0",
|
"rndstr": "1.0.0",
|
||||||
"s-age": "1.1.2",
|
"s-age": "1.1.2",
|
||||||
"sass": "1.53.0",
|
"sass": "1.54.9",
|
||||||
"seedrandom": "3.0.5",
|
"seedrandom": "3.0.5",
|
||||||
"strict-event-emitter-types": "2.0.0",
|
"strict-event-emitter-types": "2.0.0",
|
||||||
"stringz": "2.1.0",
|
"stringz": "2.1.0",
|
||||||
"syuilo-password-strength": "0.0.1",
|
"syuilo-password-strength": "0.0.1",
|
||||||
"textarea-caret": "3.1.0",
|
"textarea-caret": "3.1.0",
|
||||||
"three": "0.142.0",
|
"three": "0.144.0",
|
||||||
"throttle-debounce": "5.0.0",
|
"throttle-debounce": "5.0.0",
|
||||||
"tinycolor2": "1.4.2",
|
"tinycolor2": "1.4.2",
|
||||||
"tsc-alias": "1.6.11",
|
"tsc-alias": "1.7.0",
|
||||||
"tsconfig-paths": "4.0.0",
|
"tsconfig-paths": "4.1.0",
|
||||||
"twemoji-parser": "14.0.0",
|
"twemoji-parser": "14.0.0",
|
||||||
"typescript": "4.7.4",
|
"typescript": "4.8.3",
|
||||||
"uuid": "8.3.2",
|
"uuid": "9.0.0",
|
||||||
"v-debounce": "0.1.2",
|
|
||||||
"vanilla-tilt": "1.7.2",
|
"vanilla-tilt": "1.7.2",
|
||||||
"vite": "3.0.2",
|
"vite": "3.1.0",
|
||||||
"vue": "3.2.37",
|
"vue": "3.2.39",
|
||||||
"vue-prism-editor": "2.0.0-alpha.2",
|
"vue-prism-editor": "2.0.0-alpha.2",
|
||||||
"vuedraggable": "4.0.1",
|
"vuedraggable": "4.0.1"
|
||||||
"websocket": "1.0.34",
|
|
||||||
"ws": "8.8.0"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/escape-regexp": "0.0.1",
|
"@types/escape-regexp": "0.0.1",
|
||||||
"@types/glob": "7.2.0",
|
"@types/glob": "8.0.0",
|
||||||
"@types/gulp": "4.0.9",
|
"@types/gulp": "4.0.9",
|
||||||
"@types/gulp-rename": "2.0.1",
|
"@types/gulp-rename": "2.0.1",
|
||||||
"@types/is-url": "1.2.30",
|
|
||||||
"@types/katex": "0.14.0",
|
"@types/katex": "0.14.0",
|
||||||
"@types/matter-js": "0.17.7",
|
"@types/matter-js": "0.18.1",
|
||||||
"@types/mocha": "9.1.1",
|
|
||||||
"@types/oauth": "0.9.1",
|
|
||||||
"@types/punycode": "2.1.0",
|
"@types/punycode": "2.1.0",
|
||||||
"@types/qrcode": "1.4.2",
|
|
||||||
"@types/random-seed": "0.3.3",
|
|
||||||
"@types/seedrandom": "3.0.2",
|
"@types/seedrandom": "3.0.2",
|
||||||
"@types/throttle-debounce": "5.0.0",
|
"@types/throttle-debounce": "5.0.0",
|
||||||
"@types/tinycolor2": "1.4.3",
|
"@types/tinycolor2": "1.4.3",
|
||||||
"@types/uuid": "8.3.4",
|
"@types/uuid": "8.3.4",
|
||||||
"@types/websocket": "1.0.5",
|
"@typescript-eslint/eslint-plugin": "5.36.2",
|
||||||
"@types/ws": "8.5.3",
|
"@typescript-eslint/parser": "5.36.2",
|
||||||
"@typescript-eslint/eslint-plugin": "5.30.6",
|
|
||||||
"@typescript-eslint/parser": "5.30.6",
|
|
||||||
"rollup": "2.76.0",
|
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"cypress": "10.3.0",
|
"cypress": "10.7.0",
|
||||||
"eslint": "8.19.0",
|
"eslint": "8.23.0",
|
||||||
"eslint-plugin-import": "2.26.0",
|
"eslint-plugin-import": "2.26.0",
|
||||||
"eslint-plugin-vue": "9.2.0",
|
"eslint-plugin-vue": "9.4.0",
|
||||||
|
"rollup": "2.79.0",
|
||||||
"start-server-and-test": "1.14.0"
|
"start-server-and-test": "1.14.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,7 +146,7 @@ export async function openAccountMenu(opts: {
|
|||||||
onChoose?: (account: misskey.entities.UserDetailed) => void;
|
onChoose?: (account: misskey.entities.UserDetailed) => void;
|
||||||
}, ev: MouseEvent) {
|
}, ev: MouseEvent) {
|
||||||
function showSigninDialog() {
|
function showSigninDialog() {
|
||||||
popup(defineAsyncComponent(() => import('@/components/signin-dialog.vue')), {}, {
|
popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, {
|
||||||
done: res => {
|
done: res => {
|
||||||
addAccount(res.id, res.i);
|
addAccount(res.id, res.i);
|
||||||
success();
|
success();
|
||||||
@ -155,7 +155,7 @@ export async function openAccountMenu(opts: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function createAccount() {
|
function createAccount() {
|
||||||
popup(defineAsyncComponent(() => import('@/components/signup-dialog.vue')), {}, {
|
popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, {
|
||||||
done: res => {
|
done: res => {
|
||||||
addAccount(res.id, res.i);
|
addAccount(res.id, res.i);
|
||||||
switchAccountWithToken(res.i);
|
switchAccountWithToken(res.i);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</MkA>
|
</MkA>
|
||||||
<MkKeyValue class="_formBlock">
|
<MkKeyValue class="_formBlock">
|
||||||
<template #key>{{ $ts.registeredDate }}</template>
|
<template #key>{{ i18n.ts.registeredDate }}</template>
|
||||||
<template #value>{{ new Date(report.targetUser.createdAt).toLocaleString() }} (<MkTime :time="report.targetUser.createdAt"/>)</template>
|
<template #value>{{ new Date(report.targetUser.createdAt).toLocaleString() }} (<MkTime :time="report.targetUser.createdAt"/>)</template>
|
||||||
</MkKeyValue>
|
</MkKeyValue>
|
||||||
</div>
|
</div>
|
||||||
@ -18,29 +18,30 @@
|
|||||||
<Mfm :text="report.comment"/>
|
<Mfm :text="report.comment"/>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div>{{ $ts.reporter }}: <MkAcct :user="report.reporter"/></div>
|
<div>{{ i18n.ts.reporter }}: <MkAcct :user="report.reporter"/></div>
|
||||||
<div v-if="report.assignee">
|
<div v-if="report.assignee">
|
||||||
{{ $ts.moderator }}:
|
{{ i18n.ts.moderator }}:
|
||||||
<MkAcct :user="report.assignee"/>
|
<MkAcct :user="report.assignee"/>
|
||||||
</div>
|
</div>
|
||||||
<div><MkTime :time="report.createdAt"/></div>
|
<div><MkTime :time="report.createdAt"/></div>
|
||||||
<div class="action">
|
<div class="action">
|
||||||
<MkSwitch v-model="forward" :disabled="report.targetUser.host == null || report.resolved">
|
<MkSwitch v-model="forward" :disabled="report.targetUser.host == null || report.resolved">
|
||||||
{{ $ts.forwardReport }}
|
{{ i18n.ts.forwardReport }}
|
||||||
<template #caption>{{ $ts.forwardReportIsAnonymous }}</template>
|
<template #caption>{{ i18n.ts.forwardReportIsAnonymous }}</template>
|
||||||
</MkSwitch>
|
</MkSwitch>
|
||||||
<MkButton v-if="!report.resolved" primary @click="resolve">{{ $ts.abuseMarkAsResolved }}</MkButton>
|
<MkButton v-if="!report.resolved" primary @click="resolve">{{ i18n.ts.abuseMarkAsResolved }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import MkButton from '@/components/ui/button.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
import MkSwitch from '@/components/form/switch.vue';
|
import MkSwitch from '@/components/form/switch.vue';
|
||||||
import MkKeyValue from '@/components/key-value.vue';
|
import MkKeyValue from '@/components/MkKeyValue.vue';
|
||||||
import { acct, userPage } from '@/filters/user';
|
import { acct, userPage } from '@/filters/user';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
import { i18n } from '@/i18n';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
report: any;
|
report: any;
|
@ -25,9 +25,9 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import XWindow from '@/components/ui/window.vue';
|
import XWindow from '@/components/MkWindow.vue';
|
||||||
import MkTextarea from '@/components/form/textarea.vue';
|
import MkTextarea from '@/components/form/textarea.vue';
|
||||||
import MkButton from '@/components/ui/button.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
|
|
225
packages/client/src/components/MkAnalogClock.vue
Normal file
225
packages/client/src/components/MkAnalogClock.vue
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
<template>
|
||||||
|
<svg class="mbcofsoe" viewBox="0 0 10 10" preserveAspectRatio="none">
|
||||||
|
<template v-if="props.graduations === 'dots'">
|
||||||
|
<circle
|
||||||
|
v-for="(angle, i) in graduationsMajor"
|
||||||
|
:cx="5 + (Math.sin(angle) * (5 - graduationsPadding))"
|
||||||
|
:cy="5 - (Math.cos(angle) * (5 - graduationsPadding))"
|
||||||
|
:r="0.125"
|
||||||
|
:fill="(props.twentyfour ? h : h % 12) === i ? nowColor : majorGraduationColor"
|
||||||
|
:opacity="!props.fadeGraduations || (props.twentyfour ? h : h % 12) === i ? 1 : Math.max(0, 1 - (angleDiff(hAngle, angle) / Math.PI) - numbersOpacityFactor)"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="props.graduations === 'numbers'">
|
||||||
|
<text
|
||||||
|
v-for="(angle, i) in texts"
|
||||||
|
:x="5 + (Math.sin(angle) * (5 - textsPadding))"
|
||||||
|
:y="5 - (Math.cos(angle) * (5 - textsPadding))"
|
||||||
|
text-anchor="middle"
|
||||||
|
dominant-baseline="middle"
|
||||||
|
:font-size="(props.twentyfour ? h : h % 12) === i ? 1 : 0.7"
|
||||||
|
:font-weight="(props.twentyfour ? h : h % 12) === i ? 'bold' : 'normal'"
|
||||||
|
:fill="(props.twentyfour ? h : h % 12) === i ? nowColor : 'currentColor'"
|
||||||
|
:opacity="!props.fadeGraduations || (props.twentyfour ? h : h % 12) === i ? 1 : Math.max(0, 1 - (angleDiff(hAngle, angle) / Math.PI) - numbersOpacityFactor)"
|
||||||
|
>
|
||||||
|
{{ i === 0 ? (props.twentyfour ? '24' : '12') : i }}
|
||||||
|
</text>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<line
|
||||||
|
:x1="5 - (Math.sin(sAngle) * (sHandLengthRatio * handsTailLength))"
|
||||||
|
:y1="5 + (Math.cos(sAngle) * (sHandLengthRatio * handsTailLength))"
|
||||||
|
:x2="5 + (Math.sin(sAngle) * ((sHandLengthRatio * 5) - handsPadding))"
|
||||||
|
:y2="5 - (Math.cos(sAngle) * ((sHandLengthRatio * 5) - handsPadding))"
|
||||||
|
:stroke="sHandColor"
|
||||||
|
:stroke-width="thickness / 2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<line
|
||||||
|
class="s"
|
||||||
|
:class="{ animate: !disableSAnimate && sAnimation !== 'none', elastic: sAnimation === 'elastic', easeOut: sAnimation === 'easeOut' }"
|
||||||
|
:x1="5 - (0 * (sHandLengthRatio * handsTailLength))"
|
||||||
|
:y1="5 + (1 * (sHandLengthRatio * handsTailLength))"
|
||||||
|
:x2="5 + (0 * ((sHandLengthRatio * 5) - handsPadding))"
|
||||||
|
:y2="5 - (1 * ((sHandLengthRatio * 5) - handsPadding))"
|
||||||
|
:stroke="sHandColor"
|
||||||
|
:stroke-width="thickness / 2"
|
||||||
|
:style="`transform: rotateZ(${sAngle}rad)`"
|
||||||
|
stroke-linecap="round"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<line
|
||||||
|
:x1="5 - (Math.sin(mAngle) * (mHandLengthRatio * handsTailLength))"
|
||||||
|
:y1="5 + (Math.cos(mAngle) * (mHandLengthRatio * handsTailLength))"
|
||||||
|
:x2="5 + (Math.sin(mAngle) * ((mHandLengthRatio * 5) - handsPadding))"
|
||||||
|
:y2="5 - (Math.cos(mAngle) * ((mHandLengthRatio * 5) - handsPadding))"
|
||||||
|
:stroke="mHandColor"
|
||||||
|
:stroke-width="thickness"
|
||||||
|
stroke-linecap="round"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<line
|
||||||
|
:x1="5 - (Math.sin(hAngle) * (hHandLengthRatio * handsTailLength))"
|
||||||
|
:y1="5 + (Math.cos(hAngle) * (hHandLengthRatio * handsTailLength))"
|
||||||
|
:x2="5 + (Math.sin(hAngle) * ((hHandLengthRatio * 5) - handsPadding))"
|
||||||
|
:y2="5 - (Math.cos(hAngle) * ((hHandLengthRatio * 5) - handsPadding))"
|
||||||
|
:stroke="hHandColor"
|
||||||
|
:stroke-width="thickness"
|
||||||
|
stroke-linecap="round"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, computed, onMounted, onBeforeUnmount, shallowRef, nextTick } from 'vue';
|
||||||
|
import tinycolor from 'tinycolor2';
|
||||||
|
import { globalEvents } from '@/events.js';
|
||||||
|
|
||||||
|
// https://stackoverflow.com/questions/1878907/how-can-i-find-the-difference-between-two-angles
|
||||||
|
const angleDiff = (a: number, b: number) => {
|
||||||
|
const x = Math.abs(a - b);
|
||||||
|
return Math.abs((x + Math.PI) % (Math.PI * 2) - Math.PI);
|
||||||
|
};
|
||||||
|
|
||||||
|
const graduationsPadding = 0.5;
|
||||||
|
const textsPadding = 0.6;
|
||||||
|
const handsPadding = 1;
|
||||||
|
const handsTailLength = 0.7;
|
||||||
|
const hHandLengthRatio = 0.75;
|
||||||
|
const mHandLengthRatio = 1;
|
||||||
|
const sHandLengthRatio = 1;
|
||||||
|
const numbersOpacityFactor = 0.35;
|
||||||
|
|
||||||
|
const props = withDefaults(defineProps<{
|
||||||
|
thickness?: number;
|
||||||
|
offset?: number;
|
||||||
|
twentyfour?: boolean;
|
||||||
|
graduations?: 'none' | 'dots' | 'numbers';
|
||||||
|
fadeGraduations?: boolean;
|
||||||
|
sAnimation?: 'none' | 'elastic' | 'easeOut';
|
||||||
|
}>(), {
|
||||||
|
numbers: false,
|
||||||
|
thickness: 0.1,
|
||||||
|
offset: 0 - new Date().getTimezoneOffset(),
|
||||||
|
twentyfour: false,
|
||||||
|
graduations: 'dots',
|
||||||
|
fadeGraduations: true,
|
||||||
|
sAnimation: 'elastic',
|
||||||
|
});
|
||||||
|
|
||||||
|
const graduationsMajor = computed(() => {
|
||||||
|
const angles: number[] = [];
|
||||||
|
const times = props.twentyfour ? 24 : 12;
|
||||||
|
for (let i = 0; i < times; i++) {
|
||||||
|
const angle = Math.PI * i / (times / 2);
|
||||||
|
angles.push(angle);
|
||||||
|
}
|
||||||
|
return angles;
|
||||||
|
});
|
||||||
|
const texts = computed(() => {
|
||||||
|
const angles: number[] = [];
|
||||||
|
const times = props.twentyfour ? 24 : 12;
|
||||||
|
for (let i = 0; i < times; i++) {
|
||||||
|
const angle = Math.PI * i / (times / 2);
|
||||||
|
angles.push(angle);
|
||||||
|
}
|
||||||
|
return angles;
|
||||||
|
});
|
||||||
|
|
||||||
|
let enabled = true;
|
||||||
|
let majorGraduationColor = $ref<string>();
|
||||||
|
//let minorGraduationColor = $ref<string>();
|
||||||
|
let sHandColor = $ref<string>();
|
||||||
|
let mHandColor = $ref<string>();
|
||||||
|
let hHandColor = $ref<string>();
|
||||||
|
let nowColor = $ref<string>();
|
||||||
|
let h = $ref<number>(0);
|
||||||
|
let m = $ref<number>(0);
|
||||||
|
let s = $ref<number>(0);
|
||||||
|
let hAngle = $ref<number>(0);
|
||||||
|
let mAngle = $ref<number>(0);
|
||||||
|
let sAngle = $ref<number>(0);
|
||||||
|
let disableSAnimate = $ref(false);
|
||||||
|
let sOneRound = false;
|
||||||
|
|
||||||
|
function tick() {
|
||||||
|
const now = new Date();
|
||||||
|
now.setMinutes(now.getMinutes() + (new Date().getTimezoneOffset() + props.offset));
|
||||||
|
s = now.getSeconds();
|
||||||
|
m = now.getMinutes();
|
||||||
|
h = now.getHours();
|
||||||
|
hAngle = Math.PI * (h % (props.twentyfour ? 24 : 12) + (m + s / 60) / 60) / (props.twentyfour ? 12 : 6);
|
||||||
|
mAngle = Math.PI * (m + s / 60) / 30;
|
||||||
|
if (sOneRound) { // 秒針が一周した際のアニメーションをよしなに処理する(これが無いと秒が59->0になったときに期待したアニメーションにならない)
|
||||||
|
sAngle = Math.PI * 60 / 30;
|
||||||
|
window.setTimeout(() => {
|
||||||
|
disableSAnimate = true;
|
||||||
|
window.setTimeout(() => {
|
||||||
|
sAngle = 0;
|
||||||
|
window.setTimeout(() => {
|
||||||
|
disableSAnimate = false;
|
||||||
|
}, 100);
|
||||||
|
}, 100);
|
||||||
|
}, 700);
|
||||||
|
} else {
|
||||||
|
sAngle = Math.PI * s / 30;
|
||||||
|
}
|
||||||
|
sOneRound = s === 59;
|
||||||
|
}
|
||||||
|
|
||||||
|
tick();
|
||||||
|
|
||||||
|
function calcColors() {
|
||||||
|
const computedStyle = getComputedStyle(document.documentElement);
|
||||||
|
const dark = tinycolor(computedStyle.getPropertyValue('--bg')).isDark();
|
||||||
|
const accent = tinycolor(computedStyle.getPropertyValue('--accent')).toHexString();
|
||||||
|
majorGraduationColor = dark ? 'rgba(255, 255, 255, 0.3)' : 'rgba(0, 0, 0, 0.3)';
|
||||||
|
//minorGraduationColor = dark ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)';
|
||||||
|
sHandColor = dark ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.3)';
|
||||||
|
mHandColor = tinycolor(computedStyle.getPropertyValue('--fg')).toHexString();
|
||||||
|
hHandColor = accent;
|
||||||
|
nowColor = accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
calcColors();
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
const update = () => {
|
||||||
|
if (enabled) {
|
||||||
|
tick();
|
||||||
|
window.setTimeout(update, 1000);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
update();
|
||||||
|
|
||||||
|
globalEvents.on('themeChanged', calcColors);
|
||||||
|
});
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
enabled = false;
|
||||||
|
|
||||||
|
globalEvents.off('themeChanged', calcColors);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.mbcofsoe {
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
> .s {
|
||||||
|
will-change: transform;
|
||||||
|
transform-origin: 50% 50%;
|
||||||
|
|
||||||
|
&.animate.elastic {
|
||||||
|
transition: transform .2s cubic-bezier(.4,2.08,.55,.44);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.animate.easeOut {
|
||||||
|
transition: transform .7s cubic-bezier(0,.7,.3,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
226
packages/client/src/components/MkButton.vue
Normal file
226
packages/client/src/components/MkButton.vue
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
<template>
|
||||||
|
<button
|
||||||
|
v-if="!link" class="bghgjjyj _button"
|
||||||
|
:class="{ inline, primary, gradate, danger, rounded, full }"
|
||||||
|
:type="type"
|
||||||
|
@click="emit('click', $event)"
|
||||||
|
@mousedown="onMousedown"
|
||||||
|
>
|
||||||
|
<div ref="ripples" class="ripples"></div>
|
||||||
|
<div class="content">
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
<MkA
|
||||||
|
v-else class="bghgjjyj _button"
|
||||||
|
:class="{ inline, primary, gradate, danger, rounded, full }"
|
||||||
|
:to="to"
|
||||||
|
@mousedown="onMousedown"
|
||||||
|
>
|
||||||
|
<div ref="ripples" class="ripples"></div>
|
||||||
|
<div class="content">
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
</MkA>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { nextTick, onMounted } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
type?: 'button' | 'submit' | 'reset';
|
||||||
|
primary?: boolean;
|
||||||
|
gradate?: boolean;
|
||||||
|
rounded?: boolean;
|
||||||
|
inline?: boolean;
|
||||||
|
link?: boolean;
|
||||||
|
to?: string;
|
||||||
|
autofocus?: boolean;
|
||||||
|
wait?: boolean;
|
||||||
|
danger?: boolean;
|
||||||
|
full?: boolean;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
const emit = defineEmits<{
|
||||||
|
(ev: 'click', payload: MouseEvent): void;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
let el = $ref<HTMLElement | null>(null);
|
||||||
|
let ripples = $ref<HTMLElement | null>(null);
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
if (props.autofocus) {
|
||||||
|
nextTick(() => {
|
||||||
|
el!.focus();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function distance(p, q): number {
|
||||||
|
return Math.hypot(p.x - q.x, p.y - q.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
function calcCircleScale(boxW, boxH, circleCenterX, circleCenterY): number {
|
||||||
|
const origin = { x: circleCenterX, y: circleCenterY };
|
||||||
|
const dist1 = distance({ x: 0, y: 0 }, origin);
|
||||||
|
const dist2 = distance({ x: boxW, y: 0 }, origin);
|
||||||
|
const dist3 = distance({ x: 0, y: boxH }, origin);
|
||||||
|
const dist4 = distance({ x: boxW, y: boxH }, origin);
|
||||||
|
return Math.max(dist1, dist2, dist3, dist4) * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onMousedown(evt: MouseEvent): void {
|
||||||
|
const target = evt.target! as HTMLElement;
|
||||||
|
const rect = target.getBoundingClientRect();
|
||||||
|
|
||||||
|
const ripple = document.createElement('div');
|
||||||
|
ripple.style.top = (evt.clientY - rect.top - 1).toString() + 'px';
|
||||||
|
ripple.style.left = (evt.clientX - rect.left - 1).toString() + 'px';
|
||||||
|
|
||||||
|
ripples!.appendChild(ripple);
|
||||||
|
|
||||||
|
const circleCenterX = evt.clientX - rect.left;
|
||||||
|
const circleCenterY = evt.clientY - rect.top;
|
||||||
|
|
||||||
|
const scale = calcCircleScale(target.clientWidth, target.clientHeight, circleCenterX, circleCenterY);
|
||||||
|
|
||||||
|
window.setTimeout(() => {
|
||||||
|
ripple.style.transform = 'scale(' + (scale / 2) + ')';
|
||||||
|
}, 1);
|
||||||
|
window.setTimeout(() => {
|
||||||
|
ripple.style.transition = 'all 1s ease';
|
||||||
|
ripple.style.opacity = '0';
|
||||||
|
}, 1000);
|
||||||
|
window.setTimeout(() => {
|
||||||
|
if (ripples) ripples.removeChild(ripple);
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.bghgjjyj {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1; // 他コンポーネントのbox-shadowに隠されないようにするため
|
||||||
|
display: block;
|
||||||
|
min-width: 100px;
|
||||||
|
width: max-content;
|
||||||
|
padding: 8px 16px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 1em;
|
||||||
|
box-shadow: none;
|
||||||
|
text-decoration: none;
|
||||||
|
background: var(--buttonBg);
|
||||||
|
border-radius: 5px;
|
||||||
|
overflow: clip;
|
||||||
|
box-sizing: border-box;
|
||||||
|
transition: background 0.1s ease;
|
||||||
|
|
||||||
|
&:not(:disabled):hover {
|
||||||
|
background: var(--buttonHoverBg);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:disabled):active {
|
||||||
|
background: var(--buttonHoverBg);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.full {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.rounded {
|
||||||
|
border-radius: 999px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.primary {
|
||||||
|
font-weight: bold;
|
||||||
|
color: var(--fgOnAccent) !important;
|
||||||
|
background: var(--accent);
|
||||||
|
|
||||||
|
&:not(:disabled):hover {
|
||||||
|
background: var(--X8);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:disabled):active {
|
||||||
|
background: var(--X8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.gradate {
|
||||||
|
font-weight: bold;
|
||||||
|
color: var(--fgOnAccent) !important;
|
||||||
|
background: linear-gradient(90deg, var(--buttonGradateA), var(--buttonGradateB));
|
||||||
|
|
||||||
|
&:not(:disabled):hover {
|
||||||
|
background: linear-gradient(90deg, var(--X8), var(--X8));
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:disabled):active {
|
||||||
|
background: linear-gradient(90deg, var(--X8), var(--X8));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.danger {
|
||||||
|
color: #ff2a2a;
|
||||||
|
|
||||||
|
&.primary {
|
||||||
|
color: #fff;
|
||||||
|
background: #ff2a2a;
|
||||||
|
|
||||||
|
&:not(:disabled):hover {
|
||||||
|
background: #ff4242;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:disabled):active {
|
||||||
|
background: #d42e2e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:disabled {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus-visible {
|
||||||
|
outline: solid 2px var(--focus);
|
||||||
|
outline-offset: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.inline {
|
||||||
|
display: inline-block;
|
||||||
|
width: auto;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .ripples {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 0;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 6px;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
::v-deep(div) {
|
||||||
|
position: absolute;
|
||||||
|
width: 2px;
|
||||||
|
height: 2px;
|
||||||
|
border-radius: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
opacity: 1;
|
||||||
|
transform: scale(1);
|
||||||
|
transition: all 0.5s cubic-bezier(0,.5,0,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.primary > .ripples ::v-deep(div) {
|
||||||
|
background: rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
> .content {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { } from 'vue';
|
import { } from 'vue';
|
||||||
import MkTooltip from './ui/tooltip.vue';
|
import MkTooltip from './MkTooltip.vue';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
showing: boolean;
|
showing: boolean;
|
@ -11,5 +11,5 @@ defineProps<{
|
|||||||
inline?: boolean;
|
inline?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const XCode = defineAsyncComponent(() => import('./code-core.vue'));
|
const XCode = defineAsyncComponent(() => import('@/components/MkCode.core.vue'));
|
||||||
</script>
|
</script>
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, onBeforeUnmount } from 'vue';
|
import { onMounted, onBeforeUnmount } from 'vue';
|
||||||
import MkMenu from './menu.vue';
|
import MkMenu from './MkMenu.vue';
|
||||||
import { MenuItem } from './types/menu.vue';
|
import { MenuItem } from './types/menu.vue';
|
||||||
import contains from '@/scripts/contains';
|
import contains from '@/scripts/contains';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
@ -76,12 +76,13 @@ function onMousedown(evt: Event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.fade-enter-active, .fade-leave-active {
|
.fade-enter-active, .fade-leave-active {
|
||||||
transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
|
transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), height 0.2s ease-out, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
|
||||||
transform-origin: left top;
|
transform-origin: left top;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fade-enter-from, .fade-leave-to {
|
.fade-enter-from, .fade-leave-to {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: scale(0.9);
|
transform: scale(0.9);
|
||||||
|
height: 1px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -9,7 +9,7 @@
|
|||||||
@ok="ok()"
|
@ok="ok()"
|
||||||
@closed="$emit('closed')"
|
@closed="$emit('closed')"
|
||||||
>
|
>
|
||||||
<template #header>{{ $ts.cropImage }}</template>
|
<template #header>{{ i18n.ts.cropImage }}</template>
|
||||||
<template #default="{ width, height }">
|
<template #default="{ width, height }">
|
||||||
<div class="mk-cropper-dialog" :style="`--vw: ${width}px; --vh: ${height}px;`">
|
<div class="mk-cropper-dialog" :style="`--vw: ${width}px; --vh: ${height}px;`">
|
||||||
<Transition name="fade">
|
<Transition name="fade">
|
||||||
@ -30,12 +30,13 @@ import { nextTick, onMounted } from 'vue';
|
|||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import Cropper from 'cropperjs';
|
import Cropper from 'cropperjs';
|
||||||
import tinycolor from 'tinycolor2';
|
import tinycolor from 'tinycolor2';
|
||||||
import XModalWindow from '@/components/ui/modal-window.vue';
|
import XModalWindow from '@/components/MkModalWindow.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { $i } from '@/account';
|
import { $i } from '@/account';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
import { apiUrl, url } from '@/config';
|
import { apiUrl, url } from '@/config';
|
||||||
import { query } from '@/scripts/url';
|
import { query } from '@/scripts/url';
|
||||||
|
import { i18n } from '@/i18n';
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
(ev: 'ok', cropped: misskey.entities.DriveFile): void;
|
(ev: 'ok', cropped: misskey.entities.DriveFile): void;
|
@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, h, PropType, TransitionGroup } from 'vue';
|
import { defineComponent, h, PropType, TransitionGroup } from 'vue';
|
||||||
import MkAd from '@/components/global/ad.vue';
|
import MkAd from '@/components/global/MkAd.vue';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
|
|
||||||
@ -13,22 +13,22 @@ export default defineComponent({
|
|||||||
direction: {
|
direction: {
|
||||||
type: String,
|
type: String,
|
||||||
required: false,
|
required: false,
|
||||||
default: 'down'
|
default: 'down',
|
||||||
},
|
},
|
||||||
reversed: {
|
reversed: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false,
|
||||||
},
|
},
|
||||||
noGap: {
|
noGap: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false,
|
||||||
},
|
},
|
||||||
ad: {
|
ad: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ export default defineComponent({
|
|||||||
const month = new Date(time).getMonth() + 1;
|
const month = new Date(time).getMonth() + 1;
|
||||||
return i18n.t('monthAndDay', {
|
return i18n.t('monthAndDay', {
|
||||||
month: month.toString(),
|
month: month.toString(),
|
||||||
day: date.toString()
|
day: date.toString(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ export default defineComponent({
|
|||||||
if (!slots || !slots.default) return;
|
if (!slots || !slots.default) return;
|
||||||
|
|
||||||
const el = slots.default({
|
const el = slots.default({
|
||||||
item: item
|
item: item,
|
||||||
})[0];
|
})[0];
|
||||||
if (el.key == null && item.id) el.key = item.id;
|
if (el.key == null && item.id) el.key = item.id;
|
||||||
|
|
||||||
@ -60,20 +60,20 @@ export default defineComponent({
|
|||||||
class: 'separator',
|
class: 'separator',
|
||||||
key: item.id + ':separator',
|
key: item.id + ':separator',
|
||||||
}, h('p', {
|
}, h('p', {
|
||||||
class: 'date'
|
class: 'date',
|
||||||
}, [
|
}, [
|
||||||
h('span', [
|
h('span', [
|
||||||
h('i', {
|
h('i', {
|
||||||
class: 'fas fa-angle-up icon',
|
class: 'fas fa-angle-up icon',
|
||||||
}),
|
}),
|
||||||
getDateText(item.createdAt)
|
getDateText(item.createdAt),
|
||||||
]),
|
]),
|
||||||
h('span', [
|
h('span', [
|
||||||
getDateText(props.items[i + 1].createdAt),
|
getDateText(props.items[i + 1].createdAt),
|
||||||
h('i', {
|
h('i', {
|
||||||
class: 'fas fa-angle-down icon',
|
class: 'fas fa-angle-down icon',
|
||||||
})
|
}),
|
||||||
])
|
]),
|
||||||
]));
|
]));
|
||||||
|
|
||||||
return [el, separator];
|
return [el, separator];
|
||||||
@ -93,16 +93,16 @@ export default defineComponent({
|
|||||||
return () => h(
|
return () => h(
|
||||||
defaultStore.state.animation ? TransitionGroup : 'div',
|
defaultStore.state.animation ? TransitionGroup : 'div',
|
||||||
defaultStore.state.animation ? {
|
defaultStore.state.animation ? {
|
||||||
class: 'sqadhkmv' + (props.noGap ? ' noGap' : ''),
|
class: 'sqadhkmv' + (props.noGap ? ' noGap' : ''),
|
||||||
name: 'list',
|
name: 'list',
|
||||||
tag: 'div',
|
tag: 'div',
|
||||||
'data-direction': props.direction,
|
'data-direction': props.direction,
|
||||||
'data-reversed': props.reversed ? 'true' : 'false',
|
'data-reversed': props.reversed ? 'true' : 'false',
|
||||||
} : {
|
} : {
|
||||||
class: 'sqadhkmv' + (props.noGap ? ' noGap' : ''),
|
class: 'sqadhkmv' + (props.noGap ? ' noGap' : ''),
|
||||||
},
|
},
|
||||||
{ default: renderChildren });
|
{ default: renderChildren });
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -40,8 +40,8 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onBeforeUnmount, onMounted, ref } from 'vue';
|
import { onBeforeUnmount, onMounted, ref } from 'vue';
|
||||||
import MkModal from '@/components/ui/modal.vue';
|
import MkModal from '@/components/MkModal.vue';
|
||||||
import MkButton from '@/components/ui/button.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
import MkInput from '@/components/form/input.vue';
|
import MkInput from '@/components/form/input.vue';
|
||||||
import MkSelect from '@/components/form/select.vue';
|
import MkSelect from '@/components/form/select.vue';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
77
packages/client/src/components/MkDigitalClock.vue
Normal file
77
packages/client/src/components/MkDigitalClock.vue
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<template>
|
||||||
|
<span class="zjobosdg">
|
||||||
|
<span v-text="hh"></span>
|
||||||
|
<span class="colon" :class="{ showColon }">:</span>
|
||||||
|
<span v-text="mm"></span>
|
||||||
|
<span v-if="showS" class="colon" :class="{ showColon }">:</span>
|
||||||
|
<span v-if="showS" v-text="ss"></span>
|
||||||
|
<span v-if="showMs" class="colon" :class="{ showColon }">:</span>
|
||||||
|
<span v-if="showMs" v-text="ms"></span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { onUnmounted, ref, watch } from 'vue';
|
||||||
|
|
||||||
|
const props = withDefaults(defineProps<{
|
||||||
|
showS?: boolean;
|
||||||
|
showMs?: boolean;
|
||||||
|
offset?: number;
|
||||||
|
}>(), {
|
||||||
|
showS: true,
|
||||||
|
showMs: false,
|
||||||
|
offset: 0 - new Date().getTimezoneOffset(),
|
||||||
|
});
|
||||||
|
|
||||||
|
let intervalId;
|
||||||
|
const hh = ref('');
|
||||||
|
const mm = ref('');
|
||||||
|
const ss = ref('');
|
||||||
|
const ms = ref('');
|
||||||
|
const showColon = ref(false);
|
||||||
|
let prevSec: number | null = null;
|
||||||
|
|
||||||
|
watch(showColon, (v) => {
|
||||||
|
if (v) {
|
||||||
|
window.setTimeout(() => {
|
||||||
|
showColon.value = false;
|
||||||
|
}, 30);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const tick = () => {
|
||||||
|
const now = new Date();
|
||||||
|
now.setMinutes(now.getMinutes() + (new Date().getTimezoneOffset() + props.offset));
|
||||||
|
hh.value = now.getHours().toString().padStart(2, '0');
|
||||||
|
mm.value = now.getMinutes().toString().padStart(2, '0');
|
||||||
|
ss.value = now.getSeconds().toString().padStart(2, '0');
|
||||||
|
ms.value = Math.floor(now.getMilliseconds() / 10).toString().padStart(2, '0');
|
||||||
|
if (now.getSeconds() !== prevSec) showColon.value = true;
|
||||||
|
prevSec = now.getSeconds();
|
||||||
|
};
|
||||||
|
|
||||||
|
tick();
|
||||||
|
|
||||||
|
watch(() => props.showMs, () => {
|
||||||
|
if (intervalId) window.clearInterval(intervalId);
|
||||||
|
intervalId = window.setInterval(tick, props.showMs ? 10 : 1000);
|
||||||
|
}, { immediate: true });
|
||||||
|
|
||||||
|
onUnmounted(() => {
|
||||||
|
window.clearInterval(intervalId);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.zjobosdg {
|
||||||
|
> .colon {
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 1s ease;
|
||||||
|
|
||||||
|
&.showColon {
|
||||||
|
opacity: 1;
|
||||||
|
transition: opacity 0s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="ncvczrfv"
|
<div
|
||||||
|
class="ncvczrfv"
|
||||||
:class="{ isSelected }"
|
:class="{ isSelected }"
|
||||||
draggable="true"
|
draggable="true"
|
||||||
:title="title"
|
:title="title"
|
||||||
@ -34,7 +35,7 @@
|
|||||||
import { computed, defineAsyncComponent, ref } from 'vue';
|
import { computed, defineAsyncComponent, ref } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
||||||
import MkDriveFileThumbnail from './drive-file-thumbnail.vue';
|
import MkDriveFileThumbnail from '@/components/MkDriveFileThumbnail.vue';
|
||||||
import bytes from '@/filters/bytes';
|
import bytes from '@/filters/bytes';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
@ -63,31 +64,31 @@ function getMenu() {
|
|||||||
return [{
|
return [{
|
||||||
text: i18n.ts.rename,
|
text: i18n.ts.rename,
|
||||||
icon: 'fas fa-i-cursor',
|
icon: 'fas fa-i-cursor',
|
||||||
action: rename
|
action: rename,
|
||||||
}, {
|
}, {
|
||||||
text: props.file.isSensitive ? i18n.ts.unmarkAsSensitive : i18n.ts.markAsSensitive,
|
text: props.file.isSensitive ? i18n.ts.unmarkAsSensitive : i18n.ts.markAsSensitive,
|
||||||
icon: props.file.isSensitive ? 'fas fa-eye' : 'fas fa-eye-slash',
|
icon: props.file.isSensitive ? 'fas fa-eye' : 'fas fa-eye-slash',
|
||||||
action: toggleSensitive
|
action: toggleSensitive,
|
||||||
}, {
|
}, {
|
||||||
text: i18n.ts.describeFile,
|
text: i18n.ts.describeFile,
|
||||||
icon: 'fas fa-i-cursor',
|
icon: 'fas fa-i-cursor',
|
||||||
action: describe
|
action: describe,
|
||||||
}, null, {
|
}, null, {
|
||||||
text: i18n.ts.copyUrl,
|
text: i18n.ts.copyUrl,
|
||||||
icon: 'fas fa-link',
|
icon: 'fas fa-link',
|
||||||
action: copyUrl
|
action: copyUrl,
|
||||||
}, {
|
}, {
|
||||||
type: 'a',
|
type: 'a',
|
||||||
href: props.file.url,
|
href: props.file.url,
|
||||||
target: '_blank',
|
target: '_blank',
|
||||||
text: i18n.ts.download,
|
text: i18n.ts.download,
|
||||||
icon: 'fas fa-download',
|
icon: 'fas fa-download',
|
||||||
download: props.file.name
|
download: props.file.name,
|
||||||
}, null, {
|
}, null, {
|
||||||
text: i18n.ts.delete,
|
text: i18n.ts.delete,
|
||||||
icon: 'fas fa-trash-alt',
|
icon: 'fas fa-trash-alt',
|
||||||
danger: true,
|
danger: true,
|
||||||
action: deleteFile
|
action: deleteFile,
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,35 +128,35 @@ function rename() {
|
|||||||
if (canceled) return;
|
if (canceled) return;
|
||||||
os.api('drive/files/update', {
|
os.api('drive/files/update', {
|
||||||
fileId: props.file.id,
|
fileId: props.file.id,
|
||||||
name: name
|
name: name,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function describe() {
|
function describe() {
|
||||||
os.popup(defineAsyncComponent(() => import('@/components/media-caption.vue')), {
|
os.popup(defineAsyncComponent(() => import('@/components/MkMediaCaption.vue')), {
|
||||||
title: i18n.ts.describeFile,
|
title: i18n.ts.describeFile,
|
||||||
input: {
|
input: {
|
||||||
placeholder: i18n.ts.inputNewDescription,
|
placeholder: i18n.ts.inputNewDescription,
|
||||||
default: props.file.comment != null ? props.file.comment : '',
|
default: props.file.comment != null ? props.file.comment : '',
|
||||||
},
|
},
|
||||||
image: props.file
|
image: props.file,
|
||||||
}, {
|
}, {
|
||||||
done: result => {
|
done: result => {
|
||||||
if (!result || result.canceled) return;
|
if (!result || result.canceled) return;
|
||||||
let comment = result.result;
|
let comment = result.result;
|
||||||
os.api('drive/files/update', {
|
os.api('drive/files/update', {
|
||||||
fileId: props.file.id,
|
fileId: props.file.id,
|
||||||
comment: comment.length === 0 ? null : comment
|
comment: comment.length === 0 ? null : comment,
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
}, 'closed');
|
}, 'closed');
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleSensitive() {
|
function toggleSensitive() {
|
||||||
os.api('drive/files/update', {
|
os.api('drive/files/update', {
|
||||||
fileId: props.file.id,
|
fileId: props.file.id,
|
||||||
isSensitive: !props.file.isSensitive
|
isSensitive: !props.file.isSensitive,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +177,7 @@ async function deleteFile() {
|
|||||||
|
|
||||||
if (canceled) return;
|
if (canceled) return;
|
||||||
os.api('drive/files/delete', {
|
os.api('drive/files/delete', {
|
||||||
fileId: props.file.id
|
fileId: props.file.id,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="rghtznwe"
|
<div
|
||||||
|
class="rghtznwe"
|
||||||
:class="{ draghover }"
|
:class="{ draghover }"
|
||||||
draggable="true"
|
draggable="true"
|
||||||
:title="title"
|
:title="title"
|
||||||
@ -123,7 +124,7 @@ function onDrop(ev: DragEvent) {
|
|||||||
emit('removeFile', file.id);
|
emit('removeFile', file.id);
|
||||||
os.api('drive/files/update', {
|
os.api('drive/files/update', {
|
||||||
fileId: file.id,
|
fileId: file.id,
|
||||||
folderId: props.folder.id
|
folderId: props.folder.id,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
@ -139,7 +140,7 @@ function onDrop(ev: DragEvent) {
|
|||||||
emit('removeFolder', folder.id);
|
emit('removeFolder', folder.id);
|
||||||
os.api('drive/folders/update', {
|
os.api('drive/folders/update', {
|
||||||
folderId: folder.id,
|
folderId: folder.id,
|
||||||
parentId: props.folder.id
|
parentId: props.folder.id,
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
// noop
|
// noop
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@ -147,13 +148,13 @@ function onDrop(ev: DragEvent) {
|
|||||||
case 'detected-circular-definition':
|
case 'detected-circular-definition':
|
||||||
os.alert({
|
os.alert({
|
||||||
title: i18n.ts.unableToProcess,
|
title: i18n.ts.unableToProcess,
|
||||||
text: i18n.ts.circularReferenceFolder
|
text: i18n.ts.circularReferenceFolder,
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
os.alert({
|
os.alert({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
text: i18n.ts.somethingHappened
|
text: i18n.ts.somethingHappened,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -186,19 +187,19 @@ function rename() {
|
|||||||
os.inputText({
|
os.inputText({
|
||||||
title: i18n.ts.renameFolder,
|
title: i18n.ts.renameFolder,
|
||||||
placeholder: i18n.ts.inputNewFolderName,
|
placeholder: i18n.ts.inputNewFolderName,
|
||||||
default: props.folder.name
|
default: props.folder.name,
|
||||||
}).then(({ canceled, result: name }) => {
|
}).then(({ canceled, result: name }) => {
|
||||||
if (canceled) return;
|
if (canceled) return;
|
||||||
os.api('drive/folders/update', {
|
os.api('drive/folders/update', {
|
||||||
folderId: props.folder.id,
|
folderId: props.folder.id,
|
||||||
name: name
|
name: name,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteFolder() {
|
function deleteFolder() {
|
||||||
os.api('drive/folders/delete', {
|
os.api('drive/folders/delete', {
|
||||||
folderId: props.folder.id
|
folderId: props.folder.id,
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
if (defaultStore.state.uploadFolder === props.folder.id) {
|
if (defaultStore.state.uploadFolder === props.folder.id) {
|
||||||
defaultStore.set('uploadFolder', null);
|
defaultStore.set('uploadFolder', null);
|
||||||
@ -209,13 +210,13 @@ function deleteFolder() {
|
|||||||
os.alert({
|
os.alert({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
title: i18n.ts.unableToDelete,
|
title: i18n.ts.unableToDelete,
|
||||||
text: i18n.ts.hasChildFilesOrFolders
|
text: i18n.ts.hasChildFilesOrFolders,
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
os.alert({
|
os.alert({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
text: i18n.ts.unableToDelete
|
text: i18n.ts.unableToDelete,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -230,11 +231,11 @@ function onContextmenu(ev: MouseEvent) {
|
|||||||
text: i18n.ts.openInWindow,
|
text: i18n.ts.openInWindow,
|
||||||
icon: 'fas fa-window-restore',
|
icon: 'fas fa-window-restore',
|
||||||
action: () => {
|
action: () => {
|
||||||
os.popup(defineAsyncComponent(() => import('./drive-window.vue')), {
|
os.popup(defineAsyncComponent(() => import('@/components/MkDriveWindow.vue')), {
|
||||||
initialFolder: props.folder
|
initialFolder: props.folder,
|
||||||
}, {
|
}, {
|
||||||
}, 'closed');
|
}, 'closed');
|
||||||
}
|
},
|
||||||
}, null, {
|
}, null, {
|
||||||
text: i18n.ts.rename,
|
text: i18n.ts.rename,
|
||||||
icon: 'fas fa-i-cursor',
|
icon: 'fas fa-i-cursor',
|
@ -90,10 +90,10 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { markRaw, nextTick, onActivated, onBeforeUnmount, onMounted, ref, watch } from 'vue';
|
import { markRaw, nextTick, onActivated, onBeforeUnmount, onMounted, ref, watch } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import XNavFolder from './drive.nav-folder.vue';
|
import MkButton from './MkButton.vue';
|
||||||
import XFolder from './drive.folder.vue';
|
import XNavFolder from '@/components/MkDrive.navFolder.vue';
|
||||||
import XFile from './drive.file.vue';
|
import XFolder from '@/components/MkDrive.folder.vue';
|
||||||
import MkButton from './ui/button.vue';
|
import XFile from '@/components/MkDrive.file.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { stream } from '@/stream';
|
import { stream } from '@/stream';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
@ -17,7 +17,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed } from 'vue';
|
import { computed } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import ImgWithBlurhash from '@/components/img-with-blurhash.vue';
|
import ImgWithBlurhash from '@/components/MkImgWithBlurhash.vue';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
file: Misskey.entities.DriveFile;
|
file: Misskey.entities.DriveFile;
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<XModalWindow ref="dialog"
|
<XModalWindow
|
||||||
|
ref="dialog"
|
||||||
:width="800"
|
:width="800"
|
||||||
:height="500"
|
:height="500"
|
||||||
:with-ok-button="true"
|
:with-ok-button="true"
|
||||||
@ -20,8 +21,8 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import XDrive from './drive.vue';
|
import XDrive from '@/components/MkDrive.vue';
|
||||||
import XModalWindow from '@/components/ui/modal-window.vue';
|
import XModalWindow from '@/components/MkModalWindow.vue';
|
||||||
import number from '@/filters/number';
|
import number from '@/filters/number';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
|
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<XWindow ref="window"
|
<XWindow
|
||||||
|
ref="window"
|
||||||
:initial-width="800"
|
:initial-width="800"
|
||||||
:initial-height="500"
|
:initial-height="500"
|
||||||
:can-resize="true"
|
:can-resize="true"
|
||||||
@ -15,8 +16,8 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { } from 'vue';
|
import { } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import XDrive from './drive.vue';
|
import XDrive from '@/components/MkDrive.vue';
|
||||||
import XWindow from '@/components/ui/window.vue';
|
import XWindow from '@/components/MkWindow.vue';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
|
|
||||||
defineProps<{
|
defineProps<{
|
@ -74,22 +74,24 @@
|
|||||||
<button class="_button tab" :class="{ active: tab === 'unicode' }" @click="tab = 'unicode'"><i class="fas fa-leaf fa-fw"></i></button>
|
<button class="_button tab" :class="{ active: tab === 'unicode' }" @click="tab = 'unicode'"><i class="fas fa-leaf fa-fw"></i></button>
|
||||||
<button class="_button tab" :class="{ active: tab === 'tags' }" @click="tab = 'tags'"><i class="fas fa-hashtag fa-fw"></i></button>
|
<button class="_button tab" :class="{ active: tab === 'tags' }" @click="tab = 'tags'"><i class="fas fa-hashtag fa-fw"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
<MkSwitch v-if="props.asReactionPicker" v-model="withRenote" class="withRenote">{{ i18n.ts.reactWithRenote }}</MkSwitch>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, computed, watch, onMounted } from 'vue';
|
import { ref, computed, watch, onMounted } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import XSection from './emoji-picker.section.vue';
|
import XSection from '@/components/MkEmojiPicker.section.vue';
|
||||||
import { emojilist, UnicodeEmojiDef, unicodeEmojiCategories as categories } from '@/scripts/emojilist';
|
import { emojilist, UnicodeEmojiDef, unicodeEmojiCategories as categories } from '@/scripts/emojilist';
|
||||||
import { getStaticImageUrl } from '@/scripts/get-static-image-url';
|
import { getStaticImageUrl } from '@/scripts/get-static-image-url';
|
||||||
import Ripple from '@/components/ripple.vue';
|
import Ripple from '@/components/MkRipple.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { isTouchUsing } from '@/scripts/touch';
|
import { isTouchUsing } from '@/scripts/touch';
|
||||||
import { deviceKind } from '@/scripts/device-kind';
|
import { deviceKind } from '@/scripts/device-kind';
|
||||||
import { emojiCategories, instance } from '@/instance';
|
import { emojiCategories, instance } from '@/instance';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
|
import MkSwitch from '@/components/form/switch.vue';
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
showPinned?: boolean;
|
showPinned?: boolean;
|
||||||
@ -101,10 +103,11 @@ const props = withDefaults(defineProps<{
|
|||||||
});
|
});
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
(ev: 'chosen', v: string): void;
|
(ev: 'chosen', v: { reaction: string, withRenote: boolean } | string): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const search = ref<HTMLInputElement>();
|
const search = ref<HTMLInputElement>();
|
||||||
|
const withRenote = ref<boolean>(true);
|
||||||
const emojis = ref<HTMLDivElement>();
|
const emojis = ref<HTMLDivElement>();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
@ -278,6 +281,7 @@ function focus() {
|
|||||||
function reset() {
|
function reset() {
|
||||||
if (emojis.value) emojis.value.scrollTop = 0;
|
if (emojis.value) emojis.value.scrollTop = 0;
|
||||||
q.value = '';
|
q.value = '';
|
||||||
|
withRenote.value = false; // 毎回Renoteをfalseに戻す
|
||||||
}
|
}
|
||||||
|
|
||||||
function getKey(emoji: string | Misskey.entities.CustomEmoji | UnicodeEmojiDef): string {
|
function getKey(emoji: string | Misskey.entities.CustomEmoji | UnicodeEmojiDef): string {
|
||||||
@ -294,7 +298,7 @@ function chosen(emoji: any, ev?: MouseEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const key = getKey(emoji);
|
const key = getKey(emoji);
|
||||||
emit('chosen', key);
|
emit('chosen', (props.asReactionPicker) ? { reaction: key, withRenote: withRenote.value } : key);
|
||||||
|
|
||||||
// 最近使った絵文字更新
|
// 最近使った絵文字更新
|
||||||
if (!pinned.value.includes(key)) {
|
if (!pinned.value.includes(key)) {
|
||||||
@ -452,6 +456,10 @@ defineExpose({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> .withRenote {
|
||||||
|
padding: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
> .tabs {
|
> .tabs {
|
||||||
display: flex;
|
display: flex;
|
||||||
display: none;
|
display: none;
|
@ -27,8 +27,8 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import MkModal from '@/components/ui/modal.vue';
|
import MkModal from '@/components/MkModal.vue';
|
||||||
import MkEmojiPicker from '@/components/emoji-picker.vue';
|
import MkEmojiPicker from '@/components/MkEmojiPicker.vue';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
|
|
||||||
withDefaults(defineProps<{
|
withDefaults(defineProps<{
|
||||||
@ -51,8 +51,8 @@ const emit = defineEmits<{
|
|||||||
const modal = ref<InstanceType<typeof MkModal>>();
|
const modal = ref<InstanceType<typeof MkModal>>();
|
||||||
const picker = ref<InstanceType<typeof MkEmojiPicker>>();
|
const picker = ref<InstanceType<typeof MkEmojiPicker>>();
|
||||||
|
|
||||||
function chosen(emoji: any) {
|
function chosen(results: { reaction: string, withRenote: boolean }) {
|
||||||
emit('done', emoji);
|
emit('done', results);
|
||||||
modal.value?.close();
|
modal.value?.close();
|
||||||
}
|
}
|
||||||
|
|
@ -13,8 +13,8 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { } from 'vue';
|
import { } from 'vue';
|
||||||
import MkWindow from '@/components/ui/window.vue';
|
import MkWindow from '@/components/MkWindow.vue';
|
||||||
import MkEmojiPicker from '@/components/emoji-picker.vue';
|
import MkEmojiPicker from '@/components/MkEmojiPicker.vue';
|
||||||
|
|
||||||
withDefaults(defineProps<{
|
withDefaults(defineProps<{
|
||||||
src?: HTMLElement;
|
src?: HTMLElement;
|
@ -35,8 +35,8 @@
|
|||||||
import { computed } from 'vue';
|
import { computed } from 'vue';
|
||||||
import * as Acct from 'misskey-js/built/acct';
|
import * as Acct from 'misskey-js/built/acct';
|
||||||
import MkSwitch from '@/components/ui/switch.vue';
|
import MkSwitch from '@/components/ui/switch.vue';
|
||||||
import MkPagination from '@/components/ui/pagination.vue';
|
import MkPagination from '@/components/MkPagination.vue';
|
||||||
import MkDriveFileThumbnail from '@/components/drive-file-thumbnail.vue';
|
import MkDriveFileThumbnail from '@/components/MkDriveFileThumbnail.vue';
|
||||||
import bytes from '@/filters/bytes';
|
import bytes from '@/filters/bytes';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
@ -33,8 +33,8 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { } from 'vue';
|
import { } from 'vue';
|
||||||
import XModalWindow from '@/components/ui/modal-window.vue';
|
import XModalWindow from '@/components/MkModalWindow.vue';
|
||||||
import MkButton from '@/components/ui/button.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
import MkInput from '@/components/form/input.vue';
|
import MkInput from '@/components/form/input.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { instance } from '@/instance';
|
import { instance } from '@/instance';
|
@ -61,9 +61,9 @@ import FormTextarea from './form/textarea.vue';
|
|||||||
import FormSwitch from './form/switch.vue';
|
import FormSwitch from './form/switch.vue';
|
||||||
import FormSelect from './form/select.vue';
|
import FormSelect from './form/select.vue';
|
||||||
import FormRange from './form/range.vue';
|
import FormRange from './form/range.vue';
|
||||||
import MkButton from './ui/button.vue';
|
import MkButton from './MkButton.vue';
|
||||||
import FormRadios from './form/radios.vue';
|
import FormRadios from './form/radios.vue';
|
||||||
import XModalWindow from '@/components/ui/modal-window.vue';
|
import XModalWindow from '@/components/MkModalWindow.vue';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: {
|
components: {
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<XFormula :formula="formula" :block="block" />
|
<XFormula :formula="formula" :block="block"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@ -8,17 +8,17 @@ import * as os from '@/os';
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: {
|
components: {
|
||||||
XFormula: defineAsyncComponent(() => import('./formula-core.vue'))
|
XFormula: defineAsyncComponent(() => import('@/components/MkFormulaCore.vue')),
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
formula: {
|
formula: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true,
|
||||||
},
|
},
|
||||||
block: {
|
block: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: true
|
required: true,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
@ -14,26 +14,15 @@
|
|||||||
</MkA>
|
</MkA>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts" setup>
|
||||||
import { defineComponent } from 'vue';
|
import { } from 'vue';
|
||||||
import { userName } from '@/filters/user';
|
import { userName } from '@/filters/user';
|
||||||
import ImgWithBlurhash from '@/components/img-with-blurhash.vue';
|
import ImgWithBlurhash from '@/components/MkImgWithBlurhash.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
|
||||||
export default defineComponent({
|
const props = defineProps<{
|
||||||
components: {
|
post: any;
|
||||||
ImgWithBlurhash
|
}>();
|
||||||
},
|
|
||||||
props: {
|
|
||||||
post: {
|
|
||||||
type: Object,
|
|
||||||
required: true
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
userName
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
@ -17,7 +17,7 @@ import { } from 'vue';
|
|||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import bytes from '@/filters/bytes';
|
import bytes from '@/filters/bytes';
|
||||||
import number from '@/filters/number';
|
import number from '@/filters/number';
|
||||||
import MkModal from '@/components/ui/modal.vue';
|
import MkModal from '@/components/MkModal.vue';
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
image: misskey.entities.DriveFile;
|
image: misskey.entities.DriveFile;
|
@ -6,23 +6,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts" setup>
|
||||||
import { defineComponent } from 'vue';
|
import { } from 'vue';
|
||||||
import * as os from '@/os';
|
|
||||||
|
|
||||||
export default defineComponent({
|
const props = defineProps<{
|
||||||
props: {
|
warn?: boolean;
|
||||||
warn: {
|
}>();
|
||||||
type: Boolean,
|
|
||||||
required: false,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import MkMiniChart from '@/components/mini-chart.vue';
|
import MkMiniChart from '@/components/MkMiniChart.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
@ -4,29 +4,29 @@
|
|||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="selects" style="display: flex;">
|
<div class="selects" style="display: flex;">
|
||||||
<MkSelect v-model="chartSrc" style="margin: 0; flex: 1;">
|
<MkSelect v-model="chartSrc" style="margin: 0; flex: 1;">
|
||||||
<optgroup :label="$ts.federation">
|
<optgroup :label="i18n.ts.federation">
|
||||||
<option value="federation">{{ $ts._charts.federation }}</option>
|
<option value="federation">{{ i18n.ts._charts.federation }}</option>
|
||||||
<option value="ap-request">{{ $ts._charts.apRequest }}</option>
|
<option value="ap-request">{{ i18n.ts._charts.apRequest }}</option>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
<optgroup :label="$ts.users">
|
<optgroup :label="i18n.ts.users">
|
||||||
<option value="users">{{ $ts._charts.usersIncDec }}</option>
|
<option value="users">{{ i18n.ts._charts.usersIncDec }}</option>
|
||||||
<option value="users-total">{{ $ts._charts.usersTotal }}</option>
|
<option value="users-total">{{ i18n.ts._charts.usersTotal }}</option>
|
||||||
<option value="active-users">{{ $ts._charts.activeUsers }}</option>
|
<option value="active-users">{{ i18n.ts._charts.activeUsers }}</option>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
<optgroup :label="$ts.notes">
|
<optgroup :label="i18n.ts.notes">
|
||||||
<option value="notes">{{ $ts._charts.notesIncDec }}</option>
|
<option value="notes">{{ i18n.ts._charts.notesIncDec }}</option>
|
||||||
<option value="local-notes">{{ $ts._charts.localNotesIncDec }}</option>
|
<option value="local-notes">{{ i18n.ts._charts.localNotesIncDec }}</option>
|
||||||
<option value="remote-notes">{{ $ts._charts.remoteNotesIncDec }}</option>
|
<option value="remote-notes">{{ i18n.ts._charts.remoteNotesIncDec }}</option>
|
||||||
<option value="notes-total">{{ $ts._charts.notesTotal }}</option>
|
<option value="notes-total">{{ i18n.ts._charts.notesTotal }}</option>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
<optgroup :label="$ts.drive">
|
<optgroup :label="i18n.ts.drive">
|
||||||
<option value="drive-files">{{ $ts._charts.filesIncDec }}</option>
|
<option value="drive-files">{{ i18n.ts._charts.filesIncDec }}</option>
|
||||||
<option value="drive">{{ $ts._charts.storageUsageIncDec }}</option>
|
<option value="drive">{{ i18n.ts._charts.storageUsageIncDec }}</option>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
</MkSelect>
|
</MkSelect>
|
||||||
<MkSelect v-model="chartSpan" style="margin: 0 0 0 10px;">
|
<MkSelect v-model="chartSpan" style="margin: 0 0 0 10px;">
|
||||||
<option value="hour">{{ $ts.perHour }}</option>
|
<option value="hour">{{ i18n.ts.perHour }}</option>
|
||||||
<option value="day">{{ $ts.perDay }}</option>
|
<option value="day">{{ i18n.ts.perDay }}</option>
|
||||||
</MkSelect>
|
</MkSelect>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart">
|
<div class="chart">
|
||||||
@ -68,9 +68,10 @@ import {
|
|||||||
DoughnutController,
|
DoughnutController,
|
||||||
} from 'chart.js';
|
} from 'chart.js';
|
||||||
import MkSelect from '@/components/form/select.vue';
|
import MkSelect from '@/components/form/select.vue';
|
||||||
import MkChart from '@/components/chart.vue';
|
import MkChart from '@/components/MkChart.vue';
|
||||||
import { useChartTooltip } from '@/scripts/use-chart-tooltip';
|
import { useChartTooltip } from '@/scripts/use-chart-tooltip';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
import { i18n } from '@/i18n';
|
||||||
|
|
||||||
Chart.register(
|
Chart.register(
|
||||||
ArcElement,
|
ArcElement,
|
@ -5,7 +5,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="value">
|
<div class="value">
|
||||||
<slot name="value"></slot>
|
<slot name="value"></slot>
|
||||||
<button v-if="copy" v-tooltip="$ts.copy" class="_textButton" style="margin-left: 0.5em;" @click="copy_"><i class="far fa-copy"></i></button>
|
<button v-if="copy" v-tooltip="i18n.ts.copy" class="_textButton" style="margin-left: 0.5em;" @click="copy_"><i class="far fa-copy"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -14,6 +14,7 @@
|
|||||||
import { } from 'vue';
|
import { } from 'vue';
|
||||||
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
import { i18n } from '@/i18n';
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
copy?: string | null;
|
copy?: string | null;
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { } from 'vue';
|
import { } from 'vue';
|
||||||
import MkModal from '@/components/ui/modal.vue';
|
import MkModal from '@/components/MkModal.vue';
|
||||||
import { navbarItemDef } from '@/navbar';
|
import { navbarItemDef } from '@/navbar';
|
||||||
import { instanceName } from '@/config';
|
import { instanceName } from '@/config';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
@ -26,7 +26,7 @@ const target = self ? null : '_blank';
|
|||||||
const el = $ref();
|
const el = $ref();
|
||||||
|
|
||||||
useTooltip($$(el), (showing) => {
|
useTooltip($$(el), (showing) => {
|
||||||
os.popup(defineAsyncComponent(() => import('@/components/url-preview-popup.vue')), {
|
os.popup(defineAsyncComponent(() => import('@/components/MkUrlPreviewPopup.vue')), {
|
||||||
showing,
|
showing,
|
||||||
url: props.url,
|
url: props.url,
|
||||||
source: el,
|
source: el,
|
@ -30,8 +30,8 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue';
|
import { defineComponent } from 'vue';
|
||||||
import { length } from 'stringz';
|
import { length } from 'stringz';
|
||||||
import MkModal from '@/components/ui/modal.vue';
|
import MkModal from '@/components/MkModal.vue';
|
||||||
import MkButton from '@/components/ui/button.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
import bytes from '@/filters/bytes';
|
import bytes from '@/filters/bytes';
|
||||||
import number from '@/filters/number';
|
import number from '@/filters/number';
|
||||||
|
|
@ -24,7 +24,7 @@
|
|||||||
import { watch } from 'vue';
|
import { watch } from 'vue';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import { getStaticImageUrl } from '@/scripts/get-static-image-url';
|
import { getStaticImageUrl } from '@/scripts/get-static-image-url';
|
||||||
import ImgWithBlurhash from '@/components/img-with-blurhash.vue';
|
import ImgWithBlurhash from '@/components/MkImgWithBlurhash.vue';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
@ -18,9 +18,9 @@ import * as misskey from 'misskey-js';
|
|||||||
import PhotoSwipeLightbox from 'photoswipe/lightbox';
|
import PhotoSwipeLightbox from 'photoswipe/lightbox';
|
||||||
import PhotoSwipe from 'photoswipe';
|
import PhotoSwipe from 'photoswipe';
|
||||||
import 'photoswipe/style.css';
|
import 'photoswipe/style.css';
|
||||||
import XBanner from './media-banner.vue';
|
import XBanner from '@/components/MkMediaBanner.vue';
|
||||||
import XImage from './media-image.vue';
|
import XImage from '@/components/MkMediaImage.vue';
|
||||||
import XVideo from './media-video.vue';
|
import XVideo from '@/components/MkMediaVideo.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { FILE_TYPE_BROWSERSAFE } from '@/const';
|
import { FILE_TYPE_BROWSERSAFE } from '@/const';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user