Compare commits

...

898 Commits

Author SHA1 Message Date
f968d05ea0 2.37.7 2018-06-12 09:10:52 +09:00
d6e5dc2167 Fix bugs 2018-06-12 09:10:34 +09:00
460147fea2 2.37.6 2018-06-12 08:59:36 +09:00
cea44834bb Improve usability 2018-06-12 08:58:50 +09:00
1af50fd7b8 冗長なハッシュタグの表示を無くした 2018-06-12 08:43:48 +09:00
b18013025f 🎨 2018-06-12 08:09:27 +09:00
399eb60809 2.37.5 2018-06-12 02:47:17 +09:00
ed67e3506b ✌️ 2018-06-12 02:46:54 +09:00
d8ff37fc45 ✌️ 2018-06-12 02:28:28 +09:00
2fcc3bb1ea 2.37.4 2018-06-12 02:19:00 +09:00
2e680c3d1e Fix bug 2018-06-12 02:18:29 +09:00
af0a0ef41b Merge branch 'master' of https://github.com/syuilo/misskey 2018-06-12 02:03:26 +09:00
bbfccb0bbf 🎨 2018-06-12 02:03:18 +09:00
c89eb5d69f Merge pull request #1705 from syuilo/l10n_master
New Crowdin translations
2018-06-12 02:03:06 +09:00
ebde84214e Improve hashtag trend detection 2018-06-12 02:00:05 +09:00
03fbae7b6d 変数調整 2018-06-12 01:51:51 +09:00
f90e9596d4 Fix bug 2018-06-12 01:48:29 +09:00
944f9524e2 Fix bug 2018-06-12 01:45:58 +09:00
c61050244e 変数調整 2018-06-12 01:43:56 +09:00
90337adbbc Improve hashtag trend detection 2018-06-12 01:41:17 +09:00
7b67e41c5b New translations ja.yml (Polish) 2018-06-11 19:22:16 +09:00
91db24fcfc 2.37.3 2018-06-11 14:16:46 +09:00
bb53db905f ✌️ 2018-06-11 14:16:21 +09:00
0e9a1efe46 Merge pull request #1704 from syuilo/l10n_master
New Crowdin translations
2018-06-11 14:11:33 +09:00
289cd3e200 New translations ja.yml (English) 2018-06-11 14:10:47 +09:00
e0f847e539 ✌️ 2018-06-11 14:06:23 +09:00
c2842b486e New translations ja.yml (Portuguese) 2018-06-11 13:51:15 +09:00
7235ade42f New translations ja.yml (Korean) 2018-06-11 13:51:13 +09:00
850be2df1d New translations ja.yml (Polish) 2018-06-11 13:51:11 +09:00
d504501440 New translations ja.yml (Chinese Simplified) 2018-06-11 13:51:09 +09:00
208392f12c New translations ja.yml (Italian) 2018-06-11 13:51:07 +09:00
0fe036c640 New translations ja.yml (Russian) 2018-06-11 13:51:05 +09:00
a40c41f0b0 New translations ja.yml (English) 2018-06-11 13:51:03 +09:00
4affa5b710 New translations ja.yml (Spanish) 2018-06-11 13:51:01 +09:00
4eb574d991 New translations ja.yml (German) 2018-06-11 13:50:59 +09:00
2c1577ea24 New translations ja.yml (French) 2018-06-11 13:50:56 +09:00
b87e7e50b6 Clean up 2018-06-11 13:49:53 +09:00
36215d50bd 2.37.2 2018-06-11 13:48:07 +09:00
5ff1245d0c Merge pull request #1703 from syuilo/l10n_master
New Crowdin translations
2018-06-11 13:47:42 +09:00
ebd189fb27 🍕 2018-06-11 13:46:23 +09:00
6f724827bd ✌️ 2018-06-11 13:45:32 +09:00
b6a0982012 New translations ja.yml (English) 2018-06-11 13:00:50 +09:00
c3e375e8a5 ✌️ 2018-06-11 12:52:47 +09:00
302409fd83 New translations ja.yml (Portuguese) 2018-06-11 11:51:04 +09:00
a2046461c1 New translations ja.yml (Korean) 2018-06-11 11:51:03 +09:00
6660c34120 New translations ja.yml (Polish) 2018-06-11 11:51:01 +09:00
b88ccf0ddd New translations ja.yml (Chinese Simplified) 2018-06-11 11:50:58 +09:00
b898bbf94c New translations ja.yml (Italian) 2018-06-11 11:50:57 +09:00
787e89eb95 New translations ja.yml (Russian) 2018-06-11 11:50:55 +09:00
1022c2c438 New translations ja.yml (English) 2018-06-11 11:50:53 +09:00
ba21c62ed4 New translations ja.yml (Spanish) 2018-06-11 11:50:51 +09:00
bfe66c919b New translations ja.yml (German) 2018-06-11 11:50:49 +09:00
3dacf7f661 New translations ja.yml (French) 2018-06-11 11:50:47 +09:00
c0a3ae2612 2.37.1 2018-06-11 11:45:27 +09:00
da612ef789 ✌️ 2018-06-11 11:45:10 +09:00
df9cb7cf6e 2.37.0 2018-06-11 11:44:26 +09:00
9c1a26110e Merge pull request #1697 from syuilo/l10n_master
New Crowdin translations
2018-06-11 11:43:58 +09:00
0883d18a6c New translations ja.yml (English) 2018-06-11 11:41:56 +09:00
c7246c61a5 New translations ja.yml (Portuguese) 2018-06-11 11:31:01 +09:00
c5a1431fc0 New translations ja.yml (Korean) 2018-06-11 11:30:59 +09:00
f0118a0dff New translations ja.yml (Polish) 2018-06-11 11:30:57 +09:00
cffe96e46f New translations ja.yml (Chinese Simplified) 2018-06-11 11:30:55 +09:00
a9256578f0 New translations ja.yml (Italian) 2018-06-11 11:30:53 +09:00
05ed202904 New translations ja.yml (Russian) 2018-06-11 11:30:51 +09:00
963b63389a New translations ja.yml (English) 2018-06-11 11:30:50 +09:00
e04706dc74 New translations ja.yml (Spanish) 2018-06-11 11:30:47 +09:00
04d4ce5ce1 New translations ja.yml (German) 2018-06-11 11:30:46 +09:00
24cf3730fa New translations ja.yml (French) 2018-06-11 11:30:44 +09:00
0700be86e2 Merge pull request #1702 from syuilo/hashtags-stats
Hashtags stats
2018-06-11 11:27:55 +09:00
7cca509eb3 ✌️ 2018-06-11 11:27:21 +09:00
7d7193cb63 ✌️ 2018-06-11 11:24:29 +09:00
1cf10d05ff Merge pull request #1698 from syuilo/cleanup-dependencies
🆙 move some packages to devDependencies that non required by server
2018-06-11 09:40:04 +09:00
2ec25a7729 wip 2018-06-11 09:11:32 +09:00
2a9065a61e New translations ja.yml (French) 2018-06-11 08:20:56 +09:00
7518e30dcf 🆙 move some packages to devDependencies that non required by server
presumed by:
- move-to-devdependencies.fish
```fish
set targets (ls src | grep -v client | xargs -I'%' echo "src/%")
alias from_import="git grep 'import ' $targets | grep -v 'from \'\.' | grep -v 'from \"\.' | cut -d: -f2 | cut -d\; -f1 | rev | cut -d' ' -f1 | rev | cut -d\' -f2 | sort | uniq | grep -v '^readline\$' | grep -v '^zlib\$' | grep -v '^os\$' | grep -v '^http\$' | grep -v '^fs\$' | grep -v '^events\$' | grep -v '^crypto\$' | grep -v '^child_process\$' | grep -v '^cluster\$'`"
alias from_require="git grep 'require(' $targets | grep -v '(\'\.' | cut -d= -f2 | grep -v '__dirname' | grep require | cut -d' ' -f2 | cut -d')' -f1 | cut -d'(' -f2 | cut -d'\'' -f2 | sort | uniq | grep -v '^readline\$' | grep -v '^zlib\$' | grep -v '^os\$' | grep -v '^http\$' | grep -v '^fs\$' | grep -v '^events\$' | grep -v '^crypto\$' | grep -v '^child_process\$' | grep -v '^cluster\$'"
from_import | xargs npm uninstall --save-dev
from_require | xargs npm uninstall --save-dev
from_import | xargs npm install --save
from_require | xargs npm install --save
git show HEAD:require | node revert-pinning-dependencies.js
```
- revert-pinning-dependencies.js
```js
const readFromStdin = () => new Promise((resolve, reject) => {
  const chunks = []

  process.stdin.setEncoding('utf8')

  process.stdin.on('readable', () => {
    const chunk = process.stdin.read()
    if (chunk == null) return
    chunks.push(chunk)
  })

  process.stdin.on('end', () => {
    return resolve(chunks.join('\n'))
  })
})

async function main () {
  const fs = require('fs')

  const raw = await readFromStdin()
  const head = JSON.parse(raw)
  const now = JSON.parse(fs.readFileSync('package.json'))

  Object.keys(now.dependencies).forEach(key => {
    now.dependencies[key] = head.dependencies[key]
  })

  fs.writeFileSync('package.json', JSON.stringify(now,null,'\t'))
}

main().catch(console.error)
```
2018-06-11 08:08:52 +09:00
dc3c80e3ce wip 2018-06-11 06:48:25 +09:00
a25f61f6be New translations ja.yml (Polish) 2018-06-11 05:41:06 +09:00
e70fb71a04 Update example.yml 2018-06-11 02:18:00 +09:00
f499630c2b 2.36.1 2018-06-11 01:28:45 +09:00
43319a8588 Merge pull request #1694 from syuilo/l10n_master
New Crowdin translations
2018-06-11 01:21:52 +09:00
d62b943c5d New translations ja.yml (English) 2018-06-11 01:21:03 +09:00
8baddf2ea3 Fix #1695 2018-06-11 01:14:29 +09:00
600482660b タグは最大100文字までにした 2018-06-11 01:12:37 +09:00
72ab5c143e Revert "✌️"
This reverts commit 96ab0e7b4c.
2018-06-11 01:07:34 +09:00
96ab0e7b4c ✌️ 2018-06-11 00:27:16 +09:00
b60903e2b4 🍕 2018-06-11 00:24:03 +09:00
b4f4d3f267 New translations ja.yml (Portuguese) 2018-06-10 12:51:00 +09:00
6e017c86e8 New translations ja.yml (Korean) 2018-06-10 12:50:58 +09:00
afcfc2dca5 New translations ja.yml (Polish) 2018-06-10 12:50:57 +09:00
59e22a12a9 New translations ja.yml (Chinese Simplified) 2018-06-10 12:50:55 +09:00
b740ac3e01 New translations ja.yml (Italian) 2018-06-10 12:50:53 +09:00
9719f0df03 New translations ja.yml (Russian) 2018-06-10 12:50:51 +09:00
d4be599538 New translations ja.yml (English) 2018-06-10 12:50:49 +09:00
f88195c90a New translations ja.yml (Spanish) 2018-06-10 12:50:47 +09:00
3b33f7e752 New translations ja.yml (German) 2018-06-10 12:50:46 +09:00
67a37294f7 New translations ja.yml (French) 2018-06-10 12:50:43 +09:00
fd88955696 ✌️ 2018-06-10 12:36:48 +09:00
9d248dbb5a 🎨 2018-06-10 12:29:19 +09:00
20ec4104c6 2.36.0 2018-06-10 12:22:48 +09:00
6c232d116d Merge pull request #1692 from syuilo/l10n_master
New Crowdin translations
2018-06-10 12:22:28 +09:00
2ef78bcd40 🍕 2018-06-10 12:21:44 +09:00
94ce658ab9 ハッシュタグ検索を実装 2018-06-10 12:19:19 +09:00
d8cf4cd341 New translations ja.yml (Polish) 2018-06-10 10:30:48 +09:00
0360337df9 2.35.3 2018-06-10 08:42:29 +09:00
119d38ea08 Fix bug 2018-06-10 08:41:57 +09:00
bee77afb7f Fix bug 2018-06-10 08:34:46 +09:00
16d4b16872 Revert "✌️"
This reverts commit 951b2346ab.
2018-06-10 08:21:48 +09:00
951b2346ab ✌️ 2018-06-10 08:15:05 +09:00
b29ff0e94b ✌️ 2018-06-10 08:03:02 +09:00
c8dd8341ca 2.35.2 2018-06-10 03:58:12 +09:00
8bcf44bc16 ✌️ 2018-06-10 03:55:51 +09:00
50b37a8420 oops 2018-06-10 03:48:38 +09:00
22df795733 Fix bug 2018-06-10 03:47:09 +09:00
7e3bf06db1 2.35.1 2018-06-10 03:31:42 +09:00
6630ca595c 🎨 2018-06-10 03:31:13 +09:00
5d01e19ce7 Fix bug 2018-06-10 03:27:10 +09:00
56df89f8dd 2.35.0 2018-06-10 01:22:44 +09:00
13de984ce3 Merge pull request #1688 from syuilo/l10n_master
New Crowdin translations
2018-06-10 01:21:55 +09:00
15fc0e30d7 New translations ja.yml (English) 2018-06-10 01:21:19 +09:00
4289c11185 New translations ja.yml (German) 2018-06-10 01:21:17 +09:00
a3f564e702 New translations ja.yml (Portuguese) 2018-06-10 01:11:33 +09:00
f6734a0c98 New translations ja.yml (Korean) 2018-06-10 01:11:32 +09:00
72fb416239 New translations ja.yml (Polish) 2018-06-10 01:11:30 +09:00
833f5b09d2 New translations ja.yml (Chinese Simplified) 2018-06-10 01:11:28 +09:00
b21b21f30a New translations ja.yml (Italian) 2018-06-10 01:11:26 +09:00
2f77a3f6d2 New translations ja.yml (Russian) 2018-06-10 01:11:25 +09:00
0bda655452 New translations ja.yml (English) 2018-06-10 01:11:23 +09:00
4f80bb7031 New translations ja.yml (Spanish) 2018-06-10 01:11:21 +09:00
fbe7b3cc9b New translations ja.yml (German) 2018-06-10 01:11:18 +09:00
8402f0abd7 New translations ja.yml (French) 2018-06-10 01:11:16 +09:00
149b2ee5a7 Update sentences 2018-06-10 01:04:31 +09:00
f9d5af0600 MissketDeck: Implement media view tl 2018-06-10 01:01:28 +09:00
72c4ccaee8 Clean up dependencies 2018-06-10 00:41:57 +09:00
92999dcaf2 Update gitignore 2018-06-10 00:39:30 +09:00
5bbd318518 Update message 2018-06-09 23:52:11 +09:00
8807894890 Fix bug 2018-06-09 22:25:15 +09:00
63b7820717 New translations ja.yml (German) 2018-06-09 20:41:00 +09:00
9e7e2d6977 New translations ja.yml (German) 2018-06-09 20:31:00 +09:00
89e4c280ae New translations ja.yml (German) 2018-06-09 20:20:56 +09:00
b6c9f29be4 New translations ja.yml (German) 2018-06-09 20:11:27 +09:00
74cbbc84ed New translations ja.yml (English) 2018-06-09 20:00:53 +09:00
ead4197670 New translations ja.yml (German) 2018-06-09 20:00:51 +09:00
4fc69ccdc8 New translations ja.yml (German) 2018-06-09 19:51:04 +09:00
f556cb44b9 New translations ja.yml (German) 2018-06-09 19:40:57 +09:00
45b540d375 New translations ja.yml (Polish) 2018-06-09 12:00:47 +09:00
af2d36a3c9 2.34.3 2018-06-09 11:41:22 +09:00
42a4f92cfa Fix #1125 2018-06-09 11:40:42 +09:00
ccb9ed3489 🎨 2018-06-09 11:29:50 +09:00
773b2aa3d1 2.34.2 2018-06-09 10:16:29 +09:00
30d5b8d65b 🎨 2018-06-09 10:15:45 +09:00
763676a18c ✌️ 2018-06-09 10:12:03 +09:00
e166ad6780 Better init screen 2018-06-09 10:06:27 +09:00
034c96d070 Merge branch 'master' of https://github.com/syuilo/misskey 2018-06-09 08:38:33 +09:00
f34f8d304c Improve performance 2018-06-09 08:38:30 +09:00
944000c05c Update README.md 2018-06-09 06:52:33 +09:00
e2503cdb47 New translations ja.yml (English) 2018-06-09 06:31:45 +09:00
52db63bca2 2.34.1 2018-06-09 06:28:22 +09:00
55dfd9e2a1 Merge pull request #1687 from syuilo/l10n_master
New Crowdin translations
2018-06-09 06:27:57 +09:00
d193cbf2b7 ✌️ 2018-06-09 06:27:12 +09:00
bdec56a543 ✌️ 2018-06-09 06:25:41 +09:00
e0a6d9740c ✌️ 2018-06-09 06:21:13 +09:00
0ce9c057e1 Fix chart rendering 2018-06-09 06:04:41 +09:00
12a2fdbc20 New translations ja.yml (Portuguese) 2018-06-09 04:21:28 +09:00
57c294bc89 New translations ja.yml (Korean) 2018-06-09 04:21:26 +09:00
9758757805 New translations ja.yml (Polish) 2018-06-09 04:21:25 +09:00
f9350fa35f New translations ja.yml (Chinese Simplified) 2018-06-09 04:21:22 +09:00
e120da4ecd New translations ja.yml (Italian) 2018-06-09 04:21:20 +09:00
328a10b70c New translations ja.yml (Russian) 2018-06-09 04:21:18 +09:00
1ed97c8deb New translations ja.yml (English) 2018-06-09 04:21:17 +09:00
91b970e2aa New translations ja.yml (Spanish) 2018-06-09 04:21:15 +09:00
99af1bb479 New translations ja.yml (German) 2018-06-09 04:21:13 +09:00
11ddcbdee3 New translations ja.yml (French) 2018-06-09 04:21:11 +09:00
6e8a1086d8 2.34.0 2018-06-09 04:15:18 +09:00
c78945436e #1686 2018-06-09 04:14:26 +09:00
6eff8fde74 サーバーの統計情報をメモリに記憶するようにするなど 2018-06-09 01:45:25 +09:00
726d5a177e Merge pull request #1685 from 2vg/patch-1
fix: when text is null, bug can pass validation.
2018-06-08 22:04:22 +09:00
33495b5cb3 fix: "or" operator. 2018-06-08 22:04:07 +09:00
fe159a13a9 2.33.2 2018-06-08 22:03:24 +09:00
22a1dc0566 Better log 2018-06-08 22:03:14 +09:00
02e6b732e9 fix: when text is null, bug can pass validation.
fixed. (maybe?)
2018-06-08 22:00:18 +09:00
cc6fa135ac 2.33.1 2018-06-08 21:50:41 +09:00
5747732156 Fix 2018-06-08 21:50:31 +09:00
581d1617d8 2.33.0 2018-06-08 21:39:24 +09:00
6152fd20bf Improve deck 2018-06-08 21:37:20 +09:00
19300ca65c Add new cli tool 2018-06-08 21:22:13 +09:00
2f3d744e19 🎨 2018-06-08 21:17:48 +09:00
724e812972 Refactor 2018-06-08 20:57:02 +09:00
9a6246fd4e New: Zen mode 2018-06-08 20:34:44 +09:00
34f44de59c Update README.md 2018-06-08 13:14:30 +09:00
16e446c121 2.32.0 2018-06-08 11:47:33 +09:00
8f232a9da9 Merge branch 'master' of https://github.com/syuilo/misskey 2018-06-08 11:46:48 +09:00
ebeb7f8578 ✌️ 2018-06-08 11:46:45 +09:00
f790673068 Merge pull request #1684 from syuilo/l10n_master
New Crowdin translations
2018-06-08 11:17:44 +09:00
335ab5ab54 Merge branch 'master' of https://github.com/syuilo/misskey 2018-06-08 11:17:30 +09:00
00e0d6ce2c Improve usability 2018-06-08 11:17:22 +09:00
414fb6d303 New translations ja.yml (French) 2018-06-08 10:41:25 +09:00
9c35a12211 New translations ja.yml (French) 2018-06-08 10:12:39 +09:00
bb4fe5174f Update README.md 2018-06-08 09:08:09 +09:00
3ffd6ff5a2 2.31.0 2018-06-08 08:39:04 +09:00
b05feb5bf7 MisskeyDeck: ドラッグでカラムを入れ替えられるように 2018-06-08 08:38:32 +09:00
fa171f237d 2.30.2 2018-06-08 08:06:19 +09:00
f2ccb684eb 🎨 2018-06-08 08:05:25 +09:00
ffea6522ac Merge pull request #1683 from syuilo/l10n_master
New Crowdin translations
2018-06-08 07:44:17 +09:00
3d40a7df00 ✌️ 2018-06-08 07:43:12 +09:00
638c41476b New translations ja.yml (German) 2018-06-08 07:40:48 +09:00
c6d3088374 Merge pull request #1682 from syuilo/l10n_master
New Crowdin translations
2018-06-08 07:26:58 +09:00
0f93be9dd4 New translations ja.yml (German) 2018-06-08 07:01:06 +09:00
f59982c9c5 New translations ja.yml (German) 2018-06-08 06:51:25 +09:00
dff67a5e54 New translations ja.yml (German) 2018-06-08 06:41:05 +09:00
6adcc3b2ed New translations ja.yml (German) 2018-06-08 06:31:09 +09:00
877ed3663c New translations ja.yml (German) 2018-06-08 06:21:24 +09:00
6000a82917 New translations ja.yml (German) 2018-06-08 06:11:02 +09:00
6805f9b3e0 New translations ja.yml (German) 2018-06-08 06:01:10 +09:00
1366c785f9 Update README.md 2018-06-08 05:54:42 +09:00
70540b4500 New translations ja.yml (German) 2018-06-08 05:51:01 +09:00
0967f23b6e 2.30.1 2018-06-08 05:49:19 +09:00
1f7d66169c Merge pull request #1681 from syuilo/l10n_master
New Crowdin translations
2018-06-08 05:48:51 +09:00
af501f5eeb Fix bug 2018-06-08 05:48:27 +09:00
60be60c923 New translations ja.yml (German) 2018-06-08 05:41:56 +09:00
48746101e0 New translations ja.yml (Polish) 2018-06-08 05:20:55 +09:00
af9c5c6ab7 typo 2018-06-08 05:07:19 +09:00
602284d38c 2.30.0 2018-06-08 05:04:56 +09:00
26898142c2 Merge pull request #1680 from syuilo/l10n_master
New Crowdin translations
2018-06-08 05:04:32 +09:00
b0a8d7abe9 ✌️ 2018-06-08 05:04:21 +09:00
dc2b266b75 New translations ja.yml (English) 2018-06-08 04:52:14 +09:00
07bbd9506a 🎨 2018-06-08 04:46:31 +09:00
14bb218287 New translations ja.yml (English) 2018-06-08 04:41:42 +09:00
29f238c929 New translations ja.yml (Portuguese) 2018-06-08 04:39:44 +09:00
a39a1d4fa5 New translations ja.yml (Korean) 2018-06-08 04:39:41 +09:00
15117c63f5 New translations ja.yml (Polish) 2018-06-08 04:39:39 +09:00
507ffb6fc6 New translations ja.yml (Chinese Simplified) 2018-06-08 04:39:38 +09:00
6b2e0164cf New translations ja.yml (Italian) 2018-06-08 04:39:36 +09:00
02e06eb1de New translations ja.yml (Russian) 2018-06-08 04:39:33 +09:00
1b50f78733 New translations ja.yml (English) 2018-06-08 04:39:31 +09:00
ead629407c New translations ja.yml (Spanish) 2018-06-08 04:39:29 +09:00
0abbc9e7dd New translations ja.yml (German) 2018-06-08 04:39:26 +09:00
37681e859e New translations ja.yml (French) 2018-06-08 04:39:24 +09:00
caabdc68f3 MisskeyDeck: スタックしたカラムを上下移動できるように 2018-06-08 04:34:15 +09:00
9e97eaf24d New translations ja.yml (English) 2018-06-08 04:31:03 +09:00
4cd06a789b New translations ja.yml (Portuguese) 2018-06-08 04:22:10 +09:00
a3ffd968de New translations ja.yml (Korean) 2018-06-08 04:22:08 +09:00
0cf40563aa New translations ja.yml (Polish) 2018-06-08 04:22:06 +09:00
3e7e7f864b New translations ja.yml (Chinese Simplified) 2018-06-08 04:22:03 +09:00
6ae415e36a New translations ja.yml (Italian) 2018-06-08 04:22:01 +09:00
6cefa3ae26 New translations ja.yml (Russian) 2018-06-08 04:21:59 +09:00
70de3af3ea New translations ja.yml (English) 2018-06-08 04:21:57 +09:00
66ed814527 New translations ja.yml (Spanish) 2018-06-08 04:21:55 +09:00
e12cc3b7a8 New translations ja.yml (German) 2018-06-08 04:21:53 +09:00
93ea19d7ad New translations ja.yml (French) 2018-06-08 04:21:51 +09:00
79d592b431 MisskeyDeck: カラムをスタックできるように 2018-06-08 04:21:06 +09:00
c9c3a0be82 New translations ja.yml (Polish) 2018-06-08 03:55:30 +09:00
f04be199dd New translations ja.yml (French) 2018-06-07 22:21:47 +09:00
f36cb1cc66 New translations ja.yml (French) 2018-06-07 22:12:09 +09:00
a5597e3df9 New translations ja.yml (French) 2018-06-07 21:26:16 +09:00
7f4c28053e New translations ja.yml (French) 2018-06-07 21:12:53 +09:00
ea24043b22 New translations ja.yml (English) 2018-06-07 08:50:51 +09:00
44ef60c8a2 2.29.1 2018-06-07 08:48:22 +09:00
bd68ff2cf3 Merge pull request #1679 from syuilo/l10n_master
New Crowdin translations
2018-06-07 08:47:37 +09:00
0e8a592b26 ✌️ 2018-06-07 08:41:58 +09:00
d3b51bf94a ✌️ 2018-06-07 08:29:46 +09:00
cc137ee1cc New translations ja.yml (Portuguese) 2018-06-07 06:21:37 +09:00
c088482cef New translations ja.yml (Korean) 2018-06-07 06:21:35 +09:00
70e3febe0a New translations ja.yml (Polish) 2018-06-07 06:21:33 +09:00
f500cce293 New translations ja.yml (Chinese Simplified) 2018-06-07 06:21:31 +09:00
c6b836b7be New translations ja.yml (Italian) 2018-06-07 06:21:29 +09:00
15485da1bb New translations ja.yml (Russian) 2018-06-07 06:21:27 +09:00
7195f55a44 New translations ja.yml (English) 2018-06-07 06:21:25 +09:00
176f8803eb New translations ja.yml (Spanish) 2018-06-07 06:21:24 +09:00
5a3a925a3c New translations ja.yml (German) 2018-06-07 06:21:21 +09:00
29bfb9d19b New translations ja.yml (French) 2018-06-07 06:21:19 +09:00
86b0dfdd33 2.29.0 2018-06-07 06:16:11 +09:00
ab04f2fce0 ✌️ 2018-06-07 06:15:57 +09:00
be9f836b21 やった 2018-06-07 06:13:57 +09:00
818bc96aab 2.28.0 2018-06-07 05:15:05 +09:00
14d12c21f2 nanka iroiro 2018-06-07 05:14:37 +09:00
aa5250a37c New translations ja.yml (Polish) 2018-06-07 04:51:24 +09:00
2053a041e5 Fix 2018-06-07 04:33:39 +09:00
0534a0a41e ✌️ 2018-06-07 04:31:49 +09:00
d2f9a99beb New translations ja.yml (French) 2018-06-07 04:01:46 +09:00
9625047dc3 New translations ja.yml (French) 2018-06-07 03:51:34 +09:00
d6b18ce536 New translations ja.yml (French) 2018-06-07 03:41:20 +09:00
df00af1dfa New translations ja.yml (French) 2018-06-07 03:14:30 +09:00
3570ec0430 New translations ja.yml (French) 2018-06-07 03:06:29 +09:00
a111b014f8 New translations ja.yml (French) 2018-06-07 02:53:46 +09:00
50eebe834a New translations ja.yml (French) 2018-06-07 02:41:46 +09:00
f965e9f218 New translations ja.yml (French) 2018-06-07 02:34:06 +09:00
0ac5fdab49 2.27.3 2018-06-07 02:07:00 +09:00
39099909bf Fix firefox 2018-06-07 02:06:32 +09:00
999ce8e366 Improve scroll performance 2018-06-07 01:52:03 +09:00
8678e30cc8 2.27.2 2018-06-07 01:45:04 +09:00
8a59e9d9c8 Merge pull request #1677 from syuilo/l10n_master
New Crowdin translations
2018-06-07 01:44:26 +09:00
dddace9d6a New translations ja.yml (English) 2018-06-07 01:42:12 +09:00
388cb7db3a ✌️ 2018-06-07 01:41:05 +09:00
46b74b3e1c New translations ja.yml (Portuguese) 2018-06-07 01:22:17 +09:00
d53e80c88a New translations ja.yml (Korean) 2018-06-07 01:22:14 +09:00
d8a8f36676 New translations ja.yml (Polish) 2018-06-07 01:22:12 +09:00
dafdbbf552 New translations ja.yml (Chinese Simplified) 2018-06-07 01:22:10 +09:00
52bc52293b New translations ja.yml (Italian) 2018-06-07 01:22:08 +09:00
0733aefb64 New translations ja.yml (Russian) 2018-06-07 01:22:06 +09:00
aac6dec5da New translations ja.yml (English) 2018-06-07 01:22:03 +09:00
d44c59ea3e New translations ja.yml (Spanish) 2018-06-07 01:22:01 +09:00
9b3c3881c4 New translations ja.yml (German) 2018-06-07 01:21:59 +09:00
cdd722dca0 New translations ja.yml (French) 2018-06-07 01:21:57 +09:00
9ad7a80496 i18n 2018-06-07 01:17:29 +09:00
b85597b15d Fix glitch 2018-06-07 01:00:38 +09:00
ebb98d975b ✌️ 2018-06-07 00:53:31 +09:00
c1b320710b 2.27.1 2018-06-06 19:37:15 +09:00
1201794bef Revert "fix: validate post's text with Ctrl+Enter on PC."
This reverts commit fac6868305.
2018-06-06 19:34:25 +09:00
dc58c9bd2f 2.27.0 2018-06-06 19:24:34 +09:00
9787da7240 Merge branch 'master' of https://github.com/syuilo/misskey 2018-06-06 19:22:48 +09:00
b0f989dbac Deckにウィジェットを置けるように 2018-06-06 19:22:45 +09:00
a0ec6b8ea7 Merge pull request #1678 from 2vg/patch-2
fix: validate post's text with Ctrl+Enter on PC.
2018-06-06 09:50:17 +09:00
fac6868305 fix: validate post's text with Ctrl+Enter on PC. 2018-06-06 09:46:33 +09:00
ed8fa59639 Update README.md 2018-06-06 05:39:05 +09:00
e8edda01a9 2.26.2 2018-06-06 05:29:45 +09:00
380a369eca oops 2018-06-06 05:29:31 +09:00
781fffee42 2.26.1 2018-06-06 05:18:46 +09:00
69b5de3346 wip 2018-06-06 05:18:08 +09:00
0d8c83f27c wip 2018-06-06 04:00:48 +09:00
8ca58de2ba wip 2018-06-06 03:12:06 +09:00
d8cd24fab0 wip 2018-06-06 03:03:56 +09:00
f918081168 wip 2018-06-06 02:48:26 +09:00
f88fb9bc1d wip 2018-06-06 01:54:36 +09:00
062fbd7d27 wip 2018-06-06 01:54:24 +09:00
6b6af008d0 New translations ja.yml (Portuguese) 2018-06-05 23:23:22 +09:00
4d35def548 New translations ja.yml (Korean) 2018-06-05 23:23:20 +09:00
b369d6bd5c New translations ja.yml (Polish) 2018-06-05 23:23:17 +09:00
63dfe2726c New translations ja.yml (Chinese Simplified) 2018-06-05 23:23:15 +09:00
1002d29cc2 New translations ja.yml (Italian) 2018-06-05 23:23:13 +09:00
868240666a New translations ja.yml (Russian) 2018-06-05 23:23:11 +09:00
02a88fdc9c New translations ja.yml (English) 2018-06-05 23:23:08 +09:00
bc4adf7107 New translations ja.yml (Spanish) 2018-06-05 23:23:06 +09:00
bd67785802 New translations ja.yml (German) 2018-06-05 23:23:03 +09:00
68c90e8ebe New translations ja.yml (French) 2018-06-05 23:23:01 +09:00
64519a9fd4 2.26.0 2018-06-05 23:22:37 +09:00
d21da0211c Merge pull request #1676 from syuilo/deck
Deck (wip)
2018-06-05 23:21:53 +09:00
2e919b788f wip 2018-06-05 23:19:04 +09:00
2d2056f2bd Merge pull request #1675 from 2vg/patch-1
fix: validate post's text on mobile client.
2018-06-05 23:03:26 +09:00
334dabc1de fix: validate post's text on mobile client. 2018-06-05 23:00:03 +09:00
dfa2c951d6 wip 2018-06-05 22:54:03 +09:00
e28d1c7569 wip 2018-06-05 21:44:02 +09:00
9ce0f96de3 wip 2018-06-05 21:36:21 +09:00
a408b19bbe Update README.md 2018-06-05 15:09:21 +09:00
f9a17b8021 Merge pull request #1674 from syuilo/l10n_master
New Crowdin translations
2018-06-04 23:22:34 +09:00
5eeb200913 New translations ja.yml (English) 2018-06-04 20:07:56 +09:00
f87981eeee 2.25.2 2018-06-04 19:59:07 +09:00
761ae807db Fix bug 2018-06-03 19:53:57 +09:00
643a0e6b13 New translations ja.yml (Portuguese) 2018-06-03 19:41:36 +09:00
e7e5f76e9e New translations ja.yml (Korean) 2018-06-03 19:41:34 +09:00
247acd81a9 New translations ja.yml (Polish) 2018-06-03 19:41:32 +09:00
a2457a6ac4 New translations ja.yml (Chinese Simplified) 2018-06-03 19:41:30 +09:00
af7a320493 New translations ja.yml (Italian) 2018-06-03 19:41:28 +09:00
4dd8b7e85d New translations ja.yml (Russian) 2018-06-03 19:41:26 +09:00
3a4392af40 New translations ja.yml (English) 2018-06-03 19:41:23 +09:00
44f70f0009 New translations ja.yml (Spanish) 2018-06-03 19:41:20 +09:00
238c4cf181 New translations ja.yml (German) 2018-06-03 19:41:18 +09:00
9171c49d85 New translations ja.yml (French) 2018-06-03 19:41:16 +09:00
5e967e24ff ✌️ 2018-06-03 19:39:02 +09:00
70ac07d60e 🎨 2018-06-03 07:34:34 +09:00
81ee670dc2 New translations ja.yml (Polish) 2018-06-03 05:32:01 +09:00
faf215685b New translations ja.yml (Polish) 2018-06-03 05:21:18 +09:00
255c07d1ab 2.25.1 2018-06-03 04:51:58 +09:00
83e9711274 New translations ja.yml (English) 2018-06-02 23:02:02 +09:00
0aa9201770 2.25.0 2018-06-02 19:23:17 +09:00
534e43f72d Fix bug 2018-06-02 19:19:58 +09:00
8f50080647 Merge pull request #1673 from syuilo/l10n_master
New Crowdin translations
2018-06-02 17:05:18 +09:00
cdc70875e5 New translations ja.yml (English) 2018-06-02 16:51:10 +09:00
e6962d6fab New translations ja.yml (English) 2018-06-02 16:41:22 +09:00
3703563939 New translations ja.yml (Portuguese) 2018-06-02 16:31:39 +09:00
e81b145735 New translations ja.yml (Korean) 2018-06-02 16:31:37 +09:00
7f4145ee56 New translations ja.yml (Polish) 2018-06-02 16:31:35 +09:00
3967cf40b3 New translations ja.yml (Chinese Simplified) 2018-06-02 16:31:33 +09:00
84b0d56c4c New translations ja.yml (Italian) 2018-06-02 16:31:32 +09:00
e081d8d4ca New translations ja.yml (Russian) 2018-06-02 16:31:30 +09:00
b6ad7149d8 New translations ja.yml (English) 2018-06-02 16:31:28 +09:00
0f36f60cb4 New translations ja.yml (Spanish) 2018-06-02 16:31:26 +09:00
1284eef9e2 New translations ja.yml (German) 2018-06-02 16:31:24 +09:00
dec264ee6a New translations ja.yml (French) 2018-06-02 16:31:22 +09:00
e25e1d88d6 Merge pull request #1671 from syuilo/locked-account
Locked account
2018-06-02 16:28:08 +09:00
60a7f7f146 wip 2018-06-02 16:27:24 +09:00
897f7a031d wip 2018-06-02 16:13:32 +09:00
4feff8835c wip 2018-06-02 16:01:32 +09:00
8dfd892b71 wip 2018-06-02 15:51:43 +09:00
9e8cfd76c8 wip 2018-06-02 13:40:28 +09:00
a6a4bb6599 wip 2018-06-02 13:36:29 +09:00
5ca8a0d886 wip 2018-06-02 13:34:53 +09:00
6840496791 wip 2018-06-02 13:14:54 +09:00
0128831649 wip 2018-06-02 13:11:28 +09:00
56fa24e401 wip 2018-06-02 12:58:56 +09:00
e011870a60 Merge pull request #1672 from Angristan/patch-1
Update build docs
2018-06-02 03:54:10 +09:00
8d78ee08c1 Cover multiple cases 2018-06-01 20:52:47 +02:00
2752319e50 Update build docs
Fix #1474
2018-06-01 20:24:30 +02:00
a26c19cbd2 wip 2018-06-02 00:51:20 +09:00
f14571dc42 wip 2018-06-02 00:38:31 +09:00
484d17f53f wip 2018-06-02 00:15:17 +09:00
924119651a Merge branch 'master' into locked-account 2018-06-01 23:37:19 +09:00
c6d49dacbc Merge pull request #1670 from syuilo/l10n_master
New Crowdin translations
2018-06-01 23:36:22 +09:00
0be790fa31 wip 2018-06-01 21:55:27 +09:00
b7f6eb8290 New translations ja.yml (English) 2018-06-01 16:29:25 +09:00
f1bda0b2e1 New translations ja.yml (English) 2018-06-01 16:12:22 +09:00
bae44b4708 wip 2018-06-01 01:12:02 +09:00
35115607bc wip 2018-06-01 00:42:37 +09:00
51255bb446 wip 2018-05-31 22:56:02 +09:00
bd758a156e wip 2018-05-31 18:34:15 +09:00
51929fb607 typo 2018-05-31 18:11:28 +09:00
9599a31239 wip 2018-05-31 18:08:47 +09:00
9fdb125960 Merge pull request #1668 from syuilo/l10n_master
New Crowdin translations
2018-05-31 17:38:49 +09:00
534c0a6001 New translations ja.yml (English) 2018-05-31 17:31:23 +09:00
58bfcfda91 New translations ja.yml (English) 2018-05-31 17:21:36 +09:00
8d0802f05d New translations ja.yml (English) 2018-05-31 17:12:41 +09:00
5cd8c5d229 New translations ja.yml (English) 2018-05-31 17:02:48 +09:00
fa3c4436d9 New translations ja.yml (English) 2018-05-31 16:52:27 +09:00
d32d95918c 🎨 2018-05-31 16:44:11 +09:00
34899757d5 New translations ja.yml (English) 2018-05-31 16:41:32 +09:00
111dbdcd7f Fix 2018-05-31 16:38:05 +09:00
0c38509f1c New translations ja.yml (Polish) 2018-05-31 04:21:47 +09:00
652aa1f69b New translations ja.yml (German) 2018-05-31 00:33:22 +09:00
dc380c38da New translations ja.yml (German) 2018-05-31 00:23:33 +09:00
8555e04f50 New translations ja.yml (German) 2018-05-31 00:13:36 +09:00
c23bbf81f1 2.24.3 2018-05-30 23:08:26 +09:00
7dd7de8ff6 Update endpoints.ts 2018-05-30 23:05:24 +09:00
2ca8bafde3 Merge pull request #1664 from syuilo/l10n_master
New Crowdin translations
2018-05-30 22:08:38 +09:00
79f6c3f1ca New translations ja.yml (Portuguese) 2018-05-30 21:23:17 +09:00
fce0b315cf New translations ja.yml (Korean) 2018-05-30 21:23:14 +09:00
56c7a8f2e4 New translations ja.yml (Polish) 2018-05-30 21:23:10 +09:00
5ef2f157f2 New translations ja.yml (Chinese Simplified) 2018-05-30 21:23:08 +09:00
738afbe475 New translations ja.yml (Italian) 2018-05-30 21:23:06 +09:00
791a81a4c7 New translations ja.yml (Russian) 2018-05-30 21:23:03 +09:00
aa82d7a2c9 New translations ja.yml (English) 2018-05-30 21:23:01 +09:00
f57d2e54d2 New translations ja.yml (Spanish) 2018-05-30 21:22:58 +09:00
fea1a2e51b New translations ja.yml (German) 2018-05-30 21:22:55 +09:00
bda5347f1e New translations ja.yml (French) 2018-05-30 21:22:53 +09:00
98d9c37922 Merge pull request #1665 from m4sk1n/patch-1
fix typo
2018-05-30 21:21:59 +09:00
e3bde41a25 New translations ja.yml (Polish) 2018-05-30 21:14:46 +09:00
5fb2f7749d fix typo 2018-05-30 12:13:51 +00:00
a56bdf2372 New translations ja.yml (Polish) 2018-05-30 21:05:48 +09:00
9d991df32f New translations ja.yml (English) 2018-05-30 21:05:45 +09:00
c4a3f89d1c New translations ja.yml (English) 2018-05-30 20:51:48 +09:00
ea223bab51 Fix bug 2018-05-30 18:13:20 +09:00
dd94392317 2.24.2 2018-05-30 05:02:56 +09:00
baa2845916 Merge pull request #1663 from syuilo/l10n_master
New Crowdin translations
2018-05-30 05:02:17 +09:00
97ae4ea13e New translations ja.yml (English) 2018-05-30 05:00:58 +09:00
d1c5f0c70f New translations ja.yml (Portuguese) 2018-05-30 04:51:38 +09:00
95bff3005f New translations ja.yml (Korean) 2018-05-30 04:51:36 +09:00
c0b06496b1 New translations ja.yml (Polish) 2018-05-30 04:51:34 +09:00
2105e1f259 New translations ja.yml (Chinese Simplified) 2018-05-30 04:51:32 +09:00
e546414c2f New translations ja.yml (Italian) 2018-05-30 04:51:30 +09:00
1f4660a930 New translations ja.yml (Russian) 2018-05-30 04:51:28 +09:00
a2165c2e01 New translations ja.yml (English) 2018-05-30 04:51:26 +09:00
1af920739f New translations ja.yml (Spanish) 2018-05-30 04:51:24 +09:00
868e8228f0 New translations ja.yml (German) 2018-05-30 04:51:22 +09:00
2bbc74560d New translations ja.yml (French) 2018-05-30 04:51:20 +09:00
5d2caa456d 🎨 2018-05-30 04:46:50 +09:00
9069a99a15 wip 2018-05-30 04:45:27 +09:00
fa56a44d85 🎨 2018-05-30 04:07:23 +09:00
248acaee75 2.24.1 2018-05-30 00:16:03 +09:00
ef75f12abe Fix bug 2018-05-30 00:15:32 +09:00
854814c226 2.24.0 2018-05-29 23:57:25 +09:00
b6a322f447 Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-29 23:56:52 +09:00
161b9602f4 Fix bug 2018-05-29 23:56:44 +09:00
62669bff07 Merge pull request #1662 from syuilo/l10n_master
New Crowdin translations
2018-05-29 23:55:19 +09:00
02bd299714 New translations ja.yml (English) 2018-05-29 23:52:22 +09:00
f71dabfbfa New translations ja.yml (Portuguese) 2018-05-29 23:45:17 +09:00
8d31cedafc New translations ja.yml (Korean) 2018-05-29 23:45:11 +09:00
a88d6c1c47 New translations ja.yml (Polish) 2018-05-29 23:45:09 +09:00
d35a13fc0b New translations ja.yml (Chinese Simplified) 2018-05-29 23:45:05 +09:00
8e4029c1cd New translations ja.yml (Italian) 2018-05-29 23:44:59 +09:00
9a9f852540 New translations ja.yml (Russian) 2018-05-29 23:44:57 +09:00
c66497a4de New translations ja.yml (English) 2018-05-29 23:44:55 +09:00
1f9ecbf0be New translations ja.yml (Spanish) 2018-05-29 23:44:53 +09:00
423a6f7013 New translations ja.yml (German) 2018-05-29 23:44:51 +09:00
ef0ca38362 New translations ja.yml (French) 2018-05-29 23:44:48 +09:00
ae9bfd69b0 Add analog clock widget 2018-05-29 23:13:39 +09:00
3d231c3456 Fix 2018-05-29 22:56:05 +09:00
95d0d0047a 時計をSVG化 2018-05-29 22:43:03 +09:00
d05aee19f2 2.23.2 2018-05-29 21:46:30 +09:00
125765faa6 Fix bug 2018-05-29 21:46:02 +09:00
70c0b1d8c0 🎨 2018-05-29 19:13:49 +09:00
72e8660ae3 🎨 2018-05-29 19:03:03 +09:00
2127bf32c2 2.23.1 2018-05-29 17:11:48 +09:00
2b9acc239e Fix bug 2018-05-29 17:10:59 +09:00
47a6188097 2.23.0 2018-05-29 15:43:24 +09:00
8abce1469a Merge pull request #1661 from syuilo/l10n_master
New Crowdin translations
2018-05-29 15:43:01 +09:00
8a2bee2136 New translations ja.yml (Portuguese) 2018-05-29 15:42:20 +09:00
e7a532f0cc New translations ja.yml (Korean) 2018-05-29 15:42:17 +09:00
2cb1678577 New translations ja.yml (Polish) 2018-05-29 15:42:15 +09:00
d249bc6575 New translations ja.yml (Chinese Simplified) 2018-05-29 15:42:13 +09:00
e409b45873 New translations ja.yml (Italian) 2018-05-29 15:42:10 +09:00
f2d26c1909 New translations ja.yml (Russian) 2018-05-29 15:42:08 +09:00
898e3d7138 New translations ja.yml (English) 2018-05-29 15:42:06 +09:00
78cc0f7b6f New translations ja.yml (Spanish) 2018-05-29 15:42:04 +09:00
b14ca6a464 New translations ja.yml (German) 2018-05-29 15:42:02 +09:00
4691c1259a New translations ja.yml (French) 2018-05-29 15:42:00 +09:00
69f07cb015 Fix bug 2018-05-29 15:41:49 +09:00
a426f4c7bd nanka iroiro 2018-05-29 15:38:48 +09:00
3430a2d093 New translations ja.yml (English) 2018-05-29 15:31:19 +09:00
4ecc8c799d 🎨 2018-05-29 15:21:03 +09:00
fa02a58fc4 New translations ja.yml (Portuguese) 2018-05-29 14:51:25 +09:00
2905d172b8 New translations ja.yml (Korean) 2018-05-29 14:51:23 +09:00
5f6e5e4c8b New translations ja.yml (Polish) 2018-05-29 14:51:21 +09:00
d68c2a0170 New translations ja.yml (Chinese Simplified) 2018-05-29 14:51:19 +09:00
76c7ad5e24 New translations ja.yml (Italian) 2018-05-29 14:51:17 +09:00
1cf65a0145 New translations ja.yml (Russian) 2018-05-29 14:51:16 +09:00
0c8602f1d5 New translations ja.yml (English) 2018-05-29 14:51:14 +09:00
2dc4990804 New translations ja.yml (Spanish) 2018-05-29 14:51:12 +09:00
47ecd2e900 New translations ja.yml (German) 2018-05-29 14:51:10 +09:00
01d8e9cf4e New translations ja.yml (French) 2018-05-29 14:51:08 +09:00
da52f980c4 ✌️ 2018-05-29 14:42:29 +09:00
366b7ef946 🎨 2018-05-29 14:22:15 +09:00
0e7c0fd528 2.22.3 2018-05-29 13:22:29 +09:00
fb28b238cf Add workaround for Safari bug 2018-05-29 13:21:38 +09:00
b375bbc75c 2.22.2 2018-05-29 11:53:59 +09:00
74ebd6e4a0 Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-29 11:53:35 +09:00
72f2b92d4f ✌️ 2018-05-29 11:53:28 +09:00
178eeec041 Merge pull request #1660 from syuilo/l10n_master
New Crowdin translations
2018-05-29 11:53:03 +09:00
7ff950b5e3 New translations ja.yml (English) 2018-05-29 11:50:50 +09:00
11409b723e 🎨 2018-05-29 11:45:01 +09:00
a59c8b4f57 New translations ja.yml (Portuguese) 2018-05-29 11:41:13 +09:00
690e273257 New translations ja.yml (Korean) 2018-05-29 11:41:11 +09:00
0133a1ba97 New translations ja.yml (Polish) 2018-05-29 11:41:09 +09:00
809b0e67a6 New translations ja.yml (Chinese Simplified) 2018-05-29 11:41:08 +09:00
a702271efd New translations ja.yml (Italian) 2018-05-29 11:41:06 +09:00
ec4f8ddd3e New translations ja.yml (Russian) 2018-05-29 11:41:04 +09:00
839f66c82f New translations ja.yml (English) 2018-05-29 11:41:02 +09:00
9ae2775452 New translations ja.yml (Spanish) 2018-05-29 11:41:00 +09:00
c9818358ee New translations ja.yml (German) 2018-05-29 11:40:58 +09:00
6e3a88ffcb New translations ja.yml (French) 2018-05-29 11:40:56 +09:00
4c54d68fad Darken 2018-05-29 11:38:24 +09:00
c351ba7820 Fix 2018-05-29 11:36:45 +09:00
3c2d72f611 Fix bug 2018-05-29 11:32:55 +09:00
f557407589 Fix bug 2018-05-29 11:29:02 +09:00
a0a4ce4dd9 Fix bug 2018-05-29 11:25:28 +09:00
281971f4a4 2.22.1 2018-05-29 02:37:31 +09:00
12b13e974c 🎨 2018-05-29 02:36:57 +09:00
9d27fa7eaa Fix bug 2018-05-29 02:31:32 +09:00
9f1385b03a 2.22.0 2018-05-29 02:26:13 +09:00
8c019a6d0b Merge pull request #1659 from syuilo/l10n_master
New Crowdin translations
2018-05-29 02:24:14 +09:00
87faf5942c New translations ja.yml (English) 2018-05-29 02:22:44 +09:00
8c9977c136 🎨 2018-05-29 02:20:40 +09:00
1ffa66af4f New translations ja.yml (English) 2018-05-29 02:13:39 +09:00
3d5d2de80b New translations ja.yml (Portuguese) 2018-05-29 02:03:19 +09:00
12c313235e New translations ja.yml (Korean) 2018-05-29 02:03:16 +09:00
c63acba0a5 New translations ja.yml (Polish) 2018-05-29 02:03:14 +09:00
5aaf8e6308 New translations ja.yml (Chinese Simplified) 2018-05-29 02:03:12 +09:00
f7d6d41a90 New translations ja.yml (Italian) 2018-05-29 02:03:10 +09:00
0d79a41527 New translations ja.yml (Russian) 2018-05-29 02:03:08 +09:00
fef8c14586 New translations ja.yml (English) 2018-05-29 02:03:06 +09:00
1bfd4cfc34 New translations ja.yml (Spanish) 2018-05-29 02:03:04 +09:00
a8e48e06a1 New translations ja.yml (German) 2018-05-29 02:03:02 +09:00
d59dd7e44a New translations ja.yml (French) 2018-05-29 02:03:00 +09:00
e5431648fd ✌️ 2018-05-29 02:00:45 +09:00
2ddbca4641 Fix bug 2018-05-29 01:55:32 +09:00
d944827f3d New translations ja.yml (Portuguese) 2018-05-29 01:52:43 +09:00
bd01d81d1d New translations ja.yml (Korean) 2018-05-29 01:52:41 +09:00
9d52bd9ae8 New translations ja.yml (Polish) 2018-05-29 01:52:39 +09:00
4f782ac219 New translations ja.yml (Chinese Simplified) 2018-05-29 01:52:37 +09:00
77377ba63f New translations ja.yml (Italian) 2018-05-29 01:52:35 +09:00
6afb985121 New translations ja.yml (Russian) 2018-05-29 01:52:33 +09:00
47fb538311 New translations ja.yml (English) 2018-05-29 01:52:31 +09:00
5644a2ff0b New translations ja.yml (Spanish) 2018-05-29 01:52:29 +09:00
c87aeb6cc4 New translations ja.yml (German) 2018-05-29 01:52:27 +09:00
37ce882337 New translations ja.yml (French) 2018-05-29 01:52:24 +09:00
afc2efee1b ✌️ 2018-05-29 01:50:01 +09:00
8f79f862b9 🍕 2018-05-29 01:44:15 +09:00
016386b350 ✌️ 2018-05-29 01:25:54 +09:00
ab16fb3a3f #1634 2018-05-29 01:22:39 +09:00
973b1e42ef typo 2018-05-29 00:38:07 +09:00
bd1f3a2f01 #1579 2018-05-29 00:36:52 +09:00
5d82443389 2.21.1 2018-05-28 22:00:29 +09:00
43eb8bd99b notes/local-timeline と notes/global-timeline のサインインを不要に 2018-05-28 21:59:57 +09:00
06e77a4f16 Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-28 21:45:23 +09:00
0ca2c313ec 2.21.0 2018-05-28 21:45:14 +09:00
c0b70e87bc Merge pull request #1658 from syuilo/l10n_master
New Crowdin translations
2018-05-28 21:44:45 +09:00
5a76716b5a home 2018-05-28 21:43:33 +09:00
3f9e5fffbe Fix bug 2018-05-28 21:43:21 +09:00
90346a6b5f New translations ja.yml (English) 2018-05-28 21:42:52 +09:00
57fda16c9c New translations ja.yml (Portuguese) 2018-05-28 21:37:45 +09:00
ae409bdaea New translations ja.yml (Korean) 2018-05-28 21:37:43 +09:00
a560427b95 New translations ja.yml (Polish) 2018-05-28 21:37:39 +09:00
cd57d7035a New translations ja.yml (Chinese Simplified) 2018-05-28 21:37:37 +09:00
7753e8f169 New translations ja.yml (Italian) 2018-05-28 21:37:35 +09:00
e352832096 New translations ja.yml (Russian) 2018-05-28 21:37:32 +09:00
63cc7b5a75 New translations ja.yml (English) 2018-05-28 21:37:30 +09:00
753176588f New translations ja.yml (Spanish) 2018-05-28 21:37:28 +09:00
10c1296a7c New translations ja.yml (German) 2018-05-28 21:37:26 +09:00
76b5c32e31 New translations ja.yml (French) 2018-05-28 21:37:23 +09:00
abe14c1665 🎨 2018-05-28 21:33:36 +09:00
ba1b1a73b6 ✌️ 2018-05-28 21:31:20 +09:00
f0b86edb53 New translations ja.yml (Polish) 2018-05-28 19:32:32 +09:00
ce0f405d1e New translations ja.yml (Polish) 2018-05-28 18:11:37 +09:00
f1af362117 New translations ja.yml (Polish) 2018-05-28 16:52:07 +09:00
d2b1b30ef5 New translations ja.yml (Polish) 2018-05-28 16:51:02 +09:00
aa9b8a7ca5 New translations ja.yml (English) 2018-05-28 15:41:31 +09:00
e3bd8b1c21 New translations ja.yml (Portuguese) 2018-05-28 15:31:21 +09:00
3b67350e8c New translations ja.yml (Korean) 2018-05-28 15:31:19 +09:00
4db098d01d New translations ja.yml (Polish) 2018-05-28 15:31:17 +09:00
1133b340e9 New translations ja.yml (Chinese Simplified) 2018-05-28 15:31:15 +09:00
4bf5a28804 New translations ja.yml (Italian) 2018-05-28 15:31:13 +09:00
1872fd4547 New translations ja.yml (Russian) 2018-05-28 15:31:11 +09:00
dc6c5104d4 New translations ja.yml (English) 2018-05-28 15:31:08 +09:00
3a3f3f7663 New translations ja.yml (Spanish) 2018-05-28 15:31:06 +09:00
e8b14d5570 New translations ja.yml (German) 2018-05-28 15:31:04 +09:00
9aed2632f7 New translations ja.yml (French) 2018-05-28 15:31:02 +09:00
d1dd2d3c18 2.20.1 2018-05-28 15:30:47 +09:00
48a17629bb Fix 2018-05-28 15:30:26 +09:00
cc4a7c1a16 Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-28 15:14:53 +09:00
b57dd8de40 2.20.0 2018-05-28 15:14:45 +09:00
ce0c27b687 Merge pull request #1657 from syuilo/l10n_master
New Crowdin translations
2018-05-28 15:14:20 +09:00
39d05b75db Fix bug 2018-05-28 15:10:57 +09:00
83bbd6b64f 🎨 2018-05-28 15:09:06 +09:00
95e5800b36 Improve RSS widget 2018-05-28 15:06:32 +09:00
f0c031ecdb Fix bug 2018-05-28 15:04:47 +09:00
858efafe77 🎨 2018-05-28 14:59:55 +09:00
0a7c0f30fd 🎨 2018-05-28 14:54:16 +09:00
1a4b92a8a4 New translations ja.yml (English) 2018-05-28 14:50:48 +09:00
b9837ae7f3 New translations ja.yml (Portuguese) 2018-05-28 14:40:55 +09:00
0a05413e22 New translations ja.yml (Korean) 2018-05-28 14:40:53 +09:00
c264ec49e9 New translations ja.yml (Polish) 2018-05-28 14:40:51 +09:00
918cf2df28 New translations ja.yml (Chinese Simplified) 2018-05-28 14:40:49 +09:00
28d46d0097 New translations ja.yml (Italian) 2018-05-28 14:40:47 +09:00
b54340c3dc New translations ja.yml (Russian) 2018-05-28 14:40:45 +09:00
c875401cd6 New translations ja.yml (English) 2018-05-28 14:40:43 +09:00
d02dfefd30 New translations ja.yml (Spanish) 2018-05-28 14:40:41 +09:00
5ff8a9ab44 New translations ja.yml (German) 2018-05-28 14:40:39 +09:00
d6c3c0fa4f New translations ja.yml (French) 2018-05-28 14:40:37 +09:00
ceda2ca896 Implement delete note 2018-05-28 14:39:46 +09:00
85114ebd74 🎨 2018-05-28 13:58:57 +09:00
fe30e4e3a5 Fix bug 2018-05-28 13:55:21 +09:00
623eb37b64 Merge pull request #1656 from l2dy/fix/test
Fix
2018-05-28 01:20:26 +09:00
1a91b6d03e Fix 2018-05-27 16:09:59 +00:00
a92221e6f3 Merge pull request #1655 from syuilo/l10n_master
New Crowdin translations
2018-05-28 00:32:31 +09:00
8004d6c46a New translations ja.yml (Polish) 2018-05-28 00:31:45 +09:00
b1731f9ab6 Merge pull request #1654 from syuilo/l10n_master
New Crowdin translations
2018-05-28 00:21:42 +09:00
a8d280cfba New translations ja.yml (Polish) 2018-05-28 00:21:09 +09:00
ed86218817 2.19.0 2018-05-27 23:20:45 +09:00
ee09143676 Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-27 23:19:59 +09:00
79821f00fb Fix bug 2018-05-27 23:19:57 +09:00
e30e2fdf3e Merge pull request #1651 from syuilo/l10n_master
New Crowdin translations
2018-05-27 23:12:05 +09:00
1c77fd93c0 New translations ja.yml (Polish) 2018-05-27 23:11:19 +09:00
725ba338a7 New translations ja.yml (English) 2018-05-27 23:11:16 +09:00
62c8435437 New translations ja.yml (Portuguese) 2018-05-27 23:01:35 +09:00
f2649e25b7 New translations ja.yml (Korean) 2018-05-27 23:01:33 +09:00
c5e1233d11 New translations ja.yml (Polish) 2018-05-27 23:01:31 +09:00
8bc276489d New translations ja.yml (Chinese Simplified) 2018-05-27 23:01:29 +09:00
c2620629ba New translations ja.yml (Italian) 2018-05-27 23:01:27 +09:00
564cf5a413 New translations ja.yml (Russian) 2018-05-27 23:01:25 +09:00
5c4219fbd0 New translations ja.yml (English) 2018-05-27 23:01:22 +09:00
6d77178d61 New translations ja.yml (Spanish) 2018-05-27 23:01:20 +09:00
45a44c137e New translations ja.yml (German) 2018-05-27 23:01:18 +09:00
269bb041bc New translations ja.yml (French) 2018-05-27 23:01:15 +09:00
c5ef18bc7a Fix 2018-05-27 22:52:14 +09:00
089fff7d0f New translations ja.yml (English) 2018-05-27 22:51:09 +09:00
7b92bfcdda New translations ja.yml (Portuguese) 2018-05-27 22:41:42 +09:00
34a18fe104 New translations ja.yml (Korean) 2018-05-27 22:41:40 +09:00
bfb312de44 New translations ja.yml (Polish) 2018-05-27 22:41:39 +09:00
41672a72c6 New translations ja.yml (Chinese Simplified) 2018-05-27 22:41:37 +09:00
49d11a6986 New translations ja.yml (Italian) 2018-05-27 22:41:35 +09:00
59f3d775ce New translations ja.yml (Russian) 2018-05-27 22:41:33 +09:00
1dd58d9887 New translations ja.yml (English) 2018-05-27 22:41:31 +09:00
1193f1dba3 New translations ja.yml (Spanish) 2018-05-27 22:41:29 +09:00
43c3bb61a3 New translations ja.yml (German) 2018-05-27 22:41:27 +09:00
22db8b7ae0 New translations ja.yml (French) 2018-05-27 22:41:25 +09:00
4ff95be53b Fix 2018-05-27 22:41:05 +09:00
0d6ccd489d ✌️ 2018-05-27 22:39:20 +09:00
746b9478b4 New translations ja.yml (Russian) 2018-05-27 22:11:20 +09:00
14dfd8fb04 New translations ja.yml (Portuguese) 2018-05-27 22:01:37 +09:00
4e49160f09 New translations ja.yml (Korean) 2018-05-27 22:01:33 +09:00
03ef7826c1 New translations ja.yml (Polish) 2018-05-27 22:01:31 +09:00
a1eca0ff65 New translations ja.yml (Chinese Simplified) 2018-05-27 22:01:29 +09:00
7f190469fa New translations ja.yml (Italian) 2018-05-27 22:01:27 +09:00
d3d79b56b3 New translations ja.yml (Russian) 2018-05-27 22:01:25 +09:00
e2d297ebc0 New translations ja.yml (English) 2018-05-27 22:01:23 +09:00
33aad0f436 New translations ja.yml (Spanish) 2018-05-27 22:01:20 +09:00
b5c93d87bc New translations ja.yml (German) 2018-05-27 22:01:19 +09:00
8989986ee7 New translations ja.yml (French) 2018-05-27 22:01:16 +09:00
beb8da9283 Merge pull request #1653 from m4sk1n/master
some moar i18n
2018-05-27 21:57:16 +09:00
fd1eea21d2 some moar i18n
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2018-05-27 14:51:57 +02:00
46a953a9d8 2.18.2 2018-05-27 18:18:51 +09:00
46ef86e478 🎨 2018-05-27 18:18:18 +09:00
fa1a85f682 Fix bug 2018-05-27 18:12:39 +09:00
e477de6dd0 2.18.1 2018-05-27 13:58:35 +09:00
d5f92eed8c Refactor 2018-05-27 13:49:09 +09:00
7cdb790f4e Update favicon 2018-05-27 04:34:32 +09:00
43f1a15970 New translations ja.yml (Polish) 2018-05-27 03:11:04 +09:00
c67c076ab3 New translations ja.yml (German) 2018-05-27 03:11:01 +09:00
3297639d09 New translations ja.yml (French) 2018-05-27 03:10:58 +09:00
20bb851c4e Fix bug 2018-05-27 03:01:08 +09:00
728dd446b3 Refactor 2018-05-27 02:56:54 +09:00
f8abc8193b 2.18.0 2018-05-27 00:29:31 +09:00
e7d1b6ec00 Fix bug 2018-05-27 00:27:46 +09:00
83c819a130 #1539 2018-05-27 00:18:44 +09:00
d29459fa37 Fix bug 2018-05-26 23:53:22 +09:00
100557e975 Fix bug 2018-05-26 23:37:40 +09:00
102aaeb390 Darken 2018-05-26 23:34:20 +09:00
67b3461c24 Better mention handling 2018-05-26 23:20:52 +09:00
5e4a0fd4ec Merge pull request #1652 from l2dy/readme
Update README.md
2018-05-26 22:40:27 +09:00
f840d491e5 Update README.md 2018-05-26 11:43:09 +00:00
521a203b06 New translations ja.yml (Polish) 2018-05-26 20:01:24 +09:00
8f175186bc Fix bug 2018-05-26 16:08:57 +09:00
ddb413ca52 🎨 2018-05-26 16:05:02 +09:00
5415b67baa Fix bug 2018-05-26 16:04:47 +09:00
454563c9df New translations ja.yml (French) 2018-05-26 13:51:20 +09:00
19f6af475a Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-26 13:31:52 +09:00
65a3bac543 ✌️ 2018-05-26 13:25:10 +09:00
f91a53d893 Update dependencies 🚀 2018-05-26 13:23:58 +09:00
f848e3f226 Merge pull request #1650 from syuilo/l10n_master
New Crowdin translations
2018-05-26 12:35:21 +09:00
bc94878225 Merge branch 'master' into l10n_master 2018-05-26 12:35:14 +09:00
bcf52bb2c3 New translations ja.yml (Portuguese) 2018-05-26 12:33:44 +09:00
2c25188f70 New translations ja.yml (Korean) 2018-05-26 12:33:42 +09:00
567aeacff5 New translations ja.yml (Polish) 2018-05-26 12:33:40 +09:00
4b9168e596 New translations ja.yml (Chinese Simplified) 2018-05-26 12:33:38 +09:00
8b79b28916 New translations ja.yml (Italian) 2018-05-26 12:33:36 +09:00
45706cc0ef New translations ja.yml (Russian) 2018-05-26 12:33:34 +09:00
c1e3f4e68e New translations ja.yml (English) 2018-05-26 12:33:32 +09:00
6cbbc97893 New translations ja.yml (Spanish) 2018-05-26 12:33:30 +09:00
fa09523821 New translations ja.yml (German) 2018-05-26 12:33:29 +09:00
7cb527d9ba New translations ja.yml (French) 2018-05-26 12:33:27 +09:00
5320f29fb0 Merge pull request #1649 from l2dy/i18n
i18n
2018-05-26 12:21:52 +09:00
7527af4656 i18n 2018-05-26 03:19:49 +00:00
6adb92b074 Merge pull request #1648 from syuilo/l10n_master
New Crowdin translations
2018-05-26 11:12:50 +09:00
6dc3844682 New translations ja.yml (Polish) 2018-05-26 11:11:18 +09:00
bfb16c27ee New translations ja.yml (English) 2018-05-26 11:00:59 +09:00
ed1cc0b81c 🎨 2018-05-26 10:59:18 +09:00
c66c1c9d2a New translations ja.yml (Portuguese) 2018-05-26 10:51:44 +09:00
1748fcf909 New translations ja.yml (Korean) 2018-05-26 10:51:42 +09:00
bdac8d58ae New translations ja.yml (Polish) 2018-05-26 10:51:40 +09:00
4e21801163 New translations ja.yml (Chinese Simplified) 2018-05-26 10:51:38 +09:00
4929687956 New translations ja.yml (Italian) 2018-05-26 10:51:36 +09:00
4ba7ad8a4b New translations ja.yml (Russian) 2018-05-26 10:51:34 +09:00
800fdaeaef New translations ja.yml (English) 2018-05-26 10:51:32 +09:00
08a89a924d New translations ja.yml (Spanish) 2018-05-26 10:51:29 +09:00
5b057d2275 New translations ja.yml (German) 2018-05-26 10:51:27 +09:00
bdc9bd1345 New translations ja.yml (French) 2018-05-26 10:51:25 +09:00
d8dc677906 Fix 2018-05-26 10:51:00 +09:00
9c312b0e26 Fix 2018-05-26 10:44:34 +09:00
8d28f68e0b Fix 2018-05-26 10:41:50 +09:00
317c9308cc Update add-file.ts 2018-05-26 09:57:31 +09:00
01cd3de5b3 Merge pull request #1647 from syuilo/l10n_master
New Crowdin translations
2018-05-26 09:54:23 +09:00
bc2774093a New translations ja.yml (Polish) 2018-05-25 23:31:57 +09:00
afb999187f Merge pull request #1646 from syuilo/l10n_master
New Crowdin translations
2018-05-25 23:28:23 +09:00
54d0598d92 New translations ja.yml (Polish) 2018-05-25 23:24:15 +09:00
163e60e32e Publish mention event 2018-05-25 22:25:38 +09:00
ccbcc2a738 Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-25 21:21:45 +09:00
07e1882401 2.17.0 2018-05-25 21:21:37 +09:00
e56589d19e Merge pull request #1645 from syuilo/l10n_master
New Crowdin translations
2018-05-25 21:21:13 +09:00
bfb5367d27 New translations ja.yml (English) 2018-05-25 21:20:32 +09:00
712c0ef27d Refactor: Use better english 2018-05-25 21:05:16 +09:00
94b2ddef45 oops 2018-05-25 20:53:27 +09:00
b84a83adf4 New translations ja.yml (Portuguese) 2018-05-25 20:52:27 +09:00
c8514f58c6 New translations ja.yml (Korean) 2018-05-25 20:52:25 +09:00
841ddb036b New translations ja.yml (Polish) 2018-05-25 20:52:23 +09:00
982a37a413 New translations ja.yml (Chinese Simplified) 2018-05-25 20:52:21 +09:00
741af7cce5 New translations ja.yml (Italian) 2018-05-25 20:52:19 +09:00
9954080672 New translations ja.yml (Russian) 2018-05-25 20:52:17 +09:00
f47f4b4a5c New translations ja.yml (English) 2018-05-25 20:52:14 +09:00
1a3fab9cd9 New translations ja.yml (Spanish) 2018-05-25 20:52:11 +09:00
b683bf6f18 New translations ja.yml (German) 2018-05-25 20:52:09 +09:00
976ae1bf44 New translations ja.yml (French) 2018-05-25 20:52:06 +09:00
ffc63383dc i18n 2018-05-25 20:44:06 +09:00
c6ea6de5c2 Fix bug 2018-05-25 20:41:07 +09:00
fe812530d8 New translations ja.yml (English) 2018-05-25 20:31:35 +09:00
75d07175ae New translations ja.yml (Portuguese) 2018-05-25 20:26:11 +09:00
544580bd8b New translations ja.yml (Korean) 2018-05-25 20:26:09 +09:00
d30d307f80 New translations ja.yml (Polish) 2018-05-25 20:26:06 +09:00
5ccdfe258c New translations ja.yml (Chinese Simplified) 2018-05-25 20:26:04 +09:00
8f8b550608 New translations ja.yml (Italian) 2018-05-25 20:26:02 +09:00
7836d0b059 New translations ja.yml (Russian) 2018-05-25 20:25:59 +09:00
4b9cbe9ca7 New translations ja.yml (English) 2018-05-25 20:25:57 +09:00
034b223f8f New translations ja.yml (Spanish) 2018-05-25 20:25:55 +09:00
f87326620b New translations ja.yml (German) 2018-05-25 20:25:53 +09:00
b4a526ed18 New translations ja.yml (French) 2018-05-25 20:25:51 +09:00
410cc171c6 ✌️ 2018-05-25 20:23:36 +09:00
558b897700 リモートサーバーのファイルをデータベースに保存せず、クライアントで直接表示させられるように 2018-05-25 20:19:14 +09:00
e804757d83 Update gitignore 2018-05-25 18:41:59 +09:00
bd434ed02d Refactor and some fixes 2018-05-25 18:41:49 +09:00
df89f5c8b8 Update welcome.vue 2018-05-25 15:06:35 +09:00
3aebd8311f Merge pull request #1644 from syuilo/l10n_master
New Crowdin translations
2018-05-24 22:55:35 +09:00
f025296331 Enable HTTP/2 2018-05-24 22:21:10 +09:00
1a58a962bb New translations ja.yml (Portuguese) 2018-05-24 17:21:50 +09:00
079d6b0de8 New translations ja.yml (English) 2018-05-24 14:21:58 +09:00
321841101b 2.16.8 2018-05-24 09:48:30 +09:00
8071ca0d66 Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-24 09:48:05 +09:00
c1141c5267 Fix bug 2018-05-24 09:48:02 +09:00
f1fdd4524d Update messaging-room.vue 2018-05-24 09:00:16 +09:00
02dd2c7f1a Update messaging-room.vue 2018-05-24 09:00:02 +09:00
fc3a323a21 Fix bug 2018-05-24 06:34:46 +09:00
d92f501b50 2.16.7 2018-05-24 06:22:20 +09:00
be408ba6ea Fix 2018-05-24 06:22:10 +09:00
c81a204e0c 2.16.6 2018-05-24 06:21:04 +09:00
fce1d619e8 Fix bug 2018-05-24 06:20:36 +09:00
3e146d5f94 2.16.5 2018-05-24 06:09:24 +09:00
cb5c0ac2f5 Fix bug 2018-05-24 06:08:23 +09:00
4798657b70 Refactor 2018-05-24 05:57:27 +09:00
f565e60bcf Darken 2018-05-24 05:46:09 +09:00
89461c598f Refactor 2018-05-24 05:28:46 +09:00
b320d08a5e 🎨 2018-05-24 04:56:58 +09:00
a930d4fc7b Fix bug 2018-05-24 04:55:29 +09:00
d42197fc2e Merge pull request #1642 from syuilo/l10n_master
New Crowdin translations
2018-05-23 20:52:32 +09:00
2d3138af76 New translations ja.yml (English) 2018-05-23 20:51:44 +09:00
4ee4b6f332 Update docs 2018-05-23 19:03:25 +09:00
fc6c048fad Update setup.ja.md 2018-05-23 19:00:23 +09:00
dae9c4288d 2.16.4 2018-05-23 16:00:08 +09:00
9f37149369 🎨 2018-05-23 15:58:53 +09:00
e476647ab8 🎨 2018-05-23 15:48:41 +09:00
eb23be979c oops 2018-05-23 15:47:51 +09:00
6d9d6a6779 oops 2018-05-23 15:46:20 +09:00
1c0cb1ae71 2.16.3 2018-05-23 15:27:31 +09:00
0ba5dc3900 Only show local posts in the timeline of top page 2018-05-23 15:25:15 +09:00
872717feeb Merge pull request #1638 from syuilo/l10n_master
New Crowdin translations
2018-05-23 14:07:36 +09:00
85b51f06a4 New translations ja.yml (English) 2018-05-23 14:01:15 +09:00
94df60d054 Merge pull request #1637 from syuilo/l10n_master
New Crowdin translations
2018-05-23 13:51:19 +09:00
7395284480 New translations ja.yml (English) 2018-05-23 13:50:54 +09:00
b537fa5467 Merge pull request #1636 from syuilo/l10n_master
New Crowdin translations
2018-05-22 23:55:42 +09:00
dca58c20d2 New translations ja.yml (Chinese Simplified) 2018-05-22 23:54:36 +09:00
0a3030f7d0 New translations ja.yml (English) 2018-05-22 19:35:05 +09:00
81cc6f3104 2.16.2 2018-05-22 18:20:49 +09:00
cc0b9c6933 oops 2018-05-22 18:19:02 +09:00
5671f1c6a4 2.16.1 2018-05-22 11:47:23 +09:00
89dee86f39 Fix bug and remove unnecessary query 2018-05-22 11:45:49 +09:00
b414068ada Refactor 2018-05-22 11:39:48 +09:00
3be7952e9f Improve avatar rendering 2018-05-22 11:34:40 +09:00
137b5da4aa Fix bug 2018-05-22 11:31:06 +09:00
2ee1639acb Merge pull request #1631 from syuilo/l10n_master
New Crowdin translations
2018-05-22 07:13:58 +09:00
a05b184595 New translations ja.yml (Polish) 2018-05-22 06:00:58 +09:00
f3bacae1dc 2.16.0 2018-05-21 21:52:10 +09:00
af5fb99fe6 Merge pull request #1629 from syuilo/l10n_master
New Crowdin translations
2018-05-21 21:51:39 +09:00
0ebe4ad7a3 New translations ja.yml (English) 2018-05-21 21:51:24 +09:00
0cf99037c8 Merge pull request #1628 from syuilo/l10n_master
New Crowdin translations
2018-05-21 21:41:46 +09:00
b913debc57 New translations ja.yml (Korean) 2018-05-21 21:41:26 +09:00
abe3f1f5e9 New translations ja.yml (Polish) 2018-05-21 21:41:23 +09:00
d30b88364c New translations ja.yml (Chinese Simplified) 2018-05-21 21:41:21 +09:00
4840b7acf7 New translations ja.yml (Italian) 2018-05-21 21:41:19 +09:00
f5bac11fae New translations ja.yml (Russian) 2018-05-21 21:41:17 +09:00
68a70a94fc New translations ja.yml (English) 2018-05-21 21:41:15 +09:00
bf7436ddf8 New translations ja.yml (Spanish) 2018-05-21 21:41:13 +09:00
b99155a084 New translations ja.yml (German) 2018-05-21 21:41:11 +09:00
027e62a6ea New translations ja.yml (French) 2018-05-21 21:41:08 +09:00
c6b6c8afbd Clean up 2018-05-21 21:41:06 +09:00
1236a09247 New welcome page 2018-05-21 21:39:46 +09:00
6a4d38045e Merge branch 'master' of https://github.com/syuilo/misskey 2018-05-21 20:54:54 +09:00
281aed2797 Fix bug 2018-05-21 20:54:52 +09:00
3e47f9943a Merge pull request #1627 from syuilo/l10n_master
New Crowdin translations
2018-05-21 20:36:36 +09:00
f6d27dd17d [travis] Ignore l10n_master 2018-05-21 20:36:14 +09:00
073704c7af New translations ja.yml (Korean) 2018-05-21 20:31:48 +09:00
809db02ca2 New translations ja.yml (Polish) 2018-05-21 20:31:47 +09:00
2e45ff6a32 New translations ja.yml (Chinese Simplified) 2018-05-21 20:31:45 +09:00
02d6974be9 New translations ja.yml (Italian) 2018-05-21 20:31:43 +09:00
e530afb2fe New translations ja.yml (Russian) 2018-05-21 20:31:41 +09:00
dba15f0e8b New translations ja.yml (English) 2018-05-21 20:31:39 +09:00
8f771c60c5 New translations ja.yml (Spanish) 2018-05-21 20:31:37 +09:00
d9b1ca8c48 New translations ja.yml (German) 2018-05-21 20:31:35 +09:00
9e247c119a New translations ja.yml (French) 2018-05-21 20:31:33 +09:00
08b5e21e96 ✌️ 2018-05-21 20:30:42 +09:00
2101d3aa5b Update locales 2018-05-21 20:28:33 +09:00
aa80fb5d4a 2.15.0 2018-05-21 15:18:27 +09:00
63727f6514 Merge pull request #1626 from syuilo/l10n_master
New Crowdin translations
2018-05-21 15:11:13 +09:00
ade35cbb2d New translations ja.yml (Korean) 2018-05-21 15:10:59 +09:00
6ec9059ccc New translations ja.yml (Polish) 2018-05-21 15:10:57 +09:00
c93d1711cf New translations ja.yml (Chinese Simplified) 2018-05-21 15:10:55 +09:00
e734ad0413 New translations ja.yml (Italian) 2018-05-21 15:10:54 +09:00
047dee3a70 New translations ja.yml (Russian) 2018-05-21 15:10:52 +09:00
8c76089caf New translations ja.yml (English) 2018-05-21 15:10:50 +09:00
ab6cf2dba3 New translations ja.yml (Spanish) 2018-05-21 15:10:48 +09:00
65a309e605 New translations ja.yml (German) 2018-05-21 15:10:46 +09:00
f37e713640 New translations ja.yml (French) 2018-05-21 15:10:44 +09:00
bc1e9245bd ✌️ 2018-05-21 15:00:42 +09:00
2fa82bde16 🎨 2018-05-21 14:57:27 +09:00
140249172c Display isAdmin badge 2018-05-21 14:47:21 +09:00
9677d1288a 2.14.0 2018-05-21 11:16:17 +09:00
133ae7d171 Merge pull request #1625 from syuilo/l10n_master
New Crowdin translations
2018-05-21 11:15:45 +09:00
5b92a43361 Fix bug 2018-05-21 11:14:57 +09:00
b839bf6918 New translations ja.yml (Korean) 2018-05-21 11:11:10 +09:00
7ea4ba1d5a New translations ja.yml (Polish) 2018-05-21 11:11:08 +09:00
f000dbd657 New translations ja.yml (Chinese Simplified) 2018-05-21 11:11:06 +09:00
36e4a24527 New translations ja.yml (Italian) 2018-05-21 11:11:04 +09:00
861cc83014 New translations ja.yml (Russian) 2018-05-21 11:11:02 +09:00
d2b273dc3b New translations ja.yml (English) 2018-05-21 11:11:00 +09:00
e49ad120f3 New translations ja.yml (Spanish) 2018-05-21 11:10:58 +09:00
6f441f35ec New translations ja.yml (German) 2018-05-21 11:10:56 +09:00
14a5c429bb New translations ja.yml (French) 2018-05-21 11:10:54 +09:00
100125ad5a Fix bug 2018-05-21 11:08:14 +09:00
f8c414aafc #1621 2018-05-21 11:08:08 +09:00
14aedb07aa Update .eslintrc 2018-05-21 10:35:42 +09:00
40b01e0ad3 Merge pull request #1624 from syuilo/l10n_master
New Crowdin translations
2018-05-21 09:31:11 +09:00
f9f6718174 New translations ja.yml (Korean) 2018-05-21 09:30:52 +09:00
c41723b09f New translations ja.yml (Polish) 2018-05-21 09:30:50 +09:00
1b6effd369 New translations ja.yml (Chinese Simplified) 2018-05-21 09:30:49 +09:00
1bbf7a45a8 New translations ja.yml (Italian) 2018-05-21 09:30:47 +09:00
0a5e021128 New translations ja.yml (Russian) 2018-05-21 09:30:45 +09:00
52ebde60fc New translations ja.yml (English) 2018-05-21 09:30:43 +09:00
c77cf79f5d New translations ja.yml (Spanish) 2018-05-21 09:30:41 +09:00
1233abe5b0 New translations ja.yml (German) 2018-05-21 09:30:39 +09:00
f2f2b09ff1 New translations ja.yml (French) 2018-05-21 09:30:36 +09:00
5bf87b7efe Merge pull request #1623 from syuilo/l10n_master
New Crowdin translations
2018-05-21 09:27:57 +09:00
526321adb6 Merge pull request #1622 from m4sk1n/master
fix typo
2018-05-21 09:27:25 +09:00
f816daa59e New translations ja.yml (Polish) 2018-05-21 05:50:41 +09:00
5d6f75ec05 New translations ja.yml (Polish) 2018-05-21 05:41:13 +09:00
28994d001c fix typo
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2018-05-20 22:37:03 +02:00
316 changed files with 11850 additions and 5568 deletions

View File

@ -55,3 +55,7 @@ twitter:
# インテグレーション用アプリのコンシューマーシークレット
consumer_secret:
# true にすると、リモートのファイルをキャッシュしなくなります(直リンクします)。
# ストレージ容量を節約することができますが、「リモートメディアを表示しない」設定をオンにしているユーザーは、リモートの画像などは見えなくなります。
preventCache: false

View File

@ -22,6 +22,7 @@
"globals": {
"ENV": true,
"VERSION": true,
"API": true
"API": true,
"LANGS": true
}
}

3
.gitignore vendored
View File

@ -5,9 +5,10 @@
/build
/built
/data
/.cache-loader
npm-debug.log
*.pem
run.bat
api-docs.json
package-lock.json
yarn.lock
*.log

View File

@ -4,6 +4,10 @@
notifications:
email: false
branches:
except:
- l10n_master
language: node_js
node_js:

View File

@ -12,20 +12,24 @@
> Lead Maintainer: [syuilo][syuilo-link]
**[Misskey](https://misskey.xyz)** is a completely open source,
ultimately sophisticated new type of mini-blog based SNS.
ultimately sophisticated professional microblogging software.
<a href="https://www.patreon.com/syuilo"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160" /></a>
![](https://c10.patreonusercontent.com/3/e30%3D/patreon-posts/RsKWEDEKf8D_wYDQWAbex9CSb-1DnXW1nfqfLvuys5ROj2k0VF6_luuzHMTyf95n.png?token-time=1529539200&token-hash=RmcSP0947mw5o2-B6g1L6aU_OoDXANe198kLU6HMO30%3D)
:sparkles: Features
----------------------------------------------------------------
* Reactions
* User lists
* Customizable column view (known as MisskeyDeck)
* and widgets!
* Private messages
* Mute
* Real time contents
* Streaming
* ActivityPub compatible
and more! You can touch with your own eyes at [misskey.xyz](https://misskey.xyz).
and more! You can see it with your own eyes at [misskey.xyz](https://misskey.xyz).
:package: Create your instance
----------------------------------------------------------------
@ -45,18 +49,9 @@ If you want to...
[![Backers][backers-image]][support-url]
[![Sponsors][sponsors-image]][support-url]
:mortar_board: Notable contributors
----------------------------------------------------------------
| ![syuilo][syuilo-icon] | ![Morisawa Aya][ayamorisawa-icon] | ![otofune][otofune-icon] | ![akihikodaki][akihikodaki-icon] | ![tamaina][tamaina-icon] | ![rinsuki][rinsuki-icon] |
|:-:|:-:|:-:|:-:|:-:|:-:|
| [syuilo][syuilo-link]<br>Owner | [Aya Morisawa][ayamorisawa-link]<br>Collaborator | [otofune][otofune-link]<br>Collaborator | [akihikodaki][akihikodaki-link] | [tamaina][tamaina-link] | [rinsuki][rinsuki-link] |
[List of all contributors](https://github.com/syuilo/misskey/graphs/contributors)
### :earth_americas: Translators
| ![][mirro-san-icon] | ![][Conan-kun-icon] | ![][m4sk1n-icon] |
|:-:|:-:|:-:|
| [Mirro][mirro-san-link]<br>English, French | [Asriel][Conan-kun-link]<br>English, French | [Marcin Mikołajczak][m4sk1n-link]<br>Polish |
| ![][ooo-icon] |
|:-:|
| [ooo][ooo-link] |
:four_leaf_clover: Copyright
----------------------------------------------------------------
@ -84,23 +79,8 @@ Misskey is an open-source software licensed under [GNU AGPLv3](LICENSE).
[sponsors-image]: https://opencollective.com/misskey/sponsors.svg
[support-url]: https://opencollective.com/misskey#support
<!-- Contributors Info -->
[syuilo-link]: https://syuilo.com
[syuilo-icon]: https://avatars2.githubusercontent.com/u/4439005?v=3&s=70
[ayamorisawa-link]: https://github.com/ayamorisawa
[ayamorisawa-icon]: https://avatars0.githubusercontent.com/u/10798641?v=3&s=70
[otofune-link]: https://github.com/otofune
[otofune-icon]: https://avatars0.githubusercontent.com/u/15062473?v=3&s=70
[akihikodaki-link]: https://github.com/akihikodaki
[akihikodaki-icon]: https://avatars2.githubusercontent.com/u/17036990?s=70&v=4
[rinsuki-link]: https://github.com/rinsuki
[rinsuki-icon]: https://avatars0.githubusercontent.com/u/6533808?s=70&v=4
[tamaina-link]: https://github.com/tamaina
[tamaina-icon]: https://avatars1.githubusercontent.com/u/7973572?s=70&v=4
[mirro-san-link]: https://github.com/mirro-san
[mirro-san-icon]: https://avatars1.githubusercontent.com/u/17948612?s=70&v=4
[Conan-kun-link]: https://github.com/Conan-kun
[Conan-kun-icon]: https://avatars3.githubusercontent.com/u/30003708?s=70&v=4
[m4sk1n-link]: https://github.com/m4sk1n
[m4sk1n-icon]: https://avatars3.githubusercontent.com/u/21127288?s=70&v=4
[ooo-link]: https://www.patreon.com/user/creators?u=11601413
[ooo-icon]: https://c10.patreonusercontent.com/3/eyJ2IjoiMSIsInciOjIwMH0%3D/patreon-media/user/11601413/20cb15f209924302b399b99d3c98b850?token-time=2145916800&token-hash=IO31nK6VZCMWBWU2VAk2c824BX2QZ4DNPKyHHZXS0iw%3D

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 KiB

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,161 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="896"
height="896"
viewBox="0 0 237.06667 237.06667"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="128.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\128.png"
inkscape:export-xdpi="13.714286"
inkscape:export-ydpi="13.714286">
<defs
id="defs2">
<inkscape:path-effect
effect="simplify"
id="path-effect5115"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5111"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5104"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7071068"
inkscape:cx="908.16505"
inkscape:cy="468.2779"
inkscape:document-units="px"
inkscape:current-layer="g4502"
showgrid="true"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-midpoints="true"
inkscape:object-paths="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
objecttolerance="1"
guidetolerance="1"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid4504"
spacingx="4.2333334"
spacingy="4.2333334"
empcolor="#ff3fff"
empopacity="0.25098039"
empspacing="4" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="レイヤー 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.809093,-10.18601)">
<g
id="g4502"
transform="matrix(1.096096,0,0,1.096096,47.839369,-94.823577)"
inkscape:export-xdpi="6"
inkscape:export-ydpi="6">
<rect
style="opacity:1;fill:#2fa1bb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.96554804;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059"
id="rect4506"
width="216.28276"
height="216.28278"
x="-15.537212"
y="95.803268" />
<g
style="fill:#ffffff;fill-opacity:1"
transform="translate(-1.3333333e-6,-1.3439941e-6)"
id="g5125">
<g
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
id="text4489"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi">
<path
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
inkscape:connector-curvature="0"
id="path5210"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#ffffff;fill-opacity:1;stroke-width:0.28950602px"
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
<path
inkscape:connector-curvature="0"
id="path5212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#ffffff;fill-opacity:1;stroke-width:0.28950602px"
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -1,161 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="896"
height="896"
viewBox="0 0 237.06667 237.06667"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="256.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\256.png"
inkscape:export-xdpi="27.428572"
inkscape:export-ydpi="27.428572">
<defs
id="defs2">
<inkscape:path-effect
effect="simplify"
id="path-effect5115"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5111"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5104"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7071068"
inkscape:cx="908.16505"
inkscape:cy="468.2779"
inkscape:document-units="px"
inkscape:current-layer="g4502"
showgrid="true"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-midpoints="true"
inkscape:object-paths="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
objecttolerance="1"
guidetolerance="1"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid4504"
spacingx="4.2333334"
spacingy="4.2333334"
empcolor="#ff3fff"
empopacity="0.25098039"
empspacing="4" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="レイヤー 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.809093,-10.18601)">
<g
id="g4502"
transform="matrix(1.096096,0,0,1.096096,47.839369,-94.823577)"
inkscape:export-xdpi="6"
inkscape:export-ydpi="6">
<rect
style="opacity:1;fill:#2fa1bb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.96554804;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059"
id="rect4506"
width="216.28276"
height="216.28278"
x="-15.537212"
y="95.803268" />
<g
style="fill:#ffffff;fill-opacity:1"
transform="translate(-1.3333333e-6,-1.3439941e-6)"
id="g5125">
<g
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
id="text4489"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi">
<path
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
inkscape:connector-curvature="0"
id="path5210"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#ffffff;fill-opacity:1;stroke-width:0.28950602px"
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
<path
inkscape:connector-curvature="0"
id="path5212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#ffffff;fill-opacity:1;stroke-width:0.28950602px"
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
assets/favicon/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -15,7 +15,7 @@
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="16.svg"
sodipodi:docname="favicon.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\16.png"
inkscape:export-xdpi="3"
inkscape:export-ydpi="3">
@ -66,7 +66,7 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4142136"
inkscape:cx="110.21885"
inkscape:cx="15.466544"
inkscape:cy="235.92965"
inkscape:document-units="px"
inkscape:current-layer="g4502"
@ -79,7 +79,7 @@
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-height="1027"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
@ -111,7 +111,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -69,7 +69,7 @@
inkscape:cx="232.39583"
inkscape:cy="251.50613"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:current-layer="g4502"
showgrid="true"
units="px"
inkscape:snap-bbox="true"
@ -79,7 +79,7 @@
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-height="1027"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
@ -111,7 +111,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -124,25 +124,19 @@
id="g4502"
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)">
<g
style="fill:#2fa1bb;fill-opacity:0.94117647"
style="fill:#000000;fill-opacity:1"
transform="translate(-1.3333333e-6,-1.3439941e-6)"
id="g5125">
<g
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
id="text4489"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#2fa1bb;fill-opacity:0.94117647;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi">
<path
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
inkscape:connector-curvature="0"
id="path5210"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa1bb;fill-opacity:0.94117647;stroke-width:0.28950602px"
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
<path
inkscape:connector-curvature="0"
id="path5212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa1bb;fill-opacity:0.94117647;stroke-width:0.28950602px"
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#000000;fill-opacity:1;stroke-width:1.09609616px"
d="M 62.474609 76.585938 C 54.999059 76.585938 47.878825 77.832365 41.115234 80.324219 C 29.011968 84.595952 19.044417 92.249798 11.212891 103.28516 C 3.7373405 113.96451 0 125.88934 0 139.06055 L 0 372.93945 C 0 390.02642 6.0510264 404.79858 18.154297 417.25781 C 30.613543 429.36108 45.387643 435.41406 62.474609 435.41406 C 79.917556 435.41406 94.689698 429.36108 106.79297 417.25781 C 119.25222 404.79858 125.48242 390.02642 125.48242 372.93945 L 125.48242 330.4082 C 125.61683 321.19698 135.10492 323.61391 139.90039 330.4082 C 148.8815 345.96215 167.92265 359.32062 190.0918 359.24414 C 212.26095 359.16778 230.67374 348.20715 240.28516 330.4082 C 243.92497 326.11557 254.18418 318.80145 255.23633 330.4082 L 255.23633 372.93945 C 255.23633 390.02642 261.28735 404.79858 273.39062 417.25781 C 285.84985 429.36108 300.62397 435.41406 317.71094 435.41406 C 335.15388 435.41406 349.92603 429.36108 362.0293 417.25781 C 374.48853 404.79858 380.71875 390.02642 380.71875 372.93945 L 380.71875 139.06055 C 380.71875 125.88934 376.80415 113.96451 368.97266 103.28516 C 361.49709 92.249798 351.70678 84.595952 339.60352 80.324219 C 332.48396 77.832365 325.3637 76.585938 318.24414 76.585938 C 299.02128 76.585938 282.82549 84.062587 269.6543 99.013672 C 262.53473 107.20121 258.79542 111.11761 258.43945 110.76172 C 258.43945 110.76172 207.67587 172.14495 206.25195 173.21289 C 204.82804 174.2808 200.11102 182.44531 190.0918 182.44531 C 180.07257 182.44531 175.89071 174.2808 174.4668 173.21289 C 173.04288 172.14495 122.2793 110.76172 122.2793 110.76172 C 121.21136 110.40575 117.29484 106.48923 110.53125 99.013672 C 97.716024 84.062587 81.697447 76.585938 62.474609 76.585938 z M 457.53516 76.585938 C 442.58406 76.585937 429.7692 81.926117 419.08984 92.605469 C 408.76646 102.92885 403.60547 115.56648 403.60547 130.51758 C 403.60547 145.46868 408.76646 158.28354 419.08984 168.96289 C 429.7692 179.28627 442.58406 184.44922 457.53516 184.44922 C 472.48625 184.44922 485.30112 179.28627 495.98047 168.96289 C 506.65982 158.28354 512 145.46868 512 130.51758 C 512 115.56648 506.65982 102.92885 495.98047 92.605469 C 485.30112 81.926117 472.48625 76.585938 457.53516 76.585938 z M 458.06836 195.12695 C 443.11726 195.12695 430.3024 200.46713 419.62305 211.14648 C 408.94369 221.82584 403.60547 234.6407 403.60547 249.5918 L 403.60547 381.48242 C 403.60547 396.43352 408.94369 409.24838 419.62305 419.92773 C 430.3024 430.25112 443.11726 435.41406 458.06836 435.41406 C 473.01946 435.41406 485.65709 430.25112 495.98047 419.92773 C 506.65982 409.24838 512 396.43352 512 381.48242 L 512 249.5918 C 512 234.6407 506.65982 221.82584 495.98047 211.14648 C 485.65709 200.46713 473.01946 195.12695 458.06836 195.12695 z "
transform="matrix(0.26412464,0,0,0.26412464,24.988264,136.28626)"
id="path5210" />
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -8,7 +8,8 @@ const { default: User } = require('../built/models/user');
const q = {
'metadata._user.host': {
$ne: null
}
},
'metadata.isMetaOnly': false
};
async function main() {
@ -56,8 +57,7 @@ async function main() {
DriveFile.update({ _id: file._id }, {
$set: {
'metadata.deletedAt': new Date(),
'metadata.isExpired': true
'metadata.isMetaOnly': true
}
})
]).then(async () => {

View File

@ -3,16 +3,21 @@ const User = require('../built/models/user').default;
const args = process.argv.slice(2);
const userId = new mongo.ObjectID(args[0]);
const user = args[0];
console.log(`Suspending ${userId}...`);
const q = user.startsWith('@') ? {
username: user.split('@')[1],
host: user.split('@')[2] || null
} : { _id: new mongo.ObjectID(user) };
User.update({ _id: userId }, {
console.log(`Suspending ${user}...`);
User.update(q, {
$set: {
isSuspended: true
}
}).then(() => {
console.log(`Suspended ${userId}`);
console.log(`Suspended ${user}`);
}, e => {
console.error(e);
});

12
cli/update-remote-user.js Normal file
View File

@ -0,0 +1,12 @@
const updatePerson = require('../built/remote/activitypub/models/person').updatePerson;
const args = process.argv.slice(2);
const user = args[0];
console.log(`Updating ${user}...`);
updatePerson(user).then(() => {
console.log(`Updated ${user}`);
}, e => {
console.error(e);
});

View File

@ -43,17 +43,18 @@ Please install and setup these softwares:
*4.* Prepare configuration
----------------------------------------------------------------
1. Copy `example.yml` of `.config` directory
2. Rename it to `default.yml`
3. Edit it
---
Or you can generate config file via `npm run config` command.
You need to generate config file via `npm run config` command.
*5.* Build Misskey
----------------------------------------------------------------
We need to use `node-gyp` to build the `crypto` module.
Build misskey with the following:
`npm run build`
If you're on Debian, you will need to install the `build-essential` package.
If you're still encountering errors about some modules, use node-gyp:
1. `npm install -g node-gyp`
2. `node-gyp configure`

View File

@ -43,18 +43,14 @@ web-push generate-vapid-keys
*4.* 設定ファイルを用意する
----------------------------------------------------------------
1. `.config`ディレクトリ内の`example.yml`をコピー
2. `default.yml`にリネーム
3. 編集する
---
または、`npm run config`コマンドを利用して、ガイドに従って情報を
入力して設定ファイルを生成することもできます。
`npm run config`コマンドを利用して、ガイドに従って情報を入力してください。
*5.* Misskeyのビルド
----------------------------------------------------------------
1. `npm run build`
1. `npm install -g node-gyp`
2. `node-gyp configure`
3. `node-gyp build`
4. `npm run build`
*6.* 以上です!
----------------------------------------------------------------
@ -78,4 +74,4 @@ VPSなどでビルドする時は、もしかしたらメモリが足りなく
3. npm run webpack
4. built/client をサーバーにアップロードする
5. サーバー上で、npm run gulp
6. 完了
6. 完了

View File

@ -3,7 +3,9 @@ meta:
lang: "Deutsch"
divider: ""
common:
misskey: "Teile alles mit anderen mithilfe von Misskey"
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
time:
unknown: "Unbekannt"
future: "Zukunft"
@ -33,11 +35,58 @@ common:
angry: "Wütend"
confused: "Verwirrt"
pudding: "Pudding"
note-placeholders:
a: "Was machst du gerade?"
b: "Was ist so passiert?"
c: "Was geht dir durch den Kopf?"
d: "Willst du etwas sagen?"
e: "Schreib hier etwas!"
f: "Warte darauf, das du schreibst."
delete: "Löschen"
loading: "Laden"
ok: "OK"
update-available: "Eine neue Version von Misskey ist verfügbar ({newer}, aktuell ist {current}). Lade die Seite neu um die aktuelle Version zu laden"
my-token-regenerated: "Dein Token wurde generiert. Du wirst jetzt abgemeldet."
widgets:
analog-clock: "Analoge Uhr"
profile: "Profil"
calendar: "Kalender"
timemachine: "Kalender (Zeitmaschiene)"
activity: "Aktivitäten"
rss: "RSS Leser"
memo: "Notizen"
trends: "Trends"
photo-stream: "Bilder"
posts-monitor: "投稿チャート"
slideshow: "Diashow"
version: "Version"
broadcast: "ブロードキャスト"
notifications: "Benachrichtigungen"
users: "Empfohlene Benutzer"
polls: "アンケート"
post-form: "Beitragsform"
messaging: "Nachrichten"
server: "Server-Info"
donation: "Spenden"
nav: "Navigation"
tips: "Tipps"
hashtags: "ハッシュタグ"
deck:
widgets: "Widget hinzufügen:"
home: "Startseite"
local: "Lokal"
global: "Global"
notifications: "Mitteilungen"
list: "Listen"
swap-left: "Nach links"
swap-right: "Nach rechts"
swap-up: "Nach oben"
swap-down: "Nach unten"
remove: "Spalte löschen"
add-column: "Eine Spalte hinzufügen"
rename: "Umbenennen"
stack-left: "Nach links schichten"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "Verbindung zum Server ist fehlgeschlagen"
description: "Es gibt entweder ein Problem mit deiner Internetverbindung, der Server ist nicht erreichbar oder wird gerade gewartet. Bitte versuche es später noch einmal."
@ -92,6 +141,8 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "Diese Anmerkung favorisieren"
pin: "An die Profilseite pinnen"
delete: "Löschen"
delete-confirm: "Diesen Post löschen?"
remote: "Auf Quelle anzeigen"
common/views/components/poll.vue:
vote-to: "Stimme für '{}'"
@ -151,6 +202,15 @@ common/views/components/twitter-setting.vue:
disconnect: "Trennen"
common/views/components/uploader.vue:
waiting: "Warten"
common/views/components/visibility-chooser.vue:
public: "Öffentlich"
home: "Home"
home-desc: "Nur auf die Startseite posten"
followers: "Folgende"
followers-desc: "Nur für diejenigen sichtbar, die dir folgen"
specified: "Direkt"
specified-desc: "Poste nur für bestimmte Benutzer"
private: "Privat"
common/views/widgets/broadcast.vue:
fetching: "Laden"
no-broadcasts: "Keine Broadcasts"
@ -162,18 +222,19 @@ common/views/widgets/donation.vue:
common/views/widgets/photo-stream.vue:
title: "Fotostream"
no-photos: "Keine Fotos"
common/views/widgets/posts-monitor.vue:
title: "投稿チャート"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
common/views/widgets/server.vue:
title: "Serverinformationen"
toggle: "Sicht umschalten"
commons/views/widgets/visibility-chooser.vue:
public: "Öffentlich"
home: "Home"
home-desc: "Nur an dieser Stelle sichtbar"
followers: "Follower"
followers-desc: "Nur für diejenigen sichtbar, die dir folgen"
specified: "Direkt"
specified-desc: "Nur für bestimmte Benutzer"
private: "Privat"
common/views/widgets/memo.vue:
title: "Notizen"
memo: "Schreib hier!"
save: "Speichern"
desktop/views/components/activity.chart.vue:
total: "Schwarz ... komplett"
notes: "Blau ... Hinweise"
@ -211,30 +272,30 @@ desktop/views/components/drive.file.vue:
rename: "Umbenennen"
copy-url: "URL kopieren"
download: "Download"
else-files: "その他..."
set-as-avatar: "アイコンに設定"
set-as-banner: "バナーに設定"
open-in-app: "アプリで開く"
add-app: "アプリを追加"
rename-file: "ファイル名の変更"
input-new-file-name: "新しいファイル名を入力してください"
copied: "コピー完了"
copied-url-to-clipboard: "URLをクリップボードにコピーしました"
else-files: "Anderes…"
set-as-avatar: "Als Avatar festlegen"
set-as-banner: "Setze als Banner"
open-in-app: "In der App öffnen"
add-app: "App hinzufügen"
rename-file: "Datei umbennen"
input-new-file-name: "Geben Sie den neuen Dateinamen an"
copied: "Kopieren erfolgreich"
copied-url-to-clipboard: "URL wurde in die Zwischenablage kopiert"
desktop/views/components/drive.folder.vue:
unable-to-process: "操作を完了できません"
circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
unhandled-error: "不明なエラー"
unable-to-process: "Der Vorgang konnte nicht beendet werden"
circular-reference-detected: "Das Zielverzeichnis ist ein Unterverzeichnis des Verzeichnisses welches du verschieben möchtest"
unhandled-error: "Unbekannter Fehler"
contextmenu:
move-to-this-folder: "このフォルダへ移動"
show-in-new-window: "新しいウィンドウで表示"
rename: "名前を変更"
rename-folder: "フォルダ名の変更"
input-new-folder-name: "新しいフォルダ名を入力してください"
move-to-this-folder: "Verschiebe in diesen Ordner"
show-in-new-window: "In einem neuen Fenster anzeigen"
rename: "Umbenennen"
rename-folder: "Ordner umbenennen"
input-new-folder-name: "Namen für neuen Ordner eingeben"
desktop/views/components/drive.nav-folder.vue:
drive: "ドライブ"
drive: "Laufwerk"
desktop/views/components/drive.vue:
search: "検索"
load-more: "もっと読み込む"
search: "Suchen"
load-more: "Mehr laden"
empty-draghover: "Herzlich Willkommen!"
empty-drive: "Dein Speicher ist leer"
empty-drive-description: "Du kannst rechts klicken und \"Datei hochladen\" auswählen oder eine Datei per Drag and Drop auf das Fenster ziehen."
@ -253,46 +314,29 @@ desktop/views/components/drive.vue:
upload: "Eine Datei hochladen"
url-upload: "Von einer URL hochladen"
desktop/views/components/follow-button.vue:
unfollow: "フォロー解除"
follow: "フォローする"
following: "Folge ich"
follow: "Folgen"
request-pending: "Ausstehend"
follow-request: "Follower-Anfragen"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
desktop/views/components/followers.vue:
empty: "フォロワーはいないようです。"
empty: "Dir scheint niemand zu folgen."
desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
empty: "Du folgst niemanden"
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
title: "Wem folgen?"
empty: "Der ausgewählte Benutzer konnte nicht gefunden werden."
fetching: "Lade…"
refresh: "Mehr"
close: "Schließen"
desktop/views/components/game-window.vue:
game: "オセロ"
game: "Othello"
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
trends: "トレンド"
photostream: "フォトストリーム"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "投票"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "Spende"
nav: "Navigation"
tips: "Tipps"
done: "Verbunden"
add-widget: "Widget hinzufügen:"
add: "Hinzufügen"
desktop/views/input-dialog.vue:
cancel: "Abbrechen"
@ -303,19 +347,20 @@ desktop/views/components/messaging-window.vue:
title: "Nachrichten"
desktop/views/components/note-detail.vue:
more: "Lade weitere Konversationen"
private: "(Dieser Post ist privat)"
is-renote: "がRenote"
private: "Dieser Post ist privat"
deleted: "Dieser Beitrag wurde entfernt"
reposted-by: "Repostet von {}"
location: "Ort"
renote: "Anmerkung"
add-reaction: "Reaktion hinzufügen"
desktop/views/components/note-detail.sub.vue:
private: "(Dieser Post ist privat)"
desktop/views/components/notes.note.vue:
reposted-by: "Auch geteilt von"
reply: "Antworten"
renote: "Anmerken"
add-reaction: "Eine Reaktion hinzufügen"
detail: "Zeige Details"
private: "Dieser Beitrag ist eine privat"
deleted: "Dieser Beitrag wurde entfernt"
desktop/views/components/notes.vue:
error: "Laden fehlgeschlagen."
retry: "Erneut versuchen"
@ -323,10 +368,9 @@ desktop/views/components/notifications.vue:
more: "Mehr"
empty: "Keine Benachrichtigungen"
desktop/views/components/post-form.vue:
note-placeholder: "Was ist bei dir los?"
reply-placeholder: "Antworte auf diese Anmerkung..."
quote-placeholder: "Zitiere diese Anmerkung..."
note: "Post"
submit: "Beitragsform"
reply: "Antworten"
renote: "Anmerkung"
posted: "Gepostet!"
@ -357,54 +401,56 @@ desktop/views/components/renote-form.vue:
success: "Weitergesagt!"
failure: "Weitersagen fehlgeschlagen"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
title: "Bist du dir sicher, dass du das reposten willst?"
desktop/views/components/settings-window.vue:
settings: "Experimentelles"
desktop/views/components/settings.vue:
profile: "プロフィール"
notification: "通知"
apps: "アプリ"
mute: "ミュート"
drive: "ドライブ"
security: "セキュリティ"
profile: "Profil"
notification: "Mitteilungen"
apps: "In App öffnen"
mute: "Stummschalten"
drive: "Dateien vom Drive anfügen"
security: "Sicherheit"
signin: "サインイン履歴"
password: "パスワード"
2fa: "二段階認証"
other: "その他"
license: "ライセンス"
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
api-via-stream: "ストリームを経由したAPIリクエスト"
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
password: "Passwort"
2fa: "Zwei-Faktor-Authentifizierung"
other: "Anderes"
license: "Lizenz"
behaviour: "Verhalten"
fetch-on-scroll: "Aktualisieren beim scrollen"
fetch-on-scroll-desc: "Wenn du runterscrollst empfängt die Seite automatisch zusätzliche Inhalte."
auto-popout: "Automatische Pop-out Fenster"
auto-popout-desc: "Pop-out ein offenes Fenster wenn möglich. Diese Einstellung wird im Browser gespeichert."
advanced: "Erweiterte Einstellungen"
api-via-stream: "API-Anfrage via stream"
api-via-stream-desc: "API-Anfrage über WebSocket statt native Aktualisierungs-API (für bessere Leistung). Diese Einstellung wird im Browser gespeichert."
display: "Erscheinungsbild und Anzeige"
customize: "Startseite anpassen"
dark-mode: "Nacht Modus"
circle-icons: "Kreisförmige Icons"
gradient-window-header: "Übergang in Fensterköpfen"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
show-maps: "マップの自動展開"
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "ボリューム"
test: "テスト"
mobile: "モバイル"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
show-reply-target: "Zeige Antworten"
show-my-renotes: "Zeige meine Reposts auf der Zeitleiste"
show-renoted-my-notes: "Zeige meine Reposts, die geteilt wurden, auf der Zeitleiste"
show-maps: "Karte anzeigen"
show-maps-desc: "Zeige den Standort zu diesem Beitrag automatisch an."
sound: "Ton"
enable-sounds: "Ton aktivieren"
enable-sounds-desc: "Spiel einen Ton ab beim Erhalten eines Beitrags bzw. einer Nachricht. Diese Einstellung wird im Browser gespeichert."
volume: "Lautstärke"
test: "Test"
mobile: "Mobil"
disable-via-mobile: "Diesen Beitrag nicht mit 'vom Handy' absenden"
language: "Sprache"
pick-language: "Sprache auswählen"
recommended: "Empfohlen"
auto: "Automatisch"
specify-language: "Sprache auswählen"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-warn: "Der Cache deines Benutzerkontos (Info, Beiträge, Antworten, Direktnachrichten, Einstellungen), die lokal im Browser gespeichert sind werden gelöscht.\nDu musst die Seite aktualisieren nachdem du aufgeräumt hast."
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
@ -413,9 +459,9 @@ desktop/views/components/settings.vue:
operator: "このサーバーの運営者"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
update-checking: "アップデートを確認中"
do-update: "アップデートを確認"
latest-version: "Neuste Version:"
update-checking: "Suche nach Updates"
do-update: "Suche nach Updates"
update-settings: "詳細設定"
prevent-update: "アップデートを延期する(非推奨)"
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
@ -427,20 +473,20 @@ desktop/views/components/settings.vue:
debug-mode: "デバッグモードを有効にする"
debug-mode-desc: "この設定はブラウザに記憶されます。"
experimental: "実験的機能を有効にする"
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
tools: "ツール"
task-manager: "タスクマネージャ"
experimental-desc: "Experimentelle Funktionen können die Stabilität von Misskey beeinträchtigen. Diese Einstellung wird im Browser gespeichert."
tools: "Werkzeuge"
task-manager: "Taskmanager"
third-parties: "サードパーティ"
desktop/views/components/settings.2fa.vue:
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
detail: "詳細..."
url: "https://www.google.co.jp/intl/ja/landing/2step/"
url: "https://www.google.de/intl/de/landing/2step/"
caution: "登録したデバイスを紛失するなどした場合、Misskeyにサインインできなくなりますのでご注意ください。"
register: "デバイスを登録する"
already-registered: "既に設定は完了しています。"
unregister: "設定を解除"
unregistered: "二段階認証が無効になりました。"
enter-password: "パスワードを入力してください"
register: "Ein Gerät registrieren"
already-registered: "Das Gerät wurde bereits registriert"
unregister: "Abschalten"
unregistered: "Zwei-Faktor-Authentifizierung wurde deaktiviert."
enter-password: "Bitte Passwort eingeben"
authenticator: "まず、Google Authenticatorをお使いのデバイスにインストールします:"
howtoinstall: "インストール方法はこちら"
scan: "次に、表示されているQRコードをスキャンします:"
@ -455,16 +501,16 @@ desktop/views/components/settings.api.vue:
regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。"
regenerate-token: "トークンを再生成"
token: "Token:"
enter-password: "パスワードを入力してください"
desktop/views/components/settings.app.vue:
enter-password: "Bitte Passwort eingeben"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
desktop/views/components/settings.mute.vue:
no-users: "ミュートしているユーザーはいません"
desktop/views/components/settings.password.vue:
reset: "パスワードを変更する"
enter-current-password: "現在のパスワードを入力してください"
enter-new-password: "新しいパスワードを入力してください"
enter-new-password-again: "もう一度新しいパスワードを入力してください"
enter-current-password: "Derzeitiges Passwort eingeben"
enter-new-password: "Neues Passwort eingeben"
enter-new-password-again: "Neues Passwort erneut eingeben"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
desktop/views/components/settings.profile.vue:
@ -475,12 +521,15 @@ desktop/views/components/settings.profile.vue:
description: "自己紹介"
birthday: "誕生日"
save: "Profil aktualisieren"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
title: "Taskmanager"
desktop/views/components/timeline.vue:
home: "Home"
local: "Lokal"
@ -491,12 +540,14 @@ desktop/views/components/ui.header.account.vue:
drive: "Speicher"
favorites: "Favoriten"
lists: "Listen"
follow-requests: "フォロー申請"
customize: "Anpassen"
settings: "Einstellungen"
signout: "Ausloggen"
dark: "Verdunkeln"
desktop/views/components/ui.header.nav.vue:
home: "Home"
deck: "デッキ"
messaging: "Nachrichten"
game: "Spielen"
desktop/views/components/ui.header.notifications.vue:
@ -505,7 +556,12 @@ desktop/views/components/ui.header.post.vue:
post: "Einen neuen Post erstellen"
desktop/views/components/ui.header.search.vue:
placeholder: "Suchen"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
desktop/views/components/user-preview.vue:
notes: "投稿"
@ -515,12 +571,27 @@ desktop/views/components/users-list.vue:
all: "すべて"
iknow: "知り合い"
load-more: "もっと"
fetching: "読み込んでいます"
fetching: "Lade…"
desktop/views/components/users-list-item.vue:
followed: "フォローされています"
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
signin: "ログイン"
signup: "新規登録"
signin-button: "やってる"
signup-button: "やる"
timeline: "タイムライン"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
@ -576,13 +647,12 @@ desktop/views/widgets/notifications.vue:
title: "通知"
settings: "通知の設定"
desktop/views/widgets/polls.vue:
title: "投票"
title: "アンケート"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/post-form.vue:
title: "投稿"
note: "投稿"
placeholder: "いまどうしてる?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "もっと読み込む"
nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
folder-name: "フォルダー名"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "名前を変更"
mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "ハッシュ (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
unfollow: "フォロー解除"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "Lade…"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
reposted-by: "{}がRenote"
more: "もっと見る"
less: "隠す"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-detail.vue:
reply: "返信"
reaction: "リアクション"
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。"
retry: "リトライ"
mobile/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加"
submit: "投稿"
reply: "返信"
renote: "Renote"
renote-placeholder: "この投稿を引用... (オプション)"
quote-placeholder: "この投稿を引用... (オプション)"
reply-placeholder: "この投稿への返信..."
note-placeholder: "いまどうしてる?"
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "お使いの端末は位置情報に対応していません"
error: "エラー"
username-prompt: "ユーザー名を入力してください"
mobile/views/components/sub-note-content.vue:
media-count: "{}個のメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "投稿がありません"
load-more: "もっと"
mobile/views/components/ui.nav.vue:
home: "ホーム"
timeline: "タイムライン"
notifications: "通知"
messaging: "メッセージ"
follow-requests: "フォロー申請"
search: "検索"
drive: "ドライブ"
favorites: "お気に入り"
user-lists: "リスト"
widgets: "ウィジェット"
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
@ -653,18 +772,30 @@ mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
load-more: "もっと"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
title: "リスト"
enter-list-name: "リスト名を入力してください"
mobile/views/pages/drive.vue:
drive: "ドライブ"
more: "もっと見る"
mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー"
mobile/views/pages/following.vue:
following-of: "{}のフォロー"
mobile/views/pages/home.vue:
timeline: "タイムライン"
home: "ホーム"
local: "ローカル"
global: "グローバル"
mobile/views/pages/messaging.vue:
messaging: "メッセージ"
mobile/views/pages/messaging-room.vue:
messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
mobile/views/pages/note.vue:
title: "投稿"
prev: "前の投稿"
@ -673,8 +804,7 @@ mobile/views/pages/notifications.vue:
notifications: "通知"
read-all: "すべての通知を既読にしますか?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
title: "Profil"
name: "名前"
account: "アカウント"
location: "場所"
@ -682,9 +812,9 @@ mobile/views/pages/settings/settings.profile.vue:
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
save: "保存"
saved: "プロフィールを保存しました"
saved: "Profil wurde aktualisiert"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
mobile/views/pages/search.vue:
@ -698,7 +828,7 @@ mobile/views/pages/settings.vue:
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
specify-language: "Sprache auswählen"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@ -713,15 +843,17 @@ mobile/views/pages/settings.vue:
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
update-checking: "アップデートを確認中"
check-for-updates: "アップデートを確認"
latest-version: "Neuste Version:"
update-checking: "Suche nach Updates"
check-for-updates: "Suche nach Updates"
no-updates: "利用可能な更新はありません"
no-updates-desc: "お使いのMisskeyは最新です。"
update-available: "新しいバージョンが利用可能です"

View File

@ -3,7 +3,9 @@ meta:
lang: "English"
divider: ""
common:
misskey: "Share everything with others using Misskey."
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Thanks for finding Misskey. Misskey is a <b>decentralized microblogging platform</b> born on Earth. Since it exists within Fediverse (a universe where various social media platforms are organized) it is mutually linked with other social media platforms. Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet?"
time:
unknown: "unknown"
future: "future"
@ -33,14 +35,61 @@ common:
angry: "Angry"
confused: "Confused"
pudding: "Pudding"
note-placeholders:
a: "What are you doing?"
b: "What's happening?"
c: "Whats on your mind?"
d: "Do you want to say something?"
e: "Write here!"
f: "Waiting for your writing."
delete: "Delete"
loading: "Loading"
ok: "OK"
update-available: "A new version of Misskey is now available({newer}, current is {current}). Reload the page to apply the update."
my-token-regenerated: "Your token has been generated. You will now get logged out."
update-available: "A new version of Misskey is now available({newer}, the current version is {current}). Reload the page to apply updates."
my-token-regenerated: "Your token has been renewed so you will be signed out."
widgets:
analog-clock: "Analog clock"
profile: "Profile"
calendar: "Calendar"
timemachine: "Calendar (Time Machine)"
activity: "Activity"
rss: "RSS reader"
memo: "Sticky note"
trends: "Trends"
photo-stream: "Photo stream"
posts-monitor: "Chart of posts"
slideshow: "Slideshow"
version: "Version"
broadcast: "Broadcast"
notifications: "Notifications"
users: "Recommended users"
polls: "Polls"
post-form: "Post form"
messaging: "Messages"
server: "Server info"
donation: "Donation"
nav: "Navigation"
tips: "Tips"
hashtags: "Hashtags"
deck:
widgets: "Widgets"
home: "Home"
local: "Local"
global: "Global"
notifications: "Notifications"
list: "List"
swap-left: "Move left"
swap-right: "Move right"
swap-up: "Move upward"
swap-down: "Move downward"
remove: "Remove"
add-column: "Add a column"
rename: "Rename"
stack-left: "Stack to left"
pop-right: "Pop to right"
common/views/components/connect-failed.vue:
title: "Unable to connect to the server"
description: "There is a problem either with your internet connection, or the server may be down or under maintenance. Please {try again} later."
description: "There is a problem either with your Internet connection, or the server may be down or under maintenance. Please {try again} later."
thanks: "Thank you for using Misskey."
troubleshoot: "Troubleshoot"
common/views/components/connect-failed.troubleshooter.vue:
@ -48,34 +97,34 @@ common/views/components/connect-failed.troubleshooter.vue:
network: "Network connection"
checking-network: "Checking network connection"
internet: "Internet connection"
checking-internet: "Checking internet connection"
checking-internet: "Checking Internet connection"
server: "Server connection"
checking-server: "Checking server connection"
finding: "Finding a problem"
no-network: "There is no Network connection"
no-network-desc: "Please make sure you are connected to the Network."
finding: "Searching for issues"
no-network: "No connection"
no-network-desc: "Please make sure you are connected to the network."
no-internet: "There is no Internet connection"
no-internet-desc: "Please make sure you are connected to the Internet."
no-server: "Unable to connect to the server"
no-server-desc: "The network connection of your PC is normal, but you could not connect to Misskey's server. There is a possibility that the server is either down or under maintenance, please try again later."
success: "Successfully connected to Misskey's server"
no-server: "Unable to connect to the Misskey server"
no-server-desc: "The network connection of your PC is normal, but you could not connect to the Misskey server. There is a possibility that the server is either down or under maintenance, please try again later."
success: "Successfully connected to the Misskey server"
success-desc: "It seems to be able to connect. Please reload the page."
flush: "Clean cache"
set-version: "Specify version"
common/views/components/messaging.vue:
search-user: "Find an user"
search-user: "Find a user"
you: "You"
no-history: "No history"
common/views/components/messaging-room.vue:
empty: "No conversations"
more: "More"
empty: "You haven't messaged this user"
more: "Read more"
no-history: "There is no more history"
resize-form: "Drag to resize"
new-message: "New message"
common/views/components/messaging-room.form.vue:
input-message-here: "Enter message here"
send: "Send"
attach-from-local: "Attach files from your pc"
attach-from-local: "Attach files from your PC"
attach-from-drive: "Attach files from your Drive"
common/views/components/messaging-room.message.vue:
is-read: "Read"
@ -92,6 +141,8 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "Favorite this note"
pin: "Pin to profile page"
delete: "Delete"
delete-confirm: "Are you sure you want to delete this post?"
remote: "Show on origin"
common/views/components/poll.vue:
vote-to: "Vote for '{}'"
@ -105,7 +156,7 @@ common/views/components/poll-editor.vue:
choice-n: "Choice {}"
remove: "Remove this choice"
add: "+ Add a choice"
destroy: "Destroy this poll"
destroy: "Cancel this poll"
common/views/components/reaction-picker.vue:
choose-reaction: "Choose a reaction"
common/views/components/signin.vue:
@ -121,14 +172,14 @@ common/views/components/signup.vue:
unavailable: "Unavailable"
error: "Network error"
invalid-format: "Only use letters, numbers and -."
too-short: "Please enter at least 1 character"
too-short: "Please enter at least 1 character!"
too-long: "Please enter up to 20 characters."
password: "Password"
password-placeholder: "We recommend more than 8 characters."
weak-password: "Weak"
normal-password: "So so"
strong-password: "Strong"
retype: "Type again"
weak-password: "Weak password"
normal-password: "Fair password"
strong-password: "Strong password"
retype: "Re-enter"
retype-placeholder: "Confirm your password"
password-matched: "OK"
password-not-matched: "Doesn't match"
@ -145,12 +196,21 @@ common/views/components/stream-indicator.vue:
common/views/components/twitter-setting.vue:
description: "If you connect your Twitter account to your Misskey account, you will be able to see your Twitter account information on your profile and you can sign-in using Twitter."
connected-to: "You are connected to this Twitter account"
detail: "Detail..."
detail: "Details..."
reconnect: "Reconnect"
connect: "Link your twitter account"
connect: "Link your Twitter account"
disconnect: "Disconnect"
common/views/components/uploader.vue:
waiting: "Waiting"
common/views/components/visibility-chooser.vue:
public: "Public"
home: "Home"
home-desc: "Post to the home timeline only"
followers: "Followers"
followers-desc: "Post to followers only"
specified: "Direct"
specified-desc: "Post to specified users only"
private: "Private"
common/views/widgets/broadcast.vue:
fetching: "Fetching"
no-broadcasts: "No broadcasts"
@ -158,22 +218,23 @@ common/views/widgets/broadcast.vue:
next: "Next"
common/views/widgets/donation.vue:
title: "Donation"
text: "To keep Misskey up and running we spend money for our domain name, servers and so on.. We don't get any money from it, and we would really appreciate it if you could donate. If you're interested contact {}. Thank you for your contribution!"
text: "To keep Misskey up and running we spend money for our domain name, servers and so on. Since we don't get money from advertisements, we count on donations from all of you. If you're interested contact {}. Thank you for your contribution!"
common/views/widgets/photo-stream.vue:
title: "Photostream"
no-photos: "No photos"
common/views/widgets/posts-monitor.vue:
title: "Chart of posts"
toggle: "Toggle views"
common/views/widgets/hashtags.vue:
title: "Hashtags"
count: "{} users mentioned"
common/views/widgets/server.vue:
title: "Server info"
toggle: "Toggle views"
commons/views/widgets/visibility-chooser.vue:
public: "Public"
home: "Home"
home-desc: "ホームタイムラインにのみ公開"
followers: "Followers"
followers-desc: "自分のフォロワーにのみ公開"
specified: "Direct"
specified-desc: "指定したユーザーにのみ公開"
private: "Private"
common/views/widgets/memo.vue:
title: "Sticky note"
memo: "Write here!"
save: "Save"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -186,9 +247,9 @@ desktop/views/components/calendar.vue:
title: "{1} / {2}"
prev: "Previous month"
next: "Next month"
go: "Click to naviguate"
go: "Click to navigate"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
choose-file: "Choosing files"
upload: "Upload files from your PC"
cancel: "Cancel"
ok: "OK"
@ -253,19 +314,21 @@ desktop/views/components/drive.vue:
upload: "Upload a file"
url-upload: "Upload from a URL"
desktop/views/components/follow-button.vue:
unfollow: "Unfollow"
following: "Following"
follow: "Follow"
request-pending: "フォロー許可待ち"
follow-request: "Follow request"
desktop/views/components/followers-window.vue:
followers: "Followers of {}"
followers: "{}'s followers"
desktop/views/components/followers.vue:
empty: "Seems that you dont have any followers."
empty: "Seems like you dont have any followers."
desktop/views/components/following-window.vue:
following: "Following {}"
desktop/views/components/following.vue:
empty: "You dont follow anyone."
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "Similar users werent found."
title: "Recommended users:"
empty: "Couldn't find any recommended users."
fetching: "Loading…"
refresh: "More"
close: "Close"
@ -274,25 +337,6 @@ desktop/views/components/game-window.vue:
desktop/views/components/home.vue:
done: "Submit"
add-widget: "Add widget:"
profile: "Profile"
calendar: "Calendar"
timemachine: "Calendar (Time Machine)"
activity: "Activity"
rss: "RSS reader"
trends: "Trends"
photostream: "Photostream"
slideshow: "Slideshow"
version: "Version"
broadcast: "Broadcast"
notifications: "Notifications"
users: "Recommended users"
polls: "Polls"
post-form: "Post form"
messaging: "Messaging"
server: "Server info"
donation: "Donation"
nav: "Navigation"
tips: "Tips"
add: "Add"
desktop/views/input-dialog.vue:
cancel: "Cancel"
@ -303,19 +347,20 @@ desktop/views/components/messaging-window.vue:
title: "Messaging"
desktop/views/components/note-detail.vue:
more: "Load more conversations"
private: "(this post is private)"
is-renote: "がRenote"
private: "this post is private"
deleted: "this post has been deleted"
reposted-by: "Reposted by {}"
location: "Location"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue:
private: "(this post is private)"
renote: "Repost"
add-reaction: "Add a reaction"
desktop/views/components/notes.note.vue:
reposted-by: "Reposted by {}"
reply: "Reply"
renote: "Renote"
renote: "Repost"
add-reaction: "Add a reaction"
detail: "Show detail"
detail: "Show details"
private: "this post is private"
deleted: "this post has been deleted"
desktop/views/components/notes.vue:
error: "Loading failed."
retry: "Retry"
@ -323,25 +368,24 @@ desktop/views/components/notifications.vue:
more: "More"
empty: "No notifications"
desktop/views/components/post-form.vue:
note-placeholder: "What's happening?"
reply-placeholder: "Reply to this note..."
quote-placeholder: "Quote this note..."
note: "Post"
submit: "Post"
reply: "Reply"
renote: "Renote"
renote: "Repost"
posted: "Posted!"
replied: "Replied!"
reposted: "Reposted!"
note-failed: "Failed to note"
reply-failed: "Failed to reply"
renote-failed: "Failed to renote"
renote-failed: "Failed to repost"
posting: "Posting"
attach-media-from-local: "Attach media from your pc"
attach-media-from-local: "Attach media from your PC"
attach-media-from-drive: "Attach media from your Drive"
attach-cancel: "Cancel attachment"
insert-a-kao: "v(‘ω’)v"
create-poll: "Create a poll"
text-remain: "{} chars remaining"
text-remain: "{} characters remaining"
desktop/views/components/post-form-window.vue:
note: "New note"
reply: "Reply"
@ -352,12 +396,14 @@ desktop/views/components/progress-dialog.vue:
desktop/views/components/renote-form.vue:
quote: "Quote..."
cancel: "Cancel"
renote: "Renote"
renote: "Repost"
reposting: "Reposting..."
success: "Reposted!"
failure: "Failed to Renote"
failure: "Repost failed"
desktop/views/components/renote-form-window.vue:
title: "Are you sure you want to renote this note?"
title: "Are you sure you want to repost this?"
desktop/views/components/settings-window.vue:
settings: "Settings"
desktop/views/components/settings.vue:
profile: "Profile"
notification: "Notification"
@ -385,22 +431,22 @@ desktop/views/components/settings.vue:
gradient-window-header: "Use gradients on window headers"
post-form-on-timeline: "Display post form at the top of the timeline"
show-reply-target: "Display reply target"
show-my-renotes: "Show my renote in the timeline"
show-renoted-my-notes: "Show renoted my post in the timeline"
show-my-renotes: "Show my reposts in the timeline"
show-renoted-my-notes: "Show my posts that have been shared in the timeline"
show-maps: "Show the map"
show-maps-desc: "Show the map of the location attached to the post."
show-maps-desc: "Automatically show the location on the map attached to this post."
sound: "Sound"
enable-sounds: "Enable sound"
enable-sounds-desc: "Play a sound when you received a post/message. This setting is stored in the browser."
enable-sounds-desc: "Play a sound when you receive a post/message. This setting is stored in the browser."
volume: "Volume"
test: "Test"
mobile: "Mobile"
disable-via-mobile: "Not mark the post as 'from mobile'"
disable-via-mobile: "Don't mark the post as 'from mobile'"
language: "Language"
pick-language: "Select a language"
recommended: "Recommended"
auto: "Auto"
specify-language: "Specify the language"
specify-language: "Specify language"
language-desc: "You need to reload the page for the changes to take effect."
cache: "Cache"
clean-cache: "Cleanup"
@ -417,12 +463,12 @@ desktop/views/components/settings.vue:
update-checking: "Checking for updates"
do-update: "Check for update"
update-settings: "Advanced settings"
prevent-update: "アップデートを延期する(非推奨)"
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
prevent-update: "Postpone updates (not recommended)"
prevent-update-desc: "Even if you turn this setting on updates may apply. This setting is valid only for this device."
no-updates: "No updates available"
no-updates-desc: "Your Misskey is up to date."
update-available: "New version is available!"
update-available-desc: "To reload the page and updates are applied."
update-available-desc: "The updates will apply if you reload the page again."
advanced-settings: "Advanced"
debug-mode: "Enable the debug mode"
debug-mode-desc: "This setting is stored in the browser."
@ -456,8 +502,8 @@ desktop/views/components/settings.api.vue:
regenerate-token: "Regenerate the token"
token: "Token:"
enter-password: "Please enter the password"
desktop/views/components/settings.app.vue:
no-apps: "No authorized apps"
desktop/views/components/settings.apps.vue:
no-apps: "No linked applications"
desktop/views/components/settings.mute.vue:
no-users: "No muted users"
desktop/views/components/settings.password.vue:
@ -475,10 +521,13 @@ desktop/views/components/settings.profile.vue:
description: "Description"
birthday: "Birthday"
save: "Update profile"
is-bot: "This account is a Bot"
is-cat: "This account is a Cat"
desktop/views/components/sub-note-content.vue:
hidden: "(this post is private)"
media: " media"
poll: "Polls"
private: "this post is private"
deleted: "this post has been deleted"
media-count: "{} media attached"
poll: "Poll"
desktop/views/components/taskmanager.vue:
title: "Task Manager"
desktop/views/components/timeline.vue:
@ -491,12 +540,14 @@ desktop/views/components/ui.header.account.vue:
drive: "Drive"
favorites: "Favorites"
lists: "Lists"
follow-requests: "Follow requests"
customize: "Customize"
settings: "Settings"
signout: "Sign out"
dark: "Fall in dark"
desktop/views/components/ui.header.nav.vue:
home: "Home"
deck: "Deck"
messaging: "Messages"
game: "Play Othello"
desktop/views/components/ui.header.notifications.vue:
@ -505,7 +556,12 @@ desktop/views/components/ui.header.post.vue:
post: "Compose new Post"
desktop/views/components/ui.header.search.vue:
placeholder: "Search"
desktop/views/components/received-follow-requests-window.vue:
title: "Follow requests"
accept: "Accept"
reject: "Reject"
desktop/views/components/user-lists-window.vue:
title: "User lists"
create-list: "Create list"
desktop/views/components/user-preview.vue:
notes: "Posts"
@ -521,6 +577,21 @@ desktop/views/components/users-list-item.vue:
desktop/views/components/window.vue:
popout: "Popout"
close: "Close"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "Only media posts"
is-media-view: "Media view"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "Reposted by {}"
private: "this post is private"
deleted: "this post has been deleted"
desktop/views/pages/welcome.vue:
about: "about"
gotit: "Got it!"
signin: "Log In"
signup: "Sign up"
signin-button: "Log in"
signup-button: "Sign up"
timeline: "Timeline"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
@ -582,7 +653,6 @@ desktop/views/widgets/polls.vue:
desktop/views/widgets/post-form.vue:
title: "Post"
note: "Post"
placeholder: "What's happening?"
desktop/views/widgets/profile.vue:
update-banner: "Click to edit your banner"
update-avatar: "Click to edit your avatar"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "Load more"
nothing-in-drive: "Nothing"
folder-is-empty: "This folder is empty"
prompt: "What do you want to do? (Please enter a number): <1 → Upload a file | 2 → Upload a file from a URL | 3 → Create a folder | 4 → Change this folder's name | 5 → Move this folder | 6 → Delete this folder>"
deletion-alert: "Sorry! Deleting a folder is not yet implemented."
folder-name: "Folder name"
root-rename-alert: "You're in the root; it can't be renamed because it's not a folder. Navigate to a folder you want to rename and try again."
root-move-alert: "You're in the root; it can't be moved because it's not a folder. Navigate to a folder you want to move and try again."
url-prompt: "URL of file you want to upload"
uploading: "Upload requested. It may take some time for the upload to complete."
mobile/views/components/drive-file-detail.vue:
rename: "Rename"
mobile/views/components/drive-file-chooser.vue:
select-file: "Choose a file"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "Hash (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "Following"
follow: "Follow"
unfollow: "Unfollow"
request-pending: "フォロー許可待ち"
follow-request: "Follow request"
mobile/views/components/friends-maker.vue:
title: "Let's follow users"
empty: "Featured user was not found."
fetching: "Loading"
refresh: "See more"
close: "Close"
mobile/views/components/note.vue:
reposted-by: "Renoted by {}"
reposted-by: "Reposted by {}"
more: "See more"
less: "Hide"
private: "this post is private"
deleted: "this post has been deleted"
location: "Location"
mobile/views/components/note-detail.vue:
reply: "Reply"
reaction: "Reaction"
reposted-by: "Reposted by {}"
private: "this post is private"
deleted: "this post has been deleted"
location: "Location"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "Failed to load."
retry: "Retry"
mobile/views/components/notifications.vue:
more: "More"
empty: "No notifications"
mobile/views/components/post-form.vue:
add-visible-user: "Add a user"
submit: "Post"
reply: "Reply"
renote: "Renote"
renote-placeholder: "Quote this post. (optional)"
renote: "Repost"
quote-placeholder: "Quote this post... (optional)"
reply-placeholder: "Reply to this note..."
note-placeholder: "What's happening?"
cw-placeholder: "Comments about content (optional)"
location-alert: "Your device does not support location services"
error: "Error"
username-prompt: "Enter user name"
mobile/views/components/sub-note-content.vue:
media-count: "{} media"
private: "this post is private"
deleted: "this post has been deleted"
media-count: "{} media attached"
poll: "Poll"
mobile/views/components/timeline.vue:
empty: "No notes"
load-more: "More"
mobile/views/components/ui.nav.vue:
home: "Home"
timeline: "Timeline"
notifications: "Notifications"
messaging: "Messages"
follow-requests: "Follow requests"
search: "Search"
drive: "Drive"
favorites: "Favorites"
user-lists: "Lists"
widgets: "Widgets"
game: "Games"
darkmode: "Dark mode"
settings: "Settings"
about: "About Misskey"
mobile/views/components/user-timeline.vue:
@ -653,18 +772,30 @@ mobile/views/components/users-list.vue:
all: "All"
known: "You know"
load-more: "More"
mobile/views/pages/favorites.vue:
title: "Favorites"
mobile/views/pages/user-lists.vue:
title: "Lists"
enter-list-name: "Enter list name"
mobile/views/pages/drive.vue:
drive: "Drive"
more: "Load more"
mobile/views/pages/followers.vue:
followers-of: "Followers of {}"
mobile/views/pages/following.vue:
following-of: "Following of {}"
mobile/views/pages/home.vue:
timeline: "Timeline"
home: "Home"
local: "Local"
global: "Global"
mobile/views/pages/messaging.vue:
messaging: "Messaging"
mobile/views/pages/messaging-room.vue:
messaging: "Messaging"
mobile/views/pages/received-follow-requests.vue:
title: "Follow requests"
accept: "Accept"
reject: "Reject"
mobile/views/pages/note.vue:
title: "Post"
prev: "Previous note"
@ -674,7 +805,6 @@ mobile/views/pages/notifications.vue:
read-all: "Are you sure you want to mark all unread notifications as read?"
mobile/views/pages/settings/settings.profile.vue:
title: "Profile"
will-be-published: "※公開されます"
name: "Name"
account: "Account"
location: "Location"
@ -682,7 +812,7 @@ mobile/views/pages/settings/settings.profile.vue:
birthday: "Birthday"
avatar: "Avatar"
banner: "Banner"
is-bot: "This account is a Bot"
is-cat: "This account is a Cat"
save: "Update profile"
saved: "Profile updated successfully"
uploading: "Uploading"
@ -705,14 +835,16 @@ mobile/views/pages/settings.vue:
circle-icons: "Use circle icons"
timeline: "Timeline"
show-reply-target: "Show reply target"
show-my-renotes: "Show my renotes"
show-renoted-my-notes: "Show renoted my notes"
show-my-renotes: "Show my reposts"
show-renoted-my-notes: "Show my reposted posts"
post-style: "Post design"
post-style-standard: "Standard"
post-style-smart: "Smart"
behavior: "Behavior"
fetch-on-scroll: "Fetch on scroll"
disable-via-mobile: "Without the \"mobile posts\" flag"
load-raw-images: "Show attached pictures in high-quality"
load-remote-media: "Show media on a remote server"
twitter: "Twitter integration"
twitter-connect: "Connect to your Twitter account"
twitter-reconnect: "Reconnect"

View File

@ -3,7 +3,9 @@ meta:
lang: "日本語"
divider: ""
common:
misskey: "Misskeyで皆と共有しよう。"
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
time:
unknown: "なぞのじかん"
future: "未来"
@ -33,11 +35,58 @@ common:
angry: "おこ"
confused: "こまこまのこまり"
pudding: "Pudding"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
c: "何をお考えですか?"
d: "言いたいことは?"
e: "ここに書いてください"
f: "あなたが書くのを待っています..."
delete: "削除"
loading: "読み込み中"
ok: "わかった"
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
widgets:
analog-clock: "アナログ時計"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
memo: "付箋"
trends: "トレンド"
photo-stream: "フォトストリーム"
posts-monitor: "投稿チャート"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "アンケート"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
deck:
widgets: "ウィジェット"
home: "ホーム"
local: "ローカル"
global: "グローバル"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
@ -92,6 +141,8 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
delete-confirm: "この投稿を削除しますか?"
remote: "投稿元で見る"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
@ -101,11 +152,11 @@ common/views/components/poll.vue:
show-result: "結果を見る"
voted: "投票済み"
common/views/components/poll-editor.vue:
no-only-one-choice: "投票には、選択肢が最低2つ必要です"
no-only-one-choice: "アンケートには、選択肢が最低2つ必要です"
choice-n: "選択肢{}"
remove: "この選択肢を削除"
add: "+選択肢を追加"
destroy: "投票を破棄"
destroy: "アンケートを破棄"
common/views/components/reaction-picker.vue:
choose-reaction: "リアクションを選択"
common/views/components/signin.vue:
@ -151,6 +202,15 @@ common/views/components/twitter-setting.vue:
disconnect: "切断する"
common/views/components/uploader.vue:
waiting: "待機中"
common/views/components/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@ -162,18 +222,19 @@ common/views/widgets/donation.vue:
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
common/views/widgets/posts-monitor.vue:
title: "投稿チャート"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
commons/views/widgets/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/memo.vue:
title: "付箋"
memo: "ここに書いて!"
save: "保存"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -253,8 +314,10 @@ desktop/views/components/drive.vue:
upload: "ファイルをアップロード"
url-upload: "URLからアップロード"
desktop/views/components/follow-button.vue:
unfollow: "フォロー解除"
follow: "フォローする"
following: "フォロー"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
desktop/views/components/followers.vue:
@ -274,25 +337,6 @@ desktop/views/components/game-window.vue:
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
trends: "トレンド"
photostream: "フォトストリーム"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "投票"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
add: "追加"
desktop/views/input-dialog.vue:
cancel: "キャンセル"
@ -303,19 +347,20 @@ desktop/views/components/messaging-window.vue:
title: "メッセージ"
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "(この投稿は非公開です)"
is-renote: "がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
reposted-by: "{}がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue:
private: "(この投稿は非公開です)"
desktop/views/components/notes.note.vue:
reposted-by: "{}がRenote"
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "読み込みに失敗しました。"
retry: "リトライ"
@ -323,10 +368,9 @@ desktop/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
desktop/views/components/post-form.vue:
note-placeholder: "いまどうしてる?"
reply-placeholder: "この投稿への返信..."
quote-placeholder: "この投稿を引用..."
note: "投稿"
submit: "投稿"
reply: "返信"
renote: "Renote"
posted: "投稿しました!"
@ -340,7 +384,7 @@ desktop/views/components/post-form.vue:
attach-media-from-drive: "ドライブからメディアを添付"
attach-cancel: "添付取り消し"
insert-a-kao: "v(‘ω’)v"
create-poll: "投票を作成"
create-poll: "アンケートを作成"
text-remain: "残り{}文字"
desktop/views/components/post-form-window.vue:
note: "新規投稿"
@ -358,6 +402,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/settings-window.vue:
settings: "設定"
desktop/views/components/settings.vue:
profile: "プロフィール"
notification: "通知"
@ -456,7 +502,7 @@ desktop/views/components/settings.api.vue:
regenerate-token: "トークンを再生成"
token: "Token:"
enter-password: "パスワードを入力してください"
desktop/views/components/settings.app.vue:
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
desktop/views/components/settings.mute.vue:
no-users: "ミュートしているユーザーはいません"
@ -475,10 +521,13 @@ desktop/views/components/settings.profile.vue:
description: "自己紹介"
birthday: "誕生日"
save: "保存"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@ -491,12 +540,14 @@ desktop/views/components/ui.header.account.vue:
drive: "ドライブ"
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "カスタマイズ"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
messaging: "メッセージ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
@ -505,7 +556,12 @@ desktop/views/components/ui.header.post.vue:
post: "新規投稿"
desktop/views/components/ui.header.search.vue:
placeholder: "検索"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
desktop/views/components/user-preview.vue:
notes: "投稿"
@ -521,6 +577,21 @@ desktop/views/components/users-list-item.vue:
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
signin: "ログイン"
signup: "新規登録"
signin-button: "やってる"
signup-button: "やる"
timeline: "タイムライン"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
@ -576,13 +647,12 @@ desktop/views/widgets/notifications.vue:
title: "通知"
settings: "通知の設定"
desktop/views/widgets/polls.vue:
title: "投票"
title: "アンケート"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/post-form.vue:
title: "投稿"
note: "投稿"
placeholder: "いまどうしてる?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "もっと読み込む"
nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
folder-name: "フォルダー名"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "名前を変更"
mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "ハッシュ (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
unfollow: "フォロー解除"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
reposted-by: "{}がRenote"
more: "もっと見る"
less: "隠す"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-detail.vue:
reply: "返信"
reaction: "リアクション"
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。"
retry: "リトライ"
mobile/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加"
submit: "投稿"
reply: "返信"
renote: "Renote"
renote-placeholder: "この投稿を引用... (オプション)"
quote-placeholder: "この投稿を引用... (オプション)"
reply-placeholder: "この投稿への返信..."
note-placeholder: "いまどうしてる?"
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "お使いの端末は位置情報に対応していません"
error: "エラー"
username-prompt: "ユーザー名を入力してください"
mobile/views/components/sub-note-content.vue:
media-count: "{}個のメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "投稿がありません"
load-more: "もっと"
mobile/views/components/ui.nav.vue:
home: "ホーム"
timeline: "タイムライン"
notifications: "通知"
messaging: "メッセージ"
follow-requests: "フォロー申請"
search: "検索"
drive: "ドライブ"
favorites: "お気に入り"
user-lists: "リスト"
widgets: "ウィジェット"
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
@ -653,18 +772,30 @@ mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
load-more: "もっと"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
title: "リスト"
enter-list-name: "リスト名を入力してください"
mobile/views/pages/drive.vue:
drive: "ドライブ"
more: "もっと見る"
mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー"
mobile/views/pages/following.vue:
following-of: "{}のフォロー"
mobile/views/pages/home.vue:
timeline: "タイムライン"
home: "ホーム"
local: "ローカル"
global: "グローバル"
mobile/views/pages/messaging.vue:
messaging: "メッセージ"
mobile/views/pages/messaging-room.vue:
messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
mobile/views/pages/note.vue:
title: "投稿"
prev: "前の投稿"
@ -674,7 +805,6 @@ mobile/views/pages/notifications.vue:
read-all: "すべての通知を既読にしますか?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
name: "名前"
account: "アカウント"
location: "場所"
@ -682,7 +812,7 @@ mobile/views/pages/settings/settings.profile.vue:
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
@ -713,6 +843,8 @@ mobile/views/pages/settings.vue:
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"

View File

@ -1,9 +1,11 @@
---
meta:
lang: "日本語"
lang: "Français"
divider: ""
common:
misskey: "Partagez avec les autres en utilisant Misskey"
misskey: "Une planète du fédiverse"
about-title: "Une ⭐ du fédiverse."
about: "Merci d'avoir découvert Misskey. Misskey est une <b>plateforme de micro-blogging distribuée</b> née sur Terre. Parce qu'il fait partie du Fédiverse (un univers composé de diverses plateformes de réseaux sociaux organisées), il est mutuellement connecté avec d'autres plateformes de réseaux sociaux. Désirez-vous prendre une pause, pendant un instant, loin de l'agitation de la ville et plonger dans un nouvel Internet ?"
time:
unknown: "inconnu"
future: "future"
@ -22,7 +24,7 @@ common:
wednesday: "M"
thursday: "J"
friday: "V"
saturday: ""
saturday: "S"
reactions:
like: "Aime"
love: "Adore"
@ -33,11 +35,58 @@ common:
angry: "En Colère"
confused: "Confus"
pudding: "Pudding"
note-placeholders:
a: "Que faîtes vous à cet instant ?"
b: "Quoi de neuf ?"
c: "Qu'avez-vous en tête ?"
d: "Voulez-vous exprimer quelque chose ?"
e: "Écrivez ici"
f: "En attente de vos écrits"
delete: "Supprimer"
loading: "Chargement"
ok: "OK"
update-available: "Une nouvelle version de Misskey est disponible({newer}, version actuelle: {current}). Recharger la page pour appliquer la mise à jour."
my-token-regenerated: "Votre token vient d'être généré, vous allez maintenant être déconnecté."
widgets:
analog-clock: "Horloge analogique"
profile: "Profil"
calendar: "Calendrier"
timemachine: "カレンダー(タイムマシン)"
activity: "Activité"
rss: "Lecteur de flux RSS"
memo: "Pense-bête"
trends: "Tendances"
photo-stream: "Flux de photos"
posts-monitor: "Graph des publications"
slideshow: "Diaporama"
version: "Version"
broadcast: "Diffusion"
notifications: "Notifications"
users: "Utilisateurs"
polls: "Sondages"
post-form: "投稿フォーム"
messaging: "Messagerie"
server: "Info sur le serveur"
donation: "Dons"
nav: "Navigation"
tips: "Conseils"
hashtags: "ハッシュタグ"
deck:
widgets: "Widgets"
home: "Accueil"
local: "Local"
global: "Global"
notifications: "Notifications"
list: "Liste"
swap-left: "Déplacer à gauche"
swap-right: "Déplacer à droite"
swap-up: "Vers le haut"
swap-down: "Vers le bas"
remove: "Supprimer"
add-column: "Ajouter une colonne"
rename: "Renommer"
stack-left: "Vers la gauche"
pop-right: "Vers la droite"
common/views/components/connect-failed.vue:
title: "Impossible de se connecter au server."
description: "Il y a soit un problème avec votre connexion internet, soit le serveur est hors-ligne ou en maintenance. Veuillez {ressayer} plus tard."
@ -60,8 +109,8 @@ common/views/components/connect-failed.troubleshooter.vue:
no-server-desc: "Votre connexion est OK, mais il a été impossible de vous connecter au serveur de Misskey. Il y a des chances que le serveur soit hors-ligne ou en maintenance, veuillez ressayer plus tard."
success: "Connexion au serveur de Misskey reussie!"
success-desc: "La connexion au serveur a été reussie. Veuillez recharger la page."
flush: "キャッシュの削除"
set-version: "バージョン指定"
flush: "Vider le cache"
set-version: "Choisissez une version"
common/views/components/messaging.vue:
search-user: "Trouver un utilisateur"
you: "Vous"
@ -88,10 +137,12 @@ common/views/components/nav.vue:
donors: "Donateurs"
repository: "Repo"
develop: "Développeurs"
feedback: "フィードバック"
feedback: "Remarques"
common/views/components/note-menu.vue:
favorite: "Favorite this note"
pin: "Épingler sur votre profile"
delete: "Supprimer"
delete-confirm: "Supprimer cette publication ?"
remote: "投稿元で見る"
common/views/components/poll.vue:
vote-to: "Voter pour '{}'"
@ -101,11 +152,11 @@ common/views/components/poll.vue:
show-result: "Montrer les résultats"
voted: "Voté"
common/views/components/poll-editor.vue:
no-only-one-choice: "Vous devez entrer au moins deux choix"
no-only-one-choice: "Vous devez saisir au moins deux choix."
choice-n: "Choix {}"
remove: "Supprimer ce choix"
add: "+ Ajouter un choix"
destroy: "Supprimer ce sondage"
destroy: "Annuler ce sondage"
common/views/components/reaction-picker.vue:
choose-reaction: "Choisissez votre réaction"
common/views/components/signin.vue:
@ -151,6 +202,15 @@ common/views/components/twitter-setting.vue:
disconnect: "Deconnecter"
common/views/components/uploader.vue:
waiting: "En attente"
common/views/components/visibility-chooser.vue:
public: "Public"
home: "Accueil"
home-desc: "Publier sur le fil d'Accueil uniquement"
followers: "Abonnés"
followers-desc: "Publier à vos abonnés uniquement"
specified: "Direct"
specified-desc: "Publier aux utilisateurs mentionnés"
private: "Privé"
common/views/widgets/broadcast.vue:
fetching: "Récuperation"
no-broadcasts: "No broadcasts"
@ -162,23 +222,24 @@ common/views/widgets/donation.vue:
common/views/widgets/photo-stream.vue:
title: "Flux de photo"
no-photos: "Pas de photos"
common/views/widgets/posts-monitor.vue:
title: "Graph des publications"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
common/views/widgets/server.vue:
title: "Info sur le serveur"
toggle: "Afficher les vues"
commons/views/widgets/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/memo.vue:
title: "Pense-bête"
memo: "Écrivez ici !"
save: "Enregistrer"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
replies: "Red ... Replies"
renotes: "Green ... Renotes"
notes: "Bleu ... Notes"
replies: "Rouge ... Réponses"
renotes: "Vert ... Partages"
desktop/views/components/activity.vue:
title: "Activitié"
toggle: "Afficher les vues"
@ -188,19 +249,19 @@ desktop/views/components/calendar.vue:
next: "Mois prochain"
go: "Cliquer pour naviguer"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
cancel: "キャンセル"
ok: "決定"
choose-prompt: "ファイルを選択"
choose-file: "Sélection de fichiers"
upload: "Téléverser des fichiers à partir de votre PC"
cancel: "Annuler"
ok: "OK"
choose-prompt: "Choisir un fichier"
desktop/views/components/choose-folder-from-drive-window.vue:
cancel: "キャンセル"
ok: "決定"
choose-prompt: "フォルダを選択"
cancel: "Annuler"
ok: "OK"
choose-prompt: "Choisir un dossier"
desktop/views/components/crop-window.vue:
skip: "クロップをスキップ"
cancel: "キャンセル"
ok: "決定"
skip: "Ignorer la découpe"
cancel: "Annuler"
ok: "OK"
desktop/views/components/drive-window.vue:
used: "utilisé"
drive: "Drive"
@ -253,82 +314,65 @@ desktop/views/components/drive.vue:
upload: "Uploader un fichier"
url-upload: "Uploader d'un URL"
desktop/views/components/follow-button.vue:
unfollow: "フォロー解除"
follow: "フォローする"
following: "Abonnements"
follow: "Suivre"
request-pending: "En attente d'approbation"
follow-request: "Demande d'abonnement"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
followers: "{} abonnés"
desktop/views/components/followers.vue:
empty: "フォロワーはいないようです。"
empty: "Il semble que vous n'avez pas encore d'abonnés."
desktop/views/components/following-window.vue:
following: "{} のフォロー"
following: "Suit {}"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
empty: "Vous ne suivez aucun compte."
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
title: "Utilisateurs recommandés :"
empty: "Impossible de trouver des utilisateurs à recommander."
fetching: "Chargement"
refresh: "Plus"
close: "Fermer"
desktop/views/components/game-window.vue:
game: "オセロ"
game: "Othello"
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
trends: "トレンド"
photostream: "フォトストリーム"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "投票"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
add: "追加"
done: "Envoyer"
add-widget: "Ajouter un widget"
add: "Ajouter"
desktop/views/input-dialog.vue:
cancel: "キャンセル"
ok: "決定"
cancel: "Annuler"
ok: "OK"
desktop/views/components/messaging-room-window.vue:
title: "メッセージ:"
title: "Messages :"
desktop/views/components/messaging-window.vue:
title: "Messagerie"
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "(この投稿は非公開です)"
is-renote: "がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue:
private: "(この投稿は非公開です)"
more: "Charger davantage de conversations"
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
reposted-by: "Republié par {}"
location: "Géolocalisation"
renote: "Republier"
add-reaction: "Ajouter votre reaction"
desktop/views/components/notes.note.vue:
reposted-by: "Reposté par {}"
reply: "Répondre"
renote: "Renote"
renote: "Republier"
add-reaction: "Ajouter votre reaction"
detail: "Afficher les détails"
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
desktop/views/components/notes.vue:
error: "読み込みに失敗しました。"
retry: "リトライ"
error: "Échec du chargement."
retry: "Réessayer"
desktop/views/components/notifications.vue:
more: "Plus"
empty: "Pas de notifications"
desktop/views/components/post-form.vue:
note-placeholder: "Qu'est-ce qui se passe?"
reply-placeholder: "Répondre à cette note"
quote-placeholder: "Citer cette note"
note: "Poster"
submit: "Poster"
reply: "Répondre"
renote: "Renote"
renote: "Republier"
posted: "Posté!"
replied: "Répondu!"
reposted: "Reposté!"
@ -348,16 +392,18 @@ desktop/views/components/post-form-window.vue:
attaches: "{} media joint(s)"
uploading-media: "Upload du media {}"
desktop/views/components/progress-dialog.vue:
waiting: "待機中"
waiting: "En attente"
desktop/views/components/renote-form.vue:
quote: "Citer..."
cancel: "Annuler"
renote: "Renote"
renote: "Republier"
reposting: "Repost en cours..."
success: "Reposté!"
failure: "La renote a échoué"
desktop/views/components/renote-form-window.vue:
title: "Êtes vous sûr de vouloir renote cette note?"
desktop/views/components/settings-window.vue:
settings: "Paramètres"
desktop/views/components/settings.vue:
profile: "Profil"
notification: "Notification"
@ -370,67 +416,67 @@ desktop/views/components/settings.vue:
2fa: "Vérification en deux étapes"
other: "Autres"
license: "License"
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
auto-popout: "ウィンドウの自動ポップアウト"
behaviour: "Comportement"
fetch-on-scroll: "Chargement lors du défilement"
fetch-on-scroll-desc: "Chargement automatique du contenu lors du défilement de la page."
auto-popout: "Fenêtre contextuelle automatique"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
api-via-stream: "ストリームを経由したAPIリクエスト"
advanced: "Paramètres avancés"
api-via-stream: "Requête API via le flux"
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
display: "Affichage et design"
customize: "Personnaliser l'Accueil"
dark-mode: "Mode nuit"
circle-icons: "Utiliser des icônes circulaires"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-my-renotes: "Afficher mes republications dans le fil"
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
show-maps: "マップの自動展開"
show-maps: "Afficher la carte"
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
sound: "Son"
enable-sounds: "Activer le son"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "ボリューム"
test: "テスト"
mobile: "モバイル"
volume: "Volume"
test: "Test"
mobile: "Mobile"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
language: "Langue"
pick-language: "Sélectionner une langue"
recommended: "Recommandé"
auto: "Automatique"
specify-language: "Spécifier la langue"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache: "Cache"
clean-cache: "Nettoyage"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
cache-cleared: "Cache nettoyé"
cache-cleared-desc: "Veuillez recharger la page."
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
update-checking: "アップデートを確認中"
do-update: "アップデートを確認"
update-settings: "詳細設定"
about: "À propose de Misskey"
operator: "L'admin de cette instance"
update: "Mise à jour de Misskey"
version: "Version :"
latest-version: "Dernière version :"
update-checking: "Recherche de mises à jour"
do-update: "Rechercher des mises à jour"
update-settings: "Paramètres avancés"
prevent-update: "アップデートを延期する(非推奨)"
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
no-updates: "利用可能な更新はありません"
no-updates-desc: "お使いのMisskeyは最新です。"
update-available: "新しいバージョンが利用可能です"
no-updates: "Aucune mise à jour disponible"
no-updates-desc: "Votre Misskey est à jour."
update-available: "Nouvelle version disponible !"
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
advanced-settings: "高度な設定"
debug-mode: "デバッグモードを有効にする"
debug-mode-desc: "この設定はブラウザに記憶されます。"
experimental: "実験的機能を有効にする"
advanced-settings: "Réglages avancés"
debug-mode: "Activer le mode debug"
debug-mode-desc: "Ce paramètre est stocké dans le navigateur."
experimental: "Activer les fonctionnalités expérimentales"
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
tools: "ツール"
task-manager: "タスクマネージャ"
third-parties: "サードパーティ"
tools: "Outils"
task-manager: "Gestionnaire de tâches"
third-parties: "Services tiers"
desktop/views/components/settings.2fa.vue:
intro: "Si vous configurez la vérication en deux étapes vous aurez non seulement besoin de votre mot de passe mais aussi un appareil déjà pré-enregistré(tel que votre smartphone) ce qui ameliora grandement la sécurité de votre compte."
detail: "Voir les détails..."
@ -454,10 +500,10 @@ desktop/views/components/settings.api.vue:
caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。"
regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。"
regenerate-token: "Regenerer le token"
token: "Token:"
token: "Jeton :"
enter-password: "Veuillez entrer le mot de passe"
desktop/views/components/settings.app.vue:
no-apps: "Aucune application authorisée"
desktop/views/components/settings.apps.vue:
no-apps: "Aucune application autorisée"
desktop/views/components/settings.mute.vue:
no-users: "Aucun utilisateurs mis en sourdine"
desktop/views/components/settings.password.vue:
@ -475,28 +521,33 @@ desktop/views/components/settings.profile.vue:
description: "Description"
birthday: "Date de naissance"
save: "Mettre à jour le profil"
is-bot: "Ce compte est un Bot"
is-cat: "Ce compte est un Chat"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
media-count: "{} médias attachés"
poll: "Sondage"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
title: "Gestionnaire de tâches"
desktop/views/components/timeline.vue:
home: "ホーム"
local: "ローカル"
global: "グローバル"
list: "リスト"
home: "Accueil"
local: "Local"
global: "Global"
list: "Listes"
desktop/views/components/ui.header.account.vue:
profile: "Votre profil"
drive: "Drive"
favorites: "Favorites"
lists: "リスト"
lists: "Listes"
follow-requests: "Demandes de suivi"
customize: "Modifications"
settings: "Réglages"
signout: "Déconnexion"
dark: "Fall in dark"
desktop/views/components/ui.header.nav.vue:
home: "Accueil"
deck: "デッキ"
messaging: "Messages"
game: "Jeux"
desktop/views/components/ui.header.notifications.vue:
@ -505,28 +556,48 @@ desktop/views/components/ui.header.post.vue:
post: "Composer un nouveau post"
desktop/views/components/ui.header.search.vue:
placeholder: "Chercher"
desktop/views/components/received-follow-requests-window.vue:
title: "Demandes de suivi"
accept: "Approuver"
reject: "Refuser"
desktop/views/components/user-lists-window.vue:
create-list: "リストを作成"
title: "Listes de l'utilisateur"
create-list: "Créer une liste"
desktop/views/components/user-preview.vue:
notes: "投稿"
following: "フォロー"
followers: "フォロワー"
notes: "Publications"
following: "Abonné à"
followers: "Abonnés"
desktop/views/components/users-list.vue:
all: "すべて"
iknow: "知り合い"
load-more: "もっと"
fetching: "読み込んでいます"
all: "Tout"
iknow: "Vous connaissez"
load-more: "Afficher plus"
fetching: "Chargement ..."
desktop/views/components/users-list-item.vue:
followed: "フォローされています"
followed: "vous suit"
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
close: "Fermer"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "Reposté par {}"
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
desktop/views/pages/welcome.vue:
about: "à propos"
gotit: "J'ai compris !"
signin: "Connexion"
signup: "S'enregistrer"
signin-button: "Se connecter"
signup-button: "S'inscrire"
timeline: "Fil d'actualité"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
title: "Lecteur de Misskey"
desktop/views/pages/favorites.vue:
more: "さらに読み込む"
more: "Plus de résultats"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
title: "Personnaliser l'Accueil"
desktop/views/pages/note.vue:
prev: "Note précédente"
next: "Note suivante"
@ -536,9 +607,9 @@ desktop/views/pages/selectdrive.vue:
cancel: "Annuler"
upload: "Uploader un ou plusieurs fichier(s) depuis votre PC"
desktop/views/pages/user-list.users.vue:
users: "ユーザー"
add-user: "ユーザーを追加"
username: "ユーザー名"
users: "Utilisateurs"
add-user: "Ajouter un utilisateur"
username: "Nom d'utilisateur"
desktop/views/pages/user/user.followers-you-know.vue:
title: "Abonnés que vous connaissez"
loading: "Chargement en cours"
@ -566,10 +637,10 @@ desktop/views/pages/user/user.profile.vue:
muted: "Muting"
unmute: "Enlever la sourdine"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
empty: "このユーザーはまだ何も投稿していないようです。"
default: "Publications"
with-replies: "Publications et réponses"
with-media: "Média"
empty: "Cet utilisateur n'a rien posté encore."
desktop/views/widgets/messaging.vue:
title: "Messagerie"
desktop/views/widgets/notifications.vue:
@ -582,10 +653,9 @@ desktop/views/widgets/polls.vue:
desktop/views/widgets/post-form.vue:
title: "Post"
note: "Post"
placeholder: "Qu'est-ce qu'il se passe?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
update-banner: "Cliquer pour éditer votre bannière"
update-avatar: "Cliquer pour éditer votre avatar"
desktop/views/widgets/trends.vue:
title: "Tendances"
refresh: "Afficher d'autres"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "Charger plus"
nothing-in-drive: "Rien"
folder-is-empty: "Ce dossier est vide"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "Désolé ! La suppression dun dossier nest pas encore implémentée."
folder-name: "Nom du dossier"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "Renommer"
mobile/views/components/drive-file-chooser.vue:
select-file: "Choisissez un fichier"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "Hash (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "Suivre"
unfollow: "Ne plus suivre"
request-pending: "フォロー許可待ち"
follow-request: "Demande d'abonnement"
mobile/views/components/friends-maker.vue:
title: "Abonnez-vous aux utilisateurs"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "Chargement"
refresh: "Voir plus"
close: "Fermer"
mobile/views/components/note.vue:
reposted-by: "Renoté par {}"
more: "Voir plus"
less: "Masquer"
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
location: "Géolocalisation"
mobile/views/components/note-detail.vue:
reply: "Répondre"
reaction: "Réaction"
reposted-by: "Republié par {}"
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
location: "Lieu"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "chat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "chat"
mobile/views/components/notes.vue:
failed: "Échec du chargement."
retry: "Réessayer"
mobile/views/components/notifications.vue:
more: "Plus"
empty: "Pas de notifications"
mobile/views/components/post-form.vue:
add-visible-user: "Ajouter un utilisateur"
submit: "Poster"
reply: "返信"
renote: "Renote"
renote-placeholder: "この投稿を引用... (オプション)"
reply: "Répondre"
renote: "Republier"
quote-placeholder: "Citer ce billet ... (Facultatif)"
reply-placeholder: "Répondre à cette note"
note-placeholder: "Qu'est-ce qu'il se passe?"
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "Votre appareil ne prend pas en charge les services de localisation"
error: "Erreur"
username-prompt: "Saisir un nom d'utilisateur"
mobile/views/components/sub-note-content.vue:
media-count: "{} media"
poll: "Sondage"
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
media-count: "{} médias attachés"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "Pas de notes"
load-more: "Afficher plus"
mobile/views/components/ui.nav.vue:
home: "Accueil"
timeline: "Fil d'actualité"
notifications: "Notifications"
messaging: "Messages"
follow-requests: "Demandes d'abonnement"
search: "Rechercher"
drive: "Drive"
favorites: "Favoris"
user-lists: "Listes"
widgets: "Modules"
game: "Jeux"
darkmode: "Mode nuit"
settings: "Réglages"
about: "À propose de Misskey"
mobile/views/components/user-timeline.vue:
@ -653,18 +772,30 @@ mobile/views/components/users-list.vue:
all: "Tout"
known: "Vous connaissez"
load-more: "Afficher plus"
mobile/views/pages/favorites.vue:
title: "Favoris"
mobile/views/pages/user-lists.vue:
title: "Listes"
enter-list-name: "Nom de la liste"
mobile/views/pages/drive.vue:
drive: "Drive"
more: "Afficher plus ..."
mobile/views/pages/followers.vue:
followers-of: "Abonnés de {}"
mobile/views/pages/following.vue:
following-of: "Abonnements de {}"
mobile/views/pages/home.vue:
timeline: "Fil d'actualité"
home: "Accueil"
local: "Local"
global: "Global"
mobile/views/pages/messaging.vue:
messaging: "Messagerie"
mobile/views/pages/messaging-room.vue:
messaging: "Messagerie"
mobile/views/pages/received-follow-requests.vue:
title: "Demandes d'abonnement"
accept: "Approuver"
reject: "Refuser"
mobile/views/pages/note.vue:
title: "Post"
prev: "Note précedante"
@ -673,20 +804,19 @@ mobile/views/pages/notifications.vue:
notifications: "Notifications"
read-all: "Êtes vous sûr de vouloir marqués toutes les notifications non-lus en tant que lus?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
title: "Profil"
name: "Nom"
account: "Compte"
location: "Lieu"
description: "Description"
birthday: "Date de naissance"
avatar: "Avatar"
banner: "Bannière"
is-cat: "Ce compte est un Bot"
save: "Mettre à jour le profil"
saved: "Profil mis à jour avec succès"
uploading: "En cours d'envoi"
upload-failed: "Échec de l'envoi"
mobile/views/pages/search.vue:
search: "Chercher"
empty: "Aucun message trouvé pour '{}' "
@ -694,37 +824,39 @@ mobile/views/pages/selectdrive.vue:
select-file: "Choisissez un fichier"
mobile/views/pages/settings.vue:
signed-in-as: "Connecté en tant que {}"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
timeline: "タイムライン"
lang: "Langue"
lang-tip: "Le rechargement de la page est requis afin d'appliquer les modifications."
recommended: "Recommandé"
auto: "Automatique"
specify-language: "Spécifier la langue"
design: "Affichage et design"
dark-mode: "Mode nuit"
i-am-under-limited-internet: "J'ai un accès Internet limité"
circle-icons: "Utiliser des icônes circulaires"
timeline: "Fil d'actualité"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
show-my-renotes: "Afficher mes republications"
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
post-style: "Style de la publication"
post-style-standard: "Standard"
post-style-smart: "Intelligent"
behavior: "Comportement"
fetch-on-scroll: "Chargement lors du défilement"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
update-checking: "アップデートを確認中"
check-for-updates: "アップデートを確認"
no-updates: "利用可能な更新はありません"
no-updates-desc: "お使いのMisskeyは最新です。"
update-available: "新しいバージョンが利用可能です"
load-raw-images: "Afficher les photos jointes en haute qualité"
load-remote-media: "Afficher les médias sur le serveur distant"
twitter: "Intégration à Twitter"
twitter-connect: "Se connecter à votre compte Twitter"
twitter-reconnect: "Reconnecter"
twitter-disconnect: "Déconnexion"
update: "Mise à jour de Misskey"
version: "Version :"
latest-version: "Dernière version :"
update-checking: "Recherche de mises à jour"
check-for-updates: "Fréquence de vérification"
no-updates: "Aucune mise à jour disponible"
no-updates-desc: "Votre Misskey est à jour."
update-available: "Nouvelle version disponible !"
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "Réglages"
signout: "Déconnexion"

View File

@ -3,7 +3,9 @@ meta:
lang: "日本語"
divider: ""
common:
misskey: "Misskeyで皆と共有しよう。"
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
time:
unknown: "なぞのじかん"
future: "未来"
@ -33,11 +35,58 @@ common:
angry: "おこ"
confused: "こまこまのこまり"
pudding: "Pudding"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
c: "何をお考えですか?"
d: "言いたいことは?"
e: "ここに書いてください"
f: "あなたが書くのを待っています..."
delete: "削除"
loading: "読み込み中"
ok: "わかった"
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
widgets:
analog-clock: "アナログ時計"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
memo: "付箋"
trends: "トレンド"
photo-stream: "フォトストリーム"
posts-monitor: "投稿チャート"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "アンケート"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
deck:
widgets: "ウィジェット"
home: "ホーム"
local: "ローカル"
global: "グローバル"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
@ -92,6 +141,8 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
delete-confirm: "この投稿を削除しますか?"
remote: "投稿元で見る"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
@ -101,11 +152,11 @@ common/views/components/poll.vue:
show-result: "結果を見る"
voted: "投票済み"
common/views/components/poll-editor.vue:
no-only-one-choice: "投票には、選択肢が最低2つ必要です"
no-only-one-choice: "アンケートには、選択肢が最低2つ必要です"
choice-n: "選択肢{}"
remove: "この選択肢を削除"
add: "+選択肢を追加"
destroy: "投票を破棄"
destroy: "アンケートを破棄"
common/views/components/reaction-picker.vue:
choose-reaction: "リアクションを選択"
common/views/components/signin.vue:
@ -151,6 +202,15 @@ common/views/components/twitter-setting.vue:
disconnect: "切断する"
common/views/components/uploader.vue:
waiting: "待機中"
common/views/components/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@ -162,18 +222,19 @@ common/views/widgets/donation.vue:
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
common/views/widgets/posts-monitor.vue:
title: "投稿チャート"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
commons/views/widgets/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/memo.vue:
title: "付箋"
memo: "ここに書いて!"
save: "保存"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -253,8 +314,10 @@ desktop/views/components/drive.vue:
upload: "ファイルをアップロード"
url-upload: "URLからアップロード"
desktop/views/components/follow-button.vue:
unfollow: "フォロー解除"
follow: "フォローする"
following: "フォロー"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
desktop/views/components/followers.vue:
@ -274,25 +337,6 @@ desktop/views/components/game-window.vue:
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
trends: "トレンド"
photostream: "フォトストリーム"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "投票"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
add: "追加"
desktop/views/input-dialog.vue:
cancel: "キャンセル"
@ -303,19 +347,20 @@ desktop/views/components/messaging-window.vue:
title: "メッセージ"
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "(この投稿は非公開です)"
is-renote: "がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
reposted-by: "{}がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue:
private: "(この投稿は非公開です)"
desktop/views/components/notes.note.vue:
reposted-by: "{}がRenote"
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "読み込みに失敗しました。"
retry: "リトライ"
@ -323,10 +368,9 @@ desktop/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
desktop/views/components/post-form.vue:
note-placeholder: "いまどうしてる?"
reply-placeholder: "この投稿への返信..."
quote-placeholder: "この投稿を引用..."
note: "投稿"
submit: "投稿"
reply: "返信"
renote: "Renote"
posted: "投稿しました!"
@ -340,7 +384,7 @@ desktop/views/components/post-form.vue:
attach-media-from-drive: "ドライブからメディアを添付"
attach-cancel: "添付取り消し"
insert-a-kao: "v(‘ω’)v"
create-poll: "投票を作成"
create-poll: "アンケートを作成"
text-remain: "残り{}文字"
desktop/views/components/post-form-window.vue:
note: "新規投稿"
@ -358,6 +402,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/settings-window.vue:
settings: "設定"
desktop/views/components/settings.vue:
profile: "プロフィール"
notification: "通知"
@ -456,7 +502,7 @@ desktop/views/components/settings.api.vue:
regenerate-token: "トークンを再生成"
token: "Token:"
enter-password: "パスワードを入力してください"
desktop/views/components/settings.app.vue:
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
desktop/views/components/settings.mute.vue:
no-users: "ミュートしているユーザーはいません"
@ -475,10 +521,13 @@ desktop/views/components/settings.profile.vue:
description: "自己紹介"
birthday: "誕生日"
save: "保存"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@ -491,12 +540,14 @@ desktop/views/components/ui.header.account.vue:
drive: "ドライブ"
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "カスタマイズ"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
messaging: "メッセージ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
@ -505,7 +556,12 @@ desktop/views/components/ui.header.post.vue:
post: "新規投稿"
desktop/views/components/ui.header.search.vue:
placeholder: "検索"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
desktop/views/components/user-preview.vue:
notes: "投稿"
@ -521,6 +577,21 @@ desktop/views/components/users-list-item.vue:
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
signin: "ログイン"
signup: "新規登録"
signin-button: "やってる"
signup-button: "やる"
timeline: "タイムライン"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
@ -576,13 +647,12 @@ desktop/views/widgets/notifications.vue:
title: "通知"
settings: "通知の設定"
desktop/views/widgets/polls.vue:
title: "投票"
title: "アンケート"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/post-form.vue:
title: "投稿"
note: "投稿"
placeholder: "いまどうしてる?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "もっと読み込む"
nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
folder-name: "フォルダー名"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "名前を変更"
mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "ハッシュ (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
unfollow: "フォロー解除"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
reposted-by: "{}がRenote"
more: "もっと見る"
less: "隠す"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-detail.vue:
reply: "返信"
reaction: "リアクション"
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。"
retry: "リトライ"
mobile/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加"
submit: "投稿"
reply: "返信"
renote: "Renote"
renote-placeholder: "この投稿を引用... (オプション)"
quote-placeholder: "この投稿を引用... (オプション)"
reply-placeholder: "この投稿への返信..."
note-placeholder: "いまどうしてる?"
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "お使いの端末は位置情報に対応していません"
error: "エラー"
username-prompt: "ユーザー名を入力してください"
mobile/views/components/sub-note-content.vue:
media-count: "{}個のメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "投稿がありません"
load-more: "もっと"
mobile/views/components/ui.nav.vue:
home: "ホーム"
timeline: "タイムライン"
notifications: "通知"
messaging: "メッセージ"
follow-requests: "フォロー申請"
search: "検索"
drive: "ドライブ"
favorites: "お気に入り"
user-lists: "リスト"
widgets: "ウィジェット"
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
@ -653,18 +772,30 @@ mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
load-more: "もっと"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
title: "リスト"
enter-list-name: "リスト名を入力してください"
mobile/views/pages/drive.vue:
drive: "ドライブ"
more: "もっと見る"
mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー"
mobile/views/pages/following.vue:
following-of: "{}のフォロー"
mobile/views/pages/home.vue:
timeline: "タイムライン"
home: "ホーム"
local: "ローカル"
global: "グローバル"
mobile/views/pages/messaging.vue:
messaging: "メッセージ"
mobile/views/pages/messaging-room.vue:
messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
mobile/views/pages/note.vue:
title: "投稿"
prev: "前の投稿"
@ -674,7 +805,6 @@ mobile/views/pages/notifications.vue:
read-all: "すべての通知を既読にしますか?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
name: "名前"
account: "アカウント"
location: "場所"
@ -682,7 +812,7 @@ mobile/views/pages/settings/settings.profile.vue:
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
@ -713,6 +843,8 @@ mobile/views/pages/settings.vue:
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"

View File

@ -3,7 +3,9 @@ meta:
divider: ""
common:
misskey: "Misskeyで皆と共有しよう。"
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
time:
unknown: "なぞのじかん"
@ -37,12 +39,62 @@ common:
confused: "こまこまのこまり"
pudding: "Pudding"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
c: "何をお考えですか?"
d: "言いたいことは?"
e: "ここに書いてください"
f: "あなたが書くのを待っています..."
delete: "削除"
loading: "読み込み中"
ok: "わかった"
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
widgets:
analog-clock: "アナログ時計"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
memo: "付箋"
trends: "トレンド"
photo-stream: "フォトストリーム"
posts-monitor: "投稿チャート"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "アンケート"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
deck:
widgets: "ウィジェット"
home: "ホーム"
local: "ローカル"
global: "グローバル"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
@ -104,6 +156,8 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
delete-confirm: "この投稿を削除しますか?"
remote: "投稿元で見る"
common/views/components/poll.vue:
@ -115,11 +169,11 @@ common/views/components/poll.vue:
voted: "投票済み"
common/views/components/poll-editor.vue:
no-only-one-choice: "投票には、選択肢が最低2つ必要です"
no-only-one-choice: "アンケートには、選択肢が最低2つ必要です"
choice-n: "選択肢{}"
remove: "この選択肢を削除"
add: "+選択肢を追加"
destroy: "投票を破棄"
destroy: "アンケートを破棄"
common/views/components/reaction-picker.vue:
choose-reaction: "リアクションを選択"
@ -173,6 +227,16 @@ common/views/components/twitter-setting.vue:
common/views/components/uploader.vue:
waiting: "待機中"
common/views/components/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@ -187,19 +251,23 @@ common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
common/views/widgets/posts-monitor.vue:
title: "投稿チャート"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
commons/views/widgets/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/memo.vue:
title: "付箋"
memo: "ここに書いて!"
save: "保存"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
@ -291,8 +359,10 @@ desktop/views/components/drive.vue:
url-upload: "URLからアップロード"
desktop/views/components/follow-button.vue:
unfollow: "フォロー解除"
follow: "フォローする"
following: "フォロー"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
@ -319,25 +389,6 @@ desktop/views/components/game-window.vue:
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
trends: "トレンド"
photostream: "フォトストリーム"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "投票"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
add: "追加"
desktop/views/input-dialog.vue:
@ -352,21 +403,21 @@ desktop/views/components/messaging-window.vue:
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "(この投稿は非公開です)"
is-renote: "がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
reposted-by: "{}がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue:
private: "(この投稿は非公開です)"
desktop/views/components/notes.note.vue:
reposted-by: "{}がRenote"
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "読み込みに失敗しました。"
@ -377,10 +428,9 @@ desktop/views/components/notifications.vue:
empty: "ありません!"
desktop/views/components/post-form.vue:
note-placeholder: "いまどうしてる?"
reply-placeholder: "この投稿への返信..."
quote-placeholder: "この投稿を引用..."
note: "投稿"
submit: "投稿"
reply: "返信"
renote: "Renote"
posted: "投稿しました!"
@ -394,7 +444,7 @@ desktop/views/components/post-form.vue:
attach-media-from-drive: "ドライブからメディアを添付"
attach-cancel: "添付取り消し"
insert-a-kao: "v(‘ω’)v"
create-poll: "投票を作成"
create-poll: "アンケートを作成"
text-remain: "残り{}文字"
desktop/views/components/post-form-window.vue:
@ -417,6 +467,9 @@ desktop/views/components/renote-form.vue:
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/settings-window.vue:
settings: "設定"
desktop/views/components/settings.vue:
profile: "プロフィール"
notification: "通知"
@ -528,7 +581,7 @@ desktop/views/components/settings.api.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
desktop/views/components/settings.app.vue:
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
desktop/views/components/settings.mute.vue:
@ -550,11 +603,14 @@ desktop/views/components/settings.profile.vue:
description: "自己紹介"
birthday: "誕生日"
save: "保存"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
@ -570,6 +626,7 @@ desktop/views/components/ui.header.account.vue:
drive: "ドライブ"
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "カスタマイズ"
settings: "設定"
signout: "サインアウト"
@ -577,6 +634,7 @@ desktop/views/components/ui.header.account.vue:
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
messaging: "メッセージ"
game: "ゲーム"
@ -589,7 +647,13 @@ desktop/views/components/ui.header.post.vue:
desktop/views/components/ui.header.search.vue:
placeholder: "検索"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
desktop/views/components/user-preview.vue:
@ -610,6 +674,24 @@ desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
signin: "ログイン"
signup: "新規登録"
signin-button: "やってる"
signup-button: "やる"
timeline: "タイムライン"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
@ -680,14 +762,13 @@ desktop/views/widgets/notifications.vue:
settings: "通知の設定"
desktop/views/widgets/polls.vue:
title: "投票"
title: "アンケート"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/post-form.vue:
title: "投稿"
note: "投稿"
placeholder: "いまどうしてる?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
@ -712,6 +793,16 @@ mobile/views/components/drive.vue:
load-more: "もっと読み込む"
nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
folder-name: "フォルダー名"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "名前を変更"
mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択"
@ -727,42 +818,86 @@ mobile/views/components/drive.file-detail.vue:
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
unfollow: "フォロー解除"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
reposted-by: "{}がRenote"
more: "もっと見る"
less: "隠す"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-detail.vue:
reply: "返信"
reaction: "リアクション"
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。"
retry: "リトライ"
mobile/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加"
submit: "投稿"
reply: "返信"
renote: "Renote"
renote-placeholder: "この投稿を引用... (オプション)"
quote-placeholder: "この投稿を引用... (オプション)"
reply-placeholder: "この投稿への返信..."
note-placeholder: "いまどうしてる?"
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "お使いの端末は位置情報に対応していません"
error: "エラー"
username-prompt: "ユーザー名を入力してください"
mobile/views/components/sub-note-content.vue:
media-count: "{}個のメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "投稿がありません"
load-more: "もっと"
mobile/views/components/ui.nav.vue:
home: "ホーム"
timeline: "タイムライン"
notifications: "通知"
messaging: "メッセージ"
follow-requests: "フォロー申請"
search: "検索"
drive: "ドライブ"
favorites: "お気に入り"
user-lists: "リスト"
widgets: "ウィジェット"
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
about: "Misskeyについて"
@ -776,8 +911,16 @@ mobile/views/components/users-list.vue:
known: "知り合い"
load-more: "もっと"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
title: "リスト"
enter-list-name: "リスト名を入力してください"
mobile/views/pages/drive.vue:
drive: "ドライブ"
more: "もっと見る"
mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー"
@ -786,7 +929,9 @@ mobile/views/pages/following.vue:
following-of: "{}のフォロー"
mobile/views/pages/home.vue:
timeline: "タイムライン"
home: "ホーム"
local: "ローカル"
global: "グローバル"
mobile/views/pages/messaging.vue:
messaging: "メッセージ"
@ -794,6 +939,11 @@ mobile/views/pages/messaging.vue:
mobile/views/pages/messaging-room.vue:
messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
mobile/views/pages/note.vue:
title: "投稿"
prev: "前の投稿"
@ -805,7 +955,6 @@ mobile/views/pages/notifications.vue:
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
name: "名前"
account: "アカウント"
location: "場所"
@ -813,7 +962,7 @@ mobile/views/pages/settings/settings.profile.vue:
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
@ -847,6 +996,8 @@ mobile/views/pages/settings.vue:
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"

View File

@ -3,7 +3,9 @@ meta:
lang: "日本語"
divider: ""
common:
misskey: "Misskeyで皆と共有しよう。"
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
time:
unknown: "なぞのじかん"
future: "未来"
@ -33,11 +35,58 @@ common:
angry: "おこ"
confused: "こまこまのこまり"
pudding: "Pudding"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
c: "何をお考えですか?"
d: "言いたいことは?"
e: "ここに書いてください"
f: "あなたが書くのを待っています..."
delete: "削除"
loading: "読み込み中"
ok: "わかった"
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
widgets:
analog-clock: "アナログ時計"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
memo: "付箋"
trends: "トレンド"
photo-stream: "フォトストリーム"
posts-monitor: "投稿チャート"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "アンケート"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
deck:
widgets: "ウィジェット"
home: "ホーム"
local: "ローカル"
global: "グローバル"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
@ -92,6 +141,8 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
delete-confirm: "この投稿を削除しますか?"
remote: "投稿元で見る"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
@ -101,11 +152,11 @@ common/views/components/poll.vue:
show-result: "結果を見る"
voted: "投票済み"
common/views/components/poll-editor.vue:
no-only-one-choice: "投票には、選択肢が最低2つ必要です"
no-only-one-choice: "アンケートには、選択肢が最低2つ必要です"
choice-n: "選択肢{}"
remove: "この選択肢を削除"
add: "+選択肢を追加"
destroy: "投票を破棄"
destroy: "アンケートを破棄"
common/views/components/reaction-picker.vue:
choose-reaction: "リアクションを選択"
common/views/components/signin.vue:
@ -151,6 +202,15 @@ common/views/components/twitter-setting.vue:
disconnect: "切断する"
common/views/components/uploader.vue:
waiting: "待機中"
common/views/components/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@ -162,18 +222,19 @@ common/views/widgets/donation.vue:
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
common/views/widgets/posts-monitor.vue:
title: "投稿チャート"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
commons/views/widgets/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/memo.vue:
title: "付箋"
memo: "ここに書いて!"
save: "保存"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -253,8 +314,10 @@ desktop/views/components/drive.vue:
upload: "ファイルをアップロード"
url-upload: "URLからアップロード"
desktop/views/components/follow-button.vue:
unfollow: "フォロー解除"
follow: "フォローする"
following: "フォロー"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
desktop/views/components/followers.vue:
@ -274,25 +337,6 @@ desktop/views/components/game-window.vue:
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
trends: "トレンド"
photostream: "フォトストリーム"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "投票"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
add: "追加"
desktop/views/input-dialog.vue:
cancel: "キャンセル"
@ -303,19 +347,20 @@ desktop/views/components/messaging-window.vue:
title: "メッセージ"
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "(この投稿は非公開です)"
is-renote: "がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
reposted-by: "{}がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue:
private: "(この投稿は非公開です)"
desktop/views/components/notes.note.vue:
reposted-by: "{}がRenote"
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "読み込みに失敗しました。"
retry: "リトライ"
@ -323,10 +368,9 @@ desktop/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
desktop/views/components/post-form.vue:
note-placeholder: "いまどうしてる?"
reply-placeholder: "この投稿への返信..."
quote-placeholder: "この投稿を引用..."
note: "投稿"
submit: "投稿"
reply: "返信"
renote: "Renote"
posted: "投稿しました!"
@ -340,7 +384,7 @@ desktop/views/components/post-form.vue:
attach-media-from-drive: "ドライブからメディアを添付"
attach-cancel: "添付取り消し"
insert-a-kao: "v(‘ω’)v"
create-poll: "投票を作成"
create-poll: "アンケートを作成"
text-remain: "残り{}文字"
desktop/views/components/post-form-window.vue:
note: "新規投稿"
@ -358,6 +402,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/settings-window.vue:
settings: "設定"
desktop/views/components/settings.vue:
profile: "プロフィール"
notification: "通知"
@ -456,7 +502,7 @@ desktop/views/components/settings.api.vue:
regenerate-token: "トークンを再生成"
token: "Token:"
enter-password: "パスワードを入力してください"
desktop/views/components/settings.app.vue:
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
desktop/views/components/settings.mute.vue:
no-users: "ミュートしているユーザーはいません"
@ -475,10 +521,13 @@ desktop/views/components/settings.profile.vue:
description: "自己紹介"
birthday: "誕生日"
save: "保存"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@ -491,12 +540,14 @@ desktop/views/components/ui.header.account.vue:
drive: "ドライブ"
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "カスタマイズ"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
messaging: "メッセージ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
@ -505,7 +556,12 @@ desktop/views/components/ui.header.post.vue:
post: "新規投稿"
desktop/views/components/ui.header.search.vue:
placeholder: "検索"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
desktop/views/components/user-preview.vue:
notes: "投稿"
@ -521,6 +577,21 @@ desktop/views/components/users-list-item.vue:
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
signin: "ログイン"
signup: "新規登録"
signin-button: "やってる"
signup-button: "やる"
timeline: "タイムライン"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
@ -576,13 +647,12 @@ desktop/views/widgets/notifications.vue:
title: "通知"
settings: "通知の設定"
desktop/views/widgets/polls.vue:
title: "投票"
title: "アンケート"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/post-form.vue:
title: "投稿"
note: "投稿"
placeholder: "いまどうしてる?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "もっと読み込む"
nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
folder-name: "フォルダー名"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "名前を変更"
mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "ハッシュ (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
unfollow: "フォロー解除"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
reposted-by: "{}がRenote"
more: "もっと見る"
less: "隠す"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-detail.vue:
reply: "返信"
reaction: "リアクション"
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。"
retry: "リトライ"
mobile/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加"
submit: "投稿"
reply: "返信"
renote: "Renote"
renote-placeholder: "この投稿を引用... (オプション)"
quote-placeholder: "この投稿を引用... (オプション)"
reply-placeholder: "この投稿への返信..."
note-placeholder: "いまどうしてる?"
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "お使いの端末は位置情報に対応していません"
error: "エラー"
username-prompt: "ユーザー名を入力してください"
mobile/views/components/sub-note-content.vue:
media-count: "{}個のメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "投稿がありません"
load-more: "もっと"
mobile/views/components/ui.nav.vue:
home: "ホーム"
timeline: "タイムライン"
notifications: "通知"
messaging: "メッセージ"
follow-requests: "フォロー申請"
search: "検索"
drive: "ドライブ"
favorites: "お気に入り"
user-lists: "リスト"
widgets: "ウィジェット"
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
@ -653,18 +772,30 @@ mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
load-more: "もっと"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
title: "リスト"
enter-list-name: "リスト名を入力してください"
mobile/views/pages/drive.vue:
drive: "ドライブ"
more: "もっと見る"
mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー"
mobile/views/pages/following.vue:
following-of: "{}のフォロー"
mobile/views/pages/home.vue:
timeline: "タイムライン"
home: "ホーム"
local: "ローカル"
global: "グローバル"
mobile/views/pages/messaging.vue:
messaging: "メッセージ"
mobile/views/pages/messaging-room.vue:
messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
mobile/views/pages/note.vue:
title: "投稿"
prev: "前の投稿"
@ -674,7 +805,6 @@ mobile/views/pages/notifications.vue:
read-all: "すべての通知を既読にしますか?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
name: "名前"
account: "アカウント"
location: "場所"
@ -682,7 +812,7 @@ mobile/views/pages/settings/settings.profile.vue:
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
@ -713,6 +843,8 @@ mobile/views/pages/settings.vue:
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"

View File

@ -1,9 +1,11 @@
---
meta:
lang: "japoński"
lang: "język polski"
divider: ""
common:
misskey: "Dziel się zawartością z innymi korzystając z Misskey."
misskey: "Planeta Fediwersum"
about-title: "⭐ Fediwersum"
about: "Dziękujemy za znalezienie Misskey. Misskey jest <b>zdecentralizowaną platformą mikroblogową</b> powstałą na Ziemi. Ponieważ działa ona w Fediwersum (uniwersum, w którego skład wchodzi wiele sieci społecznościowych), jest ona połączona z innymi platformami społecznościowymi. Spróbujesz odpocząć od zatłoczoneo miasta i zanurzyć się w nowym Internecie?"
time:
unknown: "nieznany"
future: "w przyszłości"
@ -33,11 +35,58 @@ common:
angry: "Wściekły"
confused: "Zmieszany"
pudding: "Pudding"
note-placeholders:
a: "Co robisz?"
b: "Co się wydarzyło?"
c: "Co Ci chodzi po głowie?"
d: "Czy masz coś do powiedzenia?"
e: "Napisz coś tutaj!"
f: "Czekamy, aż coś napiszesz."
delete: "Usuń"
loading: "Ładowanie"
ok: "OK"
update-available: "Nowa wersja Misskey jest dostępna ({newer}, obecna to {current}). Odśwież stronę, aby zastosować aktualizację."
my-token-regenerated: "Twój token został wygenerowany. Zostaniesz wylogowany."
widgets:
analog-clock: "Zegar analogowy"
profile: "Profil"
calendar: "Kalendarz"
timemachine: "Kalendarz (wehikuł czasu)"
activity: "Aktywność"
rss: "Czytnik RSS"
memo: "Notatka"
trends: "Na czasie"
photo-stream: "Photostream"
posts-monitor: "Wykres wpisów"
slideshow: "Pokaz slajdów"
version: "Wersja"
broadcast: "Transmisja"
notifications: "Powiadomienia"
users: "Polecani użytkownicy"
polls: "Ankiety"
post-form: "Formularz tworzenia"
messaging: "Wiadomości"
server: "Informacje o serwerze"
donation: "Dotacje"
nav: "Nawigacja"
tips: "Wskazówki"
hashtags: "Hashtagi"
deck:
widgets: "Widżety"
home: "Strona główna"
local: "Lokalne"
global: "Globalne"
notifications: "Powiadomienia"
list: "Listy"
swap-left: "Przesuń w lewo"
swap-right: "Przesuń w prawo"
swap-up: "Przenieś w górę"
swap-down: "Przenieś w dół"
remove: "Usuń"
add-column: "Dodaj kolumnę"
rename: "Zmień nazwę"
stack-left: "左に重ねる"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "Nie udało się połączyć z serwerem"
description: "Wystąpił problem z Twoim połączeniem z Internetem, lub z serwerem. {Spróbuj ponownie} wkrótce."
@ -92,7 +141,9 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "Dodaj do ulubionych"
pin: "Przypnij do profilu"
remote: "投稿元で見る"
delete: "Usuń"
delete-confirm: "Czy na pewno chcesz usunąć ten wpis?"
remote: "Pokaż oryginał"
common/views/components/poll.vue:
vote-to: "Zagłosuj na '{}'"
vote-count: "{} głosów"
@ -101,11 +152,11 @@ common/views/components/poll.vue:
show-result: "Pokaż wyniki"
voted: "Zagłosowano"
common/views/components/poll-editor.vue:
no-only-one-choice: "Musisz wprowadzić dwie lub więcej opcji."
no-only-one-choice: "Musisz wprowadzić przynajmniej dwie opcje."
choice-n: "Opcja {}"
remove: "Usuń tą opcję"
add: "+ Dodaj opcję"
destroy: "Usuń ankietę"
destroy: "Usuń ankietę"
common/views/components/reaction-picker.vue:
choose-reaction: "Wybierz reakcję"
common/views/components/signin.vue:
@ -151,6 +202,15 @@ common/views/components/twitter-setting.vue:
disconnect: "Rozłącz"
common/views/components/uploader.vue:
waiting: "Oczekiwanie"
common/views/components/visibility-chooser.vue:
public: "Publiczny"
home: "Lokalny"
home-desc: "Widoczny tylko na tej instancji"
followers: "Dla śledzących"
followers-desc: "Widoczny tylko dla osób, które Cię śledzą"
specified: "Bezpośredni"
specified-desc: "Tylko dla określonych użytkowników"
private: "Prywatny"
common/views/widgets/broadcast.vue:
fetching: "Sprawdzanie"
no-broadcasts: "Brak transmisji"
@ -162,18 +222,19 @@ common/views/widgets/donation.vue:
common/views/widgets/photo-stream.vue:
title: "Photostream"
no-photos: "Brak zdjęć"
common/views/widgets/posts-monitor.vue:
title: "Wykres wpisów"
toggle: "Przełącz widok"
common/views/widgets/hashtags.vue:
title: "Hashtagi"
count: "Wspomniany przez {} użytkowników"
common/views/widgets/server.vue:
title: "Informacje o serwerze"
toggle: "Przełącz widok"
commons/views/widgets/visibility-chooser.vue:
public: "Publiczny"
home: "Lokalny"
home-desc: "Widoczny tylko na tej instancji"
followers: "Dla śledzących"
followers-desc: "Widoczny tylko dla osób, które Cię śledzą"
specified: "Bezpośredni"
specified-desc: "Tylko dla określonych użytkowników"
private: "Prywatny"
common/views/widgets/memo.vue:
title: "Notatka"
memo: "Napisz tutaj!"
save: "Zapisz"
desktop/views/components/activity.chart.vue:
total: "Czarny … Łącznie"
notes: "Niebieski … Wpisy"
@ -235,7 +296,7 @@ desktop/views/components/drive.nav-folder.vue:
desktop/views/components/drive.vue:
search: "Szukaj"
load-more: "Załaduj więcej"
empty-draghover: "ドロップですか?いいですよ、ボクはカワイイですからね"
empty-draghover: "Przeciągnij tutaj!"
empty-drive: "Twój dysk jest pusty"
empty-drive-description: "Możesz wysłać plik klikając prawym przyciskiem myszy i wybierając \"Wyślij plik\" lub przeciągnąć plik i upuścić w tym oknie."
empty-folder: "Ten katalog jest posty"
@ -253,8 +314,10 @@ desktop/views/components/drive.vue:
upload: "Wyślij plik"
url-upload: "Wyślij z adresu URL"
desktop/views/components/follow-button.vue:
unfollow: "Przestań śledzić"
following: "Śledzisz"
follow: "Śledź"
request-pending: "Oczekiwanie na pozwolenie"
follow-request: "Poproś o śledzenie"
desktop/views/components/followers-window.vue:
followers: "Śledzący"
desktop/views/components/followers.vue:
@ -274,25 +337,6 @@ desktop/views/components/game-window.vue:
desktop/views/components/home.vue:
done: "Wyślij"
add-widget: "Dodaj widżet:"
profile: "Profil"
calendar: "Kalendarz"
timemachine: "Kalendarz (wehikuł czasu)"
activity: "Aktywność"
rss: "Czytnik RSS"
trends: "Na czasie"
photostream: "Photostream"
slideshow: "Pokaz slajdów"
version: "Wersja"
broadcast: "Transmisja"
notifications: "Powiadomienia"
users: "Polecani użytkownicy"
polls: "Ankiety"
post-form: "Formularz tworzenia"
messaging: "Wiadomości"
server: "Informacje o serwerze"
donation: "Dotacje"
nav: "Nawigacja"
tips: "Wskazówki"
add: "Dodaj"
desktop/views/input-dialog.vue:
cancel: "Anuluj"
@ -303,19 +347,20 @@ desktop/views/components/messaging-window.vue:
title: "Wiadomości"
desktop/views/components/note-detail.vue:
more: "Załaduj więcej konwersacji"
private: "(ten wpis jest prywatny)"
is-renote: "がRenote"
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
reposted-by: "Udostępniono przez {}"
location: "Informacje o lokalizacji"
renote: "Przeredaguj"
renote: "Udostępnienie"
add-reaction: "Dodaj reakcję"
desktop/views/components/note-detail.sub.vue:
private: "(ten wpis jest prywatny)"
desktop/views/components/notes.note.vue:
reposted-by: "Udostępniono przez {}"
reply: "Odpowiedz"
renote: "Przeredaguj"
renote: "Udostępnij"
add-reaction: "Dodaj reakcję"
detail: "Pokaż szczegóły"
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
desktop/views/components/notes.vue:
error: "Ładowanie nie powiodło się."
retry: "Spróbuj ponownie"
@ -323,18 +368,17 @@ desktop/views/components/notifications.vue:
more: "Więcej"
empty: "Brak powiadomień"
desktop/views/components/post-form.vue:
note-placeholder: "Co się dzieje?"
reply-placeholder: "Odpowiedz na ten wpis…"
quote-placeholder: "Zacytuj ten wpis…"
note: "Wyślij"
submit: "Wyślij"
reply: "Odpowiedz"
renote: "Przeredaguj"
renote: "Udostępnienie"
posted: "Opublikowano!"
replied: "Odpowiedziano!"
reposted: "Udostępniono!"
note-failed: "Nie udało się wysłać"
reply-failed: "Nie udało się odpowiedzieć"
renote-failed: "Nie udało się przeredagować"
renote-failed: "Nie udało się udostępnić"
posting: "Wysyłanie"
attach-media-from-local: "Załącz zawartość multimedialną z komputera"
attach-media-from-drive: "Załącz zawartość multimedialną z dysku"
@ -352,12 +396,14 @@ desktop/views/components/progress-dialog.vue:
desktop/views/components/renote-form.vue:
quote: "Cytuj…"
cancel: "Anuluj"
renote: "Przeredaguj"
renote: "Udostępnij"
reposting: "Udostępnianie…"
success: "Udostępniono!"
failure: "Nie udało się przeredagować"
failure: "Nie udało się udostępnić"
desktop/views/components/renote-form-window.vue:
title: "Czy na pewno chcesz przeredagować ten wpis?"
title: "Czy na pewno chcesz udostępnić ten wpis?"
desktop/views/components/settings-window.vue:
settings: "Ustawienia"
desktop/views/components/settings.vue:
profile: "Profil"
notification: "Powiadomienia"
@ -385,8 +431,8 @@ desktop/views/components/settings.vue:
gradient-window-header: "Używaj gradientów na pasku tytułu okna"
post-form-on-timeline: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
show-reply-target: "Pokazuj cel odpowiedzi"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
show-my-renotes: "Pokazuj moje udostępnienia na osi czasu"
show-renoted-my-notes: "Pokazuj udostępnienia moich wpisów na osi czasu"
show-maps: "Automatycznie pokazuj mapę"
show-maps-desc: "Mapa będzie automatycznie rozwijana dla wpisów zawierających informacje o lokalizacji."
sound: "Dźwięk"
@ -404,11 +450,11 @@ desktop/views/components/settings.vue:
language-desc: "Aby zmiany zostały uwzględnione, odśwież stronę."
cache: "Pamięć podręczna"
clean-cache: "Wyczyść"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-warn: "Pamięć podręczna informacji o koncie/wpisów/odpowiedzi/wiadomości/ustawień przechowywanych w przeglądarce zostanie usunięta. Będziesz musiał odświeżyć stronę po wyczyszczeniu."
cache-cleared: "Wyczyszczono pamięć podręczną"
cache-cleared-desc: "Proszę odświeżyć stronę."
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
auto-watch: "Automatycznie nasłuchuj"
auto-watch-desc: "Otrzymuj natychmiastowo informacje o wpisach/odpowiedziach/reakcjach."
about: "O Misskey"
operator: "Administrator instancji"
update: "Aktualizacja Misskey"
@ -430,7 +476,7 @@ desktop/views/components/settings.vue:
experimental-desc: "Aktywowanie eksperymentalnych funkcji może spowodować niestabilność Misskey. Opcja ta jest przechowywana w przeglądarce."
tools: "Narzędzia"
task-manager: "Menedżer zadań"
third-parties: "サードパーティ"
third-parties: "Autorzy trzeci"
desktop/views/components/settings.2fa.vue:
intro: "Jeżeli skonfigurujesz uwierzytelnianie dwuetapowe, aby zablokować się będziesz potrzebować (oprócz hasła) kodu ze skonfigurowanego urządzenia (np. smartfonu), co zwiększy bezpieczeństwo."
detail: "Zobacz szczegóły…"
@ -450,13 +496,13 @@ desktop/views/components/settings.2fa.vue:
failed: "Nie udało się skonfigurować uwierzytelniania dwuetapowego, upewnij się że wprowadziłeś prawidłowy token."
info: "Od teraz, wprowadzaj token wyświetlany na urządzeniu przy każdym logowaniu do Misskey."
desktop/views/components/settings.api.vue:
intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。"
intro: "Aby uzyskać dostęp do API, ustaw ten token jako klucz 'i' parametrów żądań."
caution: "Nie pokazuj tego tokenu osobom trzecim (nie wprowadzaj go nigdzie indziej), aby konto nie trafiło w niepowołane ręce."
regeneration-of-token: "W przypadku wycieku tokenu, możesz wygenerować nowy."
regenerate-token: "Wygeneruj nowy token"
token: "Token:"
enter-password: "Wprowadź hasło"
desktop/views/components/settings.app.vue:
desktop/views/components/settings.apps.vue:
no-apps: "Brak zautoryzowanych aplikacji"
desktop/views/components/settings.mute.vue:
no-users: "Brak wyciszonych użytkowników"
@ -475,10 +521,13 @@ desktop/views/components/settings.profile.vue:
description: "Opis"
birthday: "Data urodzenia"
save: "Aktualizuj profil"
is-bot: "To konto jest prowadzone przez bota"
is-cat: "To konto jest prowadzone przez kota"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
media-count: "{}zawartości multimedialnej"
poll: "Ankieta"
desktop/views/components/taskmanager.vue:
title: "Menedżer zadań"
desktop/views/components/timeline.vue:
@ -491,12 +540,14 @@ desktop/views/components/ui.header.account.vue:
drive: "Dysk"
favorites: "Ulubione"
lists: "Listy"
follow-requests: "Prośby o śledzenie"
customize: "Dostosuj"
settings: "Ustawienia"
signout: "Wyloguj się"
dark: "Sprowadź ciemność"
desktop/views/components/ui.header.nav.vue:
home: "Strona główna"
deck: "Talia"
messaging: "Wiadomości"
game: "Gra"
desktop/views/components/ui.header.notifications.vue:
@ -505,7 +556,12 @@ desktop/views/components/ui.header.post.vue:
post: "Utwórz nowy wpis"
desktop/views/components/ui.header.search.vue:
placeholder: "Szukaj"
desktop/views/components/received-follow-requests-window.vue:
title: "Poproś o śledzenie"
accept: "Zatwierdź"
reject: "Odmów"
desktop/views/components/user-lists-window.vue:
title: "Listy"
create-list: "Utwórz listę"
desktop/views/components/user-preview.vue:
notes: "Wpisy"
@ -517,16 +573,31 @@ desktop/views/components/users-list.vue:
load-more: "Więcej"
fetching: "Ładowanie…"
desktop/views/components/users-list-item.vue:
followed: "フォローされています"
followed: "Obserwuje Cię"
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
popout: "Pop-out"
close: "Zamknij"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "Tylko wpisy z zawartością multimedialną"
is-media-view: "Widok multimediów"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "Udostępniono przez {}"
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
desktop/views/pages/welcome.vue:
about: "O Misskey"
gotit: "Rozumiem!"
signin: "Zaloguj się"
signup: "Zarejestruj się"
signin-button: "Zaloguj się"
signup-button: "Zarejestruj się"
timeline: "Oś czasu"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
title: "Dysk Misskey"
desktop/views/pages/favorites.vue:
more: "さらに読み込む"
more: "Załaduj więcej"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
title: "Dostosuj stronę główną"
desktop/views/pages/note.vue:
prev: "Poprzedni wpis"
next: "Następny wpis"
@ -536,9 +607,9 @@ desktop/views/pages/selectdrive.vue:
cancel: "Anuluj"
upload: "Wyślij pliki z Twojego komputera"
desktop/views/pages/user-list.users.vue:
users: "ユーザー"
add-user: "ユーザーを追加"
username: "ユーザー名"
users: "Użytkownicy"
add-user: "Dodaj użytkownika"
username: "Nazwa użytkownika"
desktop/views/pages/user/user.followers-you-know.vue:
title: "Śledzący których znasz"
loading: "Ładowanie"
@ -566,10 +637,10 @@ desktop/views/pages/user/user.profile.vue:
muted: "Wyciszyłeś"
unmute: "Cofnij wyciszenie"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
empty: "このユーザーはまだ何も投稿していないようです。"
default: "Wpisy"
with-replies: "Wpisy i odpowiedzi"
with-media: "Multimedia"
empty: "Ten użytkownik nie umieścił jeszcze niczego."
desktop/views/widgets/messaging.vue:
title: "Wiadomości"
desktop/views/widgets/notifications.vue:
@ -582,10 +653,9 @@ desktop/views/widgets/polls.vue:
desktop/views/widgets/post-form.vue:
title: "Wpis"
note: "Wpis"
placeholder: "Co się dzieje?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
update-banner: "Naciśnij, aby zmienić baner"
update-avatar: "Naciśnij, aby zmienić awatar"
desktop/views/widgets/trends.vue:
title: "Na czasie"
refresh: "Pokaż inne"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "Załaduj więcej"
nothing-in-drive: "Pusto"
folder-is-empty: "Ten katalog jest pusty"
prompt: "Co chcesz zrobić? (wprowadź odpowiednią cyfrę): <1 → Wysłać plik | 2 → Wysłać plik z adresu URL | 3 → Utworzyć katalog | 4 → Zmienić nazwę tego katalogu | 5 → Przenieść ten katalog | 6 → Usunąć ten katalog>"
deletion-alert: "Przepraszamy. Usuwanie katalogów nie zostało jeszcze zaimplementowane."
folder-name: "Nazwa katalogu"
root-rename-alert: "Nie można zmienić nazwy katalogu głównego. Przejdź do katalogu, którego nazwę chcesz zmienić."
root-move-alert: "Nie można przenieść tego katalogu, ponieważ jest on katalogiem głównym. Przejdź do katalogu, który chcesz przenieść."
url-prompt: "Adres URL pliku, który chcesz wysłać"
uploading: "Rozpoczęto wysyłanie. Może to trochę potrwać."
mobile/views/components/drive-file-detail.vue:
rename: "Zmień nazwę"
mobile/views/components/drive-file-chooser.vue:
select-file: "Wybierz plik"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "Hash (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "Śledzisz"
follow: "Śledź"
unfollow: "Przestań śledzić"
request-pending: "Oczekiwanie na pozwolenie"
follow-request: "Poproś o śledzenie"
mobile/views/components/friends-maker.vue:
title: "Zacznij śledzić ludzi takich jak Ty"
empty: "Nie znaleziono podobnych użytkowników."
fetching: "Ładowanie…"
refresh: "Więcej"
close: "Zamknij"
mobile/views/components/note.vue:
reposted-by: "Udostępniono przez {}"
more: "Rozwiń"
less: "Zwiń"
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
location: "Informacje o lokalizacji"
mobile/views/components/note-detail.vue:
reply: "Odpowiedz"
reaction: "Reakcja"
reposted-by: "Udostępniono przez {}"
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
location: "Informacje o lokalizacji"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "kot"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "kot"
mobile/views/components/notes.vue:
failed: "Ładowanie nie powiodło się."
retry: "Spróbuj ponownie"
mobile/views/components/notifications.vue:
more: "Więcej"
empty: "Brak powiadomień"
mobile/views/components/post-form.vue:
add-visible-user: "Dodaj użytkownika"
submit: "Wyślij"
reply: "Odpowiedz"
renote: "Przeredaguj"
renote-placeholder: "Zacytuj wpis… (nieobowiązkowe)"
renote: "Udostępnij"
quote-placeholder: "Zacytuj ten wpis… (nieobowiązkowe)"
reply-placeholder: "Odpowiedź na ten wpis…"
note-placeholder: "Co się dzieje?"
cw-placeholder: "Treść ostrzeżenia (opcjonalnie)"
location-alert: "Twoje urządzenie nie pozwala na przekazywanie informacji o lokalizacji"
error: "Błąd"
username-prompt: "Wprowadź nazwę użytkownika"
mobile/views/components/sub-note-content.vue:
media-count: "{} zawartości multimedialnej"
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
media-count: "{}zawartości multimedialnej"
poll: "Ankieta"
mobile/views/components/timeline.vue:
empty: "Brak wpisów"
load-more: "Więcej"
mobile/views/components/ui.nav.vue:
home: "Strona główna"
timeline: "Oś czasu"
notifications: "Powiadomienia"
messaging: "Wiadomości"
follow-requests: "Prośby o śledzenie"
search: "Szukaj"
drive: "Dysk"
favorites: "Ulubione"
user-lists: "Listy"
widgets: "Widżety"
game: "Gry"
darkmode: "Tryb ciemny"
settings: "Ustawienia"
about: "O Misskey"
mobile/views/components/user-timeline.vue:
@ -653,40 +772,51 @@ mobile/views/components/users-list.vue:
all: "Wszyscy"
known: "Znasz"
load-more: "Więcej"
mobile/views/pages/favorites.vue:
title: "Ulubione"
mobile/views/pages/user-lists.vue:
title: "Listy"
enter-list-name: "Wprowadź nazwę listy"
mobile/views/pages/drive.vue:
drive: "Dysk"
more: "Załaduj więcej"
mobile/views/pages/followers.vue:
followers-of: "Śledzący {}"
mobile/views/pages/following.vue:
following-of: "Śledzeni przez {}"
mobile/views/pages/home.vue:
timeline: "Oś czasu"
home: "Strona główna"
local: "Lokalne"
global: "Globalne"
mobile/views/pages/messaging.vue:
messaging: "Wiadomości"
mobile/views/pages/messaging-room.vue:
messaging: "Wiadomości"
mobile/views/pages/received-follow-requests.vue:
title: "Prośby o śledzenie"
accept: "Zatwierdź"
reject: "Odmów"
mobile/views/pages/note.vue:
title: "Wyślij"
title: "Wpis"
prev: "Poprzedni wpis"
next: "Następny wpis"
mobile/views/pages/notifications.vue:
notifications: "Powiadomienia"
read-all: "Czy na pewno chcesz oznaczyć wszystkie powiadomienia jako przeczytane?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
title: "Profil"
name: "Nazwa"
account: "Konto"
location: "Lokalizacja"
description: "Opis"
birthday: "Data urodzenia"
avatar: "Awatar"
banner: "Baner"
is-cat: "To konto jest prowadzone przez kota"
save: "Aktualizuj profil"
saved: "Pomyślnie zaktualizowano profil"
uploading: "Wysyłanie"
upload-failed: "Wysyłanie nie powiodło się"
mobile/views/pages/search.vue:
search: "Szukaj"
empty: "Nie znaleziono wpisów zawierających '{}'"
@ -705,14 +835,16 @@ mobile/views/pages/settings.vue:
circle-icons: "Używaj okrągłych ikon"
timeline: "Oś czasu"
show-reply-target: "Pokazuj cel odpowiedzi"
show-my-renotes: "自分の行ったRenoteを表示する"
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
show-my-renotes: "Pokazuj moje udostępnienia"
show-renoted-my-notes: "Pokazuj udostępnienia moich wpisów"
post-style: "Styl wpisów"
post-style-standard: "Standardowy"
post-style-smart: "Inteligentny"
behavior: "Zachowanie"
fetch-on-scroll: "Automatycznie ładuj po przeciągnięciu w dół"
disable-via-mobile: "Nie oznaczaj wpisów jako „wysłane z telefonu”"
load-raw-images: "Wyświetlaj załączone zdjęcia w wysokiej jakości"
load-remote-media: "Wyświetlaj zawartość multimedialną ze zdalnych serwerów"
twitter: "Połączenie z Twitterem"
twitter-connect: "Połącz z Twitterem"
twitter-reconnect: "Połącz ponownie"
@ -735,7 +867,7 @@ mobile/views/pages/user.vue:
notes: "Wpisy"
overview: "Przegląd"
timeline: "Oś czasu"
media: "Zawartość multimedialna"
media: "Multimedia"
is-suspended: "To konto zostało zablokowane"
is-remote: "To jest użytkownik zdalnej instancji, informacje mogą nie być w pełni dokładne."
view-remote: "Wyświetl dokładne informacje"
@ -747,7 +879,7 @@ mobile/views/pages/user/home.vue:
domains: "Domeny"
frequently-replied-users: "Często aktywni użytkownicy"
followers-you-know: "Śledzący których znasz"
last-used-at: "Ostatnio aktywny:"
last-used-at: "Ostatnio aktywny"
mobile/views/pages/user/home.followers-you-know.vue:
loading: "Ładowanie"
no-users: "Brak użytkowników"

910
locales/pt.yml Normal file
View File

@ -0,0 +1,910 @@
---
meta:
lang: "Português"
divider: ""
common:
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
time:
unknown: "なぞのじかん"
future: "未来"
just_now: "たった今"
seconds_ago: "{}秒前"
minutes_ago: "{}分前"
hours_ago: "{}時間前"
days_ago: "{}日前"
weeks_ago: "{}週間前"
months_ago: "{}ヶ月前"
years_ago: "{}年前"
weekday-short:
sunday: "日"
monday: "月"
tuesday: "火"
wednesday: "水"
thursday: "木"
friday: "金"
saturday: "土"
reactions:
like: "いいね"
love: "しゅき"
laugh: "笑"
hmm: "ふぅ~む"
surprise: "わお"
congrats: "おめでとう"
angry: "おこ"
confused: "こまこまのこまり"
pudding: "Pudding"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
c: "何をお考えですか?"
d: "言いたいことは?"
e: "ここに書いてください"
f: "あなたが書くのを待っています..."
delete: "削除"
loading: "読み込み中"
ok: "わかった"
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
widgets:
analog-clock: "アナログ時計"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
memo: "付箋"
trends: "トレンド"
photo-stream: "フォトストリーム"
posts-monitor: "投稿チャート"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "アンケート"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
deck:
widgets: "ウィジェット"
home: "ホーム"
local: "ローカル"
global: "グローバル"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
thanks: "いつもMisskeyをご利用いただきありがとうございます。"
troubleshoot: "トラブルシュート"
common/views/components/connect-failed.troubleshooter.vue:
title: "トラブルシューティング"
network: "ネットワーク接続"
checking-network: "ネットワーク接続を確認中"
internet: "インターネット接続"
checking-internet: "インターネット接続を確認中"
server: "サーバー接続"
checking-server: "サーバー接続を確認中"
finding: "問題を調べています"
no-network: "ネットワークに接続されていません"
no-network-desc: "お使いのPCのネットワーク接続が正常か確認してください。"
no-internet: "インターネットに接続されていません"
no-internet-desc: "ネットワークには接続されていますが、インターネットには接続されていないようです。お使いのPCのインターネット接続が正常か確認してください。"
no-server: "Misskeyのサーバーに接続できません"
no-server-desc: "お使いのPCのインターネット接続は正常ですが、Misskeyのサーバーには接続できませんでした。サーバーがダウンまたはメンテナンスしている可能性があるので、しばらくしてから再度御アクセスください。"
success: "Misskeyのサーバーに接続できました"
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
flush: "キャッシュの削除"
set-version: "バージョン指定"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あなた"
no-history: "履歴はありません"
common/views/components/messaging-room.vue:
empty: "このユーザーと話したことはありません"
more: "もっと読む"
no-history: "これより過去の履歴はありません"
resize-form: "ドラッグしてフォームの広さを調整"
new-message: "新しいメッセージがあります"
common/views/components/messaging-room.form.vue:
input-message-here: "ここにメッセージを入力"
send: "送信"
attach-from-local: "PCからファイルを添付する"
attach-from-drive: "ドライブからファイルを添付する"
common/views/components/messaging-room.message.vue:
is-read: "既読"
deleted: "このメッセージは削除されました"
common/views/components/nav.vue:
about: "Misskeyについて"
stats: "統計"
status: "ステータス"
wiki: "Wiki"
donors: "ドナー"
repository: "リポジトリ"
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
delete-confirm: "この投稿を削除しますか?"
remote: "投稿元で見る"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
vote-count: "{}票"
total-users: "{}人が投票"
vote: "投票する"
show-result: "結果を見る"
voted: "投票済み"
common/views/components/poll-editor.vue:
no-only-one-choice: "アンケートには、選択肢が最低2つ必要です"
choice-n: "選択肢{}"
remove: "この選択肢を削除"
add: "+選択肢を追加"
destroy: "アンケートを破棄"
common/views/components/reaction-picker.vue:
choose-reaction: "リアクションを選択"
common/views/components/signin.vue:
username: "ユーザー名"
password: "パスワード"
token: "トークン"
signing-in: "やってます..."
signin: "サインイン"
common/views/components/signup.vue:
username: "ユーザー名"
checking: "確認しています..."
available: "利用できます"
unavailable: "既に利用されています"
error: "通信エラー"
invalid-format: "a~z、A~Z、0~9、_が使えます"
too-short: "1文字以上でお願いします"
too-long: "20文字以内でお願いします"
password: "パスワード"
password-placeholder: "8文字以上を推奨します"
weak-password: "弱いパスワード"
normal-password: "まあまあのパスワード"
strong-password: "強いパスワード"
retype: "再入力"
retype-placeholder: "確認のため再入力してください"
password-matched: "確認されました"
password-not-matched: "一致していません"
recaptcha: "認証"
create: "アカウント作成"
some-error: "何らかの原因によりアカウントの作成に失敗しました。再度お試しください。"
common/views/components/special-message.vue:
new-year: "Happy New Year!"
christmas: "Merry Christmas!"
common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/twitter-setting.vue:
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
connected-to: "次のTwitterアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
connect: "Twitterと接続する"
disconnect: "切断する"
common/views/components/uploader.vue:
waiting: "待機中"
common/views/components/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
have-a-nice-day: "良い一日を!"
next: "次"
common/views/widgets/donation.vue:
title: "寄付のお願い"
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
common/views/widgets/posts-monitor.vue:
title: "投稿チャート"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
common/views/widgets/memo.vue:
title: "付箋"
memo: "ここに書いて!"
save: "保存"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
replies: "Red ... Replies"
renotes: "Green ... Renotes"
desktop/views/components/activity.vue:
title: "アクティビティ"
toggle: "表示を切り替え"
desktop/views/components/calendar.vue:
title: "{1}年 {2}月"
prev: "前の月"
next: "次の月"
go: "クリックして時間遡行"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
cancel: "キャンセル"
ok: "決定"
choose-prompt: "ファイルを選択"
desktop/views/components/choose-folder-from-drive-window.vue:
cancel: "キャンセル"
ok: "決定"
choose-prompt: "フォルダを選択"
desktop/views/components/crop-window.vue:
skip: "クロップをスキップ"
cancel: "キャンセル"
ok: "決定"
desktop/views/components/drive-window.vue:
used: "使用中"
drive: "ドライブ"
desktop/views/components/drive.file.vue:
avatar: "アイコン"
banner: "バナー"
contextmenu:
rename: "名前を変更"
copy-url: "URLをコピー"
download: "ダウンロード"
else-files: "その他..."
set-as-avatar: "アイコンに設定"
set-as-banner: "バナーに設定"
open-in-app: "アプリで開く"
add-app: "アプリを追加"
rename-file: "ファイル名の変更"
input-new-file-name: "新しいファイル名を入力してください"
copied: "コピー完了"
copied-url-to-clipboard: "URLをクリップボードにコピーしました"
desktop/views/components/drive.folder.vue:
unable-to-process: "操作を完了できません"
circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
unhandled-error: "不明なエラー"
contextmenu:
move-to-this-folder: "このフォルダへ移動"
show-in-new-window: "新しいウィンドウで表示"
rename: "名前を変更"
rename-folder: "フォルダ名の変更"
input-new-folder-name: "新しいフォルダ名を入力してください"
desktop/views/components/drive.nav-folder.vue:
drive: "ドライブ"
desktop/views/components/drive.vue:
search: "検索"
load-more: "もっと読み込む"
empty-draghover: "ドロップですか?いいですよ、ボクはカワイイですからね"
empty-drive: "ドライブには何もありません。"
empty-drive-description: "右クリックして「ファイルをアップロード」を選んだり、ファイルをドラッグ&ドロップすることでもアップロードできます。"
empty-folder: "このフォルダーは空です"
unable-to-process: "操作を完了できません"
circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
unhandled-error: "不明なエラー"
url-upload: "URLアップロード"
url-of-file: "アップロードしたいファイルのURL"
url-upload-requested: "アップロードをリクエストしました"
may-take-time: "アップロードが完了するまで時間がかかる場合があります。"
create-folder: "フォルダー作成"
folder-name: "フォルダー名"
contextmenu:
create-folder: "フォルダーを作成"
upload: "ファイルをアップロード"
url-upload: "URLからアップロード"
desktop/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
desktop/views/components/followers.vue:
empty: "フォロワーはいないようです。"
desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
desktop/views/components/game-window.vue:
game: "オセロ"
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
add: "追加"
desktop/views/input-dialog.vue:
cancel: "キャンセル"
ok: "決定"
desktop/views/components/messaging-room-window.vue:
title: "メッセージ:"
desktop/views/components/messaging-window.vue:
title: "メッセージ"
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
reposted-by: "{}がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/notes.note.vue:
reposted-by: "{}がRenote"
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "読み込みに失敗しました。"
retry: "リトライ"
desktop/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
desktop/views/components/post-form.vue:
reply-placeholder: "この投稿への返信..."
quote-placeholder: "この投稿を引用..."
submit: "投稿"
reply: "返信"
renote: "Renote"
posted: "投稿しました!"
replied: "返信しました!"
reposted: "Renoteしました"
note-failed: "投稿に失敗しました"
reply-failed: "返信に失敗しました"
renote-failed: "Renoteに失敗しました"
posting: "投稿中"
attach-media-from-local: "PCからメディアを添付"
attach-media-from-drive: "ドライブからメディアを添付"
attach-cancel: "添付取り消し"
insert-a-kao: "v(‘ω’)v"
create-poll: "アンケートを作成"
text-remain: "残り{}文字"
desktop/views/components/post-form-window.vue:
note: "新規投稿"
reply: "返信"
attaches: "添付: {}メディア"
uploading-media: "{}個のメディアをアップロード中"
desktop/views/components/progress-dialog.vue:
waiting: "待機中"
desktop/views/components/renote-form.vue:
quote: "引用する..."
cancel: "キャンセル"
renote: "Renote"
reposting: "しています..."
success: "Renoteしました"
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/settings-window.vue:
settings: "設定"
desktop/views/components/settings.vue:
profile: "プロフィール"
notification: "通知"
apps: "アプリ"
mute: "ミュート"
drive: "ドライブ"
security: "セキュリティ"
signin: "サインイン履歴"
password: "パスワード"
2fa: "二段階認証"
other: "その他"
license: "ライセンス"
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
api-via-stream: "ストリームを経由したAPIリクエスト"
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
show-maps: "マップの自動展開"
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "ボリューム"
test: "テスト"
mobile: "モバイル"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
update-checking: "アップデートを確認中"
do-update: "アップデートを確認"
update-settings: "詳細設定"
prevent-update: "アップデートを延期する(非推奨)"
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
no-updates: "利用可能な更新はありません"
no-updates-desc: "お使いのMisskeyは最新です。"
update-available: "新しいバージョンが利用可能です"
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
advanced-settings: "高度な設定"
debug-mode: "デバッグモードを有効にする"
debug-mode-desc: "この設定はブラウザに記憶されます。"
experimental: "実験的機能を有効にする"
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
tools: "ツール"
task-manager: "タスクマネージャ"
third-parties: "サードパーティ"
desktop/views/components/settings.2fa.vue:
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
detail: "詳細..."
url: "https://www.google.co.jp/intl/ja/landing/2step/"
caution: "登録したデバイスを紛失するなどした場合、Misskeyにサインインできなくなりますのでご注意ください。"
register: "デバイスを登録する"
already-registered: "既に設定は完了しています。"
unregister: "設定を解除"
unregistered: "二段階認証が無効になりました。"
enter-password: "パスワードを入力してください"
authenticator: "まず、Google Authenticatorをお使いのデバイスにインストールします:"
howtoinstall: "インストール方法はこちら"
scan: "次に、表示されているQRコードをスキャンします:"
done: "お使いのデバイスに表示されているトークンを入力して完了します:"
submit: "完了"
success: "設定が完了しました!"
failed: "設定に失敗しました。トークンに誤りがないかご確認ください。"
info: "次回サインインからは、同様にパスワードに加えてデバイスに表示されているトークンを入力します。"
desktop/views/components/settings.api.vue:
intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。"
caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。"
regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。"
regenerate-token: "トークンを再生成"
token: "Token:"
enter-password: "パスワードを入力してください"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
desktop/views/components/settings.mute.vue:
no-users: "ミュートしているユーザーはいません"
desktop/views/components/settings.password.vue:
reset: "パスワードを変更する"
enter-current-password: "現在のパスワードを入力してください"
enter-new-password: "新しいパスワードを入力してください"
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
desktop/views/components/settings.profile.vue:
avatar: "アイコン"
choice-avatar: "画像を選択"
name: "名前"
location: "場所"
description: "自己紹介"
birthday: "誕生日"
save: "保存"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
home: "ホーム"
local: "ローカル"
global: "グローバル"
list: "リスト"
desktop/views/components/ui.header.account.vue:
profile: "プロフィール"
drive: "ドライブ"
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "カスタマイズ"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
messaging: "メッセージ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
title: "通知"
desktop/views/components/ui.header.post.vue:
post: "新規投稿"
desktop/views/components/ui.header.search.vue:
placeholder: "検索"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
desktop/views/components/user-preview.vue:
notes: "投稿"
following: "フォロー"
followers: "フォロワー"
desktop/views/components/users-list.vue:
all: "すべて"
iknow: "知り合い"
load-more: "もっと"
fetching: "読み込んでいます"
desktop/views/components/users-list-item.vue:
followed: "フォローされています"
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
signin: "ログイン"
signup: "新規登録"
signin-button: "やってる"
signup-button: "やる"
timeline: "タイムライン"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
more: "さらに読み込む"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue:
prev: "前の投稿"
next: "次の投稿"
desktop/views/pages/selectdrive.vue:
title: "ファイルを選択してください"
ok: "決定"
cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/user-list.users.vue:
users: "ユーザー"
add-user: "ユーザーを追加"
username: "ユーザー名"
desktop/views/pages/user/user.followers-you-know.vue:
title: "知り合いのフォロワー"
loading: "読み込み中"
no-users: "知り合いのフォロワーはいません"
desktop/views/pages/user/user.friends.vue:
title: "よく話すユーザー"
loading: "読み込み中"
no-users: "よく話すユーザーはいません"
desktop/views/pages/user/user.header.vue:
is-suspended: "このユーザーは凍結されています。"
is-remote: "このユーザーはリモートユーザーです。"
view-remote: "正確な情報を見る"
desktop/views/pages/user/user.home.vue:
last-used-at: "最終アクセス"
desktop/views/pages/user/user.photos.vue:
title: "フォト"
loading: "読み込み中"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
stalk: "ストークする"
stalking: "ストーキングしています"
unstalk: "ストーク解除"
mute: "ミュートする"
muted: "ミュートしています"
unmute: "ミュート解除"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
title: "メッセージ"
desktop/views/widgets/notifications.vue:
title: "通知"
settings: "通知の設定"
desktop/views/widgets/polls.vue:
title: "アンケート"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/post-form.vue:
title: "投稿"
note: "投稿"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
desktop/views/widgets/trends.vue:
title: "トレンド"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/users.vue:
title: "おすすめユーザー"
refresh: "他を見る"
no-one: "いません!"
mobile/views/components/drive.vue:
drive: "ドライブ"
used: "使用中"
folder-count: "フォルダ"
count-separator: "、"
file-count: "ファイル"
load-more: "もっと読み込む"
nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
folder-name: "フォルダー名"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "名前を変更"
mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択"
mobile/views/components/drive-folder-chooser.vue:
select-folder: "フォルダーを選択"
mobile/views/components/drive.file-detail.vue:
download: "ダウンロード"
rename: "名前を変更"
move: "移動"
hash: "ハッシュ (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
reposted-by: "{}がRenote"
more: "もっと見る"
less: "隠す"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-detail.vue:
reply: "返信"
reaction: "リアクション"
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。"
retry: "リトライ"
mobile/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加"
submit: "投稿"
reply: "返信"
renote: "Renote"
quote-placeholder: "この投稿を引用... (オプション)"
reply-placeholder: "この投稿への返信..."
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "お使いの端末は位置情報に対応していません"
error: "エラー"
username-prompt: "ユーザー名を入力してください"
mobile/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "投稿がありません"
load-more: "もっと"
mobile/views/components/ui.nav.vue:
timeline: "タイムライン"
notifications: "通知"
messaging: "メッセージ"
follow-requests: "フォロー申請"
search: "検索"
drive: "ドライブ"
favorites: "お気に入り"
user-lists: "リスト"
widgets: "ウィジェット"
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
load-more: "もっと"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
load-more: "もっと"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
title: "リスト"
enter-list-name: "リスト名を入力してください"
mobile/views/pages/drive.vue:
drive: "ドライブ"
more: "もっと見る"
mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー"
mobile/views/pages/following.vue:
following-of: "{}のフォロー"
mobile/views/pages/home.vue:
home: "ホーム"
local: "ローカル"
global: "グローバル"
mobile/views/pages/messaging.vue:
messaging: "メッセージ"
mobile/views/pages/messaging-room.vue:
messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
mobile/views/pages/note.vue:
title: "投稿"
prev: "前の投稿"
next: "次の投稿"
mobile/views/pages/notifications.vue:
notifications: "通知"
read-all: "すべての通知を既読にしますか?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-cat: "このアカウントはCatです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
mobile/views/pages/search.vue:
search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択"
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
update-checking: "アップデートを確認中"
check-for-updates: "アップデートを確認"
no-updates: "利用可能な更新はありません"
no-updates-desc: "お使いのMisskeyは最新です。"
update-available: "新しいバージョンが利用可能です"
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"
followers: "フォロワー"
notes: "投稿"
overview: "概要"
timeline: "タイムライン"
media: "メディア"
is-suspended: "このユーザーは凍結されています。"
is-remote: "このユーザーはリモートユーザーです。"
view-remote: "正確な情報を見る"
mobile/views/pages/user/home.vue:
recent-notes: "最近の投稿"
images: "画像"
activity: "アクティビティ"
keywords: "キーワード"
domains: "頻出ドメイン"
frequently-replied-users: "よく会話するユーザー"
followers-you-know: "知り合いのフォロワー"
last-used-at: "最終ログイン"
mobile/views/pages/user/home.followers-you-know.vue:
loading: "読み込み中"
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
loading: "読み込み中"
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
loading: "読み込み中"
no-notes: "投稿はありません"
mobile/views/pages/user/home.photos.vue:
loading: "読み込み中"
no-photos: "写真はありません"
docs:
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
edit-this-page-on-github-link: "このページをGitHubで編集"
api:
entities:
properties: "プロパティ"
endpoints:
params: "パラメータ"
res: "レスポンス"
props:
name: "名前"
type: "型"
optional: "オプション"
description: "説明"
yes: "はい"
no: "いいえ"

View File

@ -1,9 +1,11 @@
---
meta:
lang: "日本語"
lang: "Русский язык"
divider: ""
common:
misskey: "Misskeyで皆と共有しよう。"
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
time:
unknown: "なぞのじかん"
future: "未来"
@ -33,11 +35,58 @@ common:
angry: "おこ"
confused: "こまこまのこまり"
pudding: "Pudding"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
c: "何をお考えですか?"
d: "言いたいことは?"
e: "ここに書いてください"
f: "あなたが書くのを待っています..."
delete: "削除"
loading: "読み込み中"
ok: "わかった"
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
widgets:
analog-clock: "アナログ時計"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
memo: "付箋"
trends: "トレンド"
photo-stream: "フォトストリーム"
posts-monitor: "投稿チャート"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "アンケート"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
deck:
widgets: "ウィジェット"
home: "ホーム"
local: "ローカル"
global: "グローバル"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
@ -92,6 +141,8 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
delete-confirm: "この投稿を削除しますか?"
remote: "投稿元で見る"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
@ -101,11 +152,11 @@ common/views/components/poll.vue:
show-result: "結果を見る"
voted: "投票済み"
common/views/components/poll-editor.vue:
no-only-one-choice: "投票には、選択肢が最低2つ必要です"
no-only-one-choice: "アンケートには、選択肢が最低2つ必要です"
choice-n: "選択肢{}"
remove: "この選択肢を削除"
add: "+選択肢を追加"
destroy: "投票を破棄"
destroy: "アンケートを破棄"
common/views/components/reaction-picker.vue:
choose-reaction: "リアクションを選択"
common/views/components/signin.vue:
@ -151,6 +202,15 @@ common/views/components/twitter-setting.vue:
disconnect: "切断する"
common/views/components/uploader.vue:
waiting: "待機中"
common/views/components/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@ -162,18 +222,19 @@ common/views/widgets/donation.vue:
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
common/views/widgets/posts-monitor.vue:
title: "投稿チャート"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
commons/views/widgets/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/memo.vue:
title: "付箋"
memo: "ここに書いて!"
save: "保存"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -253,8 +314,10 @@ desktop/views/components/drive.vue:
upload: "ファイルをアップロード"
url-upload: "URLからアップロード"
desktop/views/components/follow-button.vue:
unfollow: "フォロー解除"
follow: "フォローする"
following: "フォロー"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
desktop/views/components/followers.vue:
@ -274,25 +337,6 @@ desktop/views/components/game-window.vue:
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
trends: "トレンド"
photostream: "フォトストリーム"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "投票"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
add: "追加"
desktop/views/input-dialog.vue:
cancel: "キャンセル"
@ -303,19 +347,20 @@ desktop/views/components/messaging-window.vue:
title: "メッセージ"
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "(この投稿は非公開です)"
is-renote: "がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
reposted-by: "{}がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue:
private: "(この投稿は非公開です)"
desktop/views/components/notes.note.vue:
reposted-by: "{}がRenote"
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "読み込みに失敗しました。"
retry: "リトライ"
@ -323,10 +368,9 @@ desktop/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
desktop/views/components/post-form.vue:
note-placeholder: "いまどうしてる?"
reply-placeholder: "この投稿への返信..."
quote-placeholder: "この投稿を引用..."
note: "投稿"
submit: "投稿"
reply: "返信"
renote: "Renote"
posted: "投稿しました!"
@ -340,7 +384,7 @@ desktop/views/components/post-form.vue:
attach-media-from-drive: "ドライブからメディアを添付"
attach-cancel: "添付取り消し"
insert-a-kao: "v(‘ω’)v"
create-poll: "投票を作成"
create-poll: "アンケートを作成"
text-remain: "残り{}文字"
desktop/views/components/post-form-window.vue:
note: "新規投稿"
@ -358,6 +402,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/settings-window.vue:
settings: "設定"
desktop/views/components/settings.vue:
profile: "プロフィール"
notification: "通知"
@ -456,7 +502,7 @@ desktop/views/components/settings.api.vue:
regenerate-token: "トークンを再生成"
token: "Token:"
enter-password: "パスワードを入力してください"
desktop/views/components/settings.app.vue:
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
desktop/views/components/settings.mute.vue:
no-users: "ミュートしているユーザーはいません"
@ -475,10 +521,13 @@ desktop/views/components/settings.profile.vue:
description: "自己紹介"
birthday: "誕生日"
save: "保存"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@ -491,12 +540,14 @@ desktop/views/components/ui.header.account.vue:
drive: "ドライブ"
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "カスタマイズ"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
messaging: "メッセージ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
@ -505,7 +556,12 @@ desktop/views/components/ui.header.post.vue:
post: "新規投稿"
desktop/views/components/ui.header.search.vue:
placeholder: "検索"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
desktop/views/components/user-preview.vue:
notes: "投稿"
@ -521,6 +577,21 @@ desktop/views/components/users-list-item.vue:
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
signin: "ログイン"
signup: "新規登録"
signin-button: "やってる"
signup-button: "やる"
timeline: "タイムライン"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
@ -576,13 +647,12 @@ desktop/views/widgets/notifications.vue:
title: "通知"
settings: "通知の設定"
desktop/views/widgets/polls.vue:
title: "投票"
title: "アンケート"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/post-form.vue:
title: "投稿"
note: "投稿"
placeholder: "いまどうしてる?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "もっと読み込む"
nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
folder-name: "フォルダー名"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "名前を変更"
mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "ハッシュ (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
unfollow: "フォロー解除"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
reposted-by: "{}がRenote"
more: "もっと見る"
less: "隠す"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-detail.vue:
reply: "返信"
reaction: "リアクション"
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。"
retry: "リトライ"
mobile/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加"
submit: "投稿"
reply: "返信"
renote: "Renote"
renote-placeholder: "この投稿を引用... (オプション)"
quote-placeholder: "この投稿を引用... (オプション)"
reply-placeholder: "この投稿への返信..."
note-placeholder: "いまどうしてる?"
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "お使いの端末は位置情報に対応していません"
error: "エラー"
username-prompt: "ユーザー名を入力してください"
mobile/views/components/sub-note-content.vue:
media-count: "{}個のメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "投稿がありません"
load-more: "もっと"
mobile/views/components/ui.nav.vue:
home: "ホーム"
timeline: "タイムライン"
notifications: "通知"
messaging: "メッセージ"
follow-requests: "フォロー申請"
search: "検索"
drive: "ドライブ"
favorites: "お気に入り"
user-lists: "リスト"
widgets: "ウィジェット"
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
@ -653,18 +772,30 @@ mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
load-more: "もっと"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
title: "リスト"
enter-list-name: "リスト名を入力してください"
mobile/views/pages/drive.vue:
drive: "ドライブ"
more: "もっと見る"
mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー"
mobile/views/pages/following.vue:
following-of: "{}のフォロー"
mobile/views/pages/home.vue:
timeline: "タイムライン"
home: "ホーム"
local: "ローカル"
global: "グローバル"
mobile/views/pages/messaging.vue:
messaging: "メッセージ"
mobile/views/pages/messaging-room.vue:
messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
mobile/views/pages/note.vue:
title: "投稿"
prev: "前の投稿"
@ -674,7 +805,6 @@ mobile/views/pages/notifications.vue:
read-all: "すべての通知を既読にしますか?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
name: "名前"
account: "アカウント"
location: "場所"
@ -682,7 +812,7 @@ mobile/views/pages/settings/settings.profile.vue:
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
@ -713,6 +843,8 @@ mobile/views/pages/settings.vue:
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"

View File

@ -1,9 +1,11 @@
---
meta:
lang: "日本語"
lang: "中文(简体)"
divider: ""
common:
misskey: "Misskeyで皆と共有しよう。"
misskey: "A planet of fediverse"
about-title: "A ⭐ of fediverse."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
time:
unknown: "なぞのじかん"
future: "未来"
@ -33,11 +35,58 @@ common:
angry: "おこ"
confused: "こまこまのこまり"
pudding: "Pudding"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
c: "何をお考えですか?"
d: "言いたいことは?"
e: "ここに書いてください"
f: "あなたが書くのを待っています..."
delete: "削除"
loading: "読み込み中"
ok: "わかった"
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
widgets:
analog-clock: "アナログ時計"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
memo: "付箋"
trends: "トレンド"
photo-stream: "フォトストリーム"
posts-monitor: "投稿チャート"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "アンケート"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
deck:
widgets: "ウィジェット"
home: "ホーム"
local: "ローカル"
global: "グローバル"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
@ -92,6 +141,8 @@ common/views/components/nav.vue:
common/views/components/note-menu.vue:
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
delete-confirm: "この投稿を削除しますか?"
remote: "投稿元で見る"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
@ -101,11 +152,11 @@ common/views/components/poll.vue:
show-result: "結果を見る"
voted: "投票済み"
common/views/components/poll-editor.vue:
no-only-one-choice: "投票には、選択肢が最低2つ必要です"
no-only-one-choice: "アンケートには、選択肢が最低2つ必要です"
choice-n: "選択肢{}"
remove: "この選択肢を削除"
add: "+選択肢を追加"
destroy: "投票を破棄"
destroy: "アンケートを破棄"
common/views/components/reaction-picker.vue:
choose-reaction: "リアクションを選択"
common/views/components/signin.vue:
@ -151,6 +202,15 @@ common/views/components/twitter-setting.vue:
disconnect: "切断する"
common/views/components/uploader.vue:
waiting: "待機中"
common/views/components/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@ -162,18 +222,19 @@ common/views/widgets/donation.vue:
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
common/views/widgets/posts-monitor.vue:
title: "投稿チャート"
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
commons/views/widgets/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/widgets/memo.vue:
title: "付箋"
memo: "ここに書いて!"
save: "保存"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -253,8 +314,10 @@ desktop/views/components/drive.vue:
upload: "ファイルをアップロード"
url-upload: "URLからアップロード"
desktop/views/components/follow-button.vue:
unfollow: "フォロー解除"
follow: "フォローする"
following: "フォロー"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
desktop/views/components/followers.vue:
@ -274,25 +337,6 @@ desktop/views/components/game-window.vue:
desktop/views/components/home.vue:
done: "完了"
add-widget: "ウィジェットを追加:"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
trends: "トレンド"
photostream: "フォトストリーム"
slideshow: "スライドショー"
version: "バージョン"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "投票"
post-form: "投稿フォーム"
messaging: "メッセージ"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
add: "追加"
desktop/views/input-dialog.vue:
cancel: "キャンセル"
@ -303,19 +347,20 @@ desktop/views/components/messaging-window.vue:
title: "メッセージ"
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "(この投稿は非公開です)"
is-renote: "がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
reposted-by: "{}がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue:
private: "(この投稿は非公開です)"
desktop/views/components/notes.note.vue:
reposted-by: "{}がRenote"
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "読み込みに失敗しました。"
retry: "リトライ"
@ -323,10 +368,9 @@ desktop/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
desktop/views/components/post-form.vue:
note-placeholder: "いまどうしてる?"
reply-placeholder: "この投稿への返信..."
quote-placeholder: "この投稿を引用..."
note: "投稿"
submit: "投稿"
reply: "返信"
renote: "Renote"
posted: "投稿しました!"
@ -340,7 +384,7 @@ desktop/views/components/post-form.vue:
attach-media-from-drive: "ドライブからメディアを添付"
attach-cancel: "添付取り消し"
insert-a-kao: "v(‘ω’)v"
create-poll: "投票を作成"
create-poll: "アンケートを作成"
text-remain: "残り{}文字"
desktop/views/components/post-form-window.vue:
note: "新規投稿"
@ -358,6 +402,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/settings-window.vue:
settings: "設定"
desktop/views/components/settings.vue:
profile: "プロフィール"
notification: "通知"
@ -456,7 +502,7 @@ desktop/views/components/settings.api.vue:
regenerate-token: "トークンを再生成"
token: "Token:"
enter-password: "パスワードを入力してください"
desktop/views/components/settings.app.vue:
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
desktop/views/components/settings.mute.vue:
no-users: "ミュートしているユーザーはいません"
@ -475,10 +521,13 @@ desktop/views/components/settings.profile.vue:
description: "自己紹介"
birthday: "誕生日"
save: "保存"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@ -491,12 +540,14 @@ desktop/views/components/ui.header.account.vue:
drive: "ドライブ"
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "カスタマイズ"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
messaging: "メッセージ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
@ -505,7 +556,12 @@ desktop/views/components/ui.header.post.vue:
post: "新規投稿"
desktop/views/components/ui.header.search.vue:
placeholder: "検索"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
desktop/views/components/user-preview.vue:
notes: "投稿"
@ -521,6 +577,21 @@ desktop/views/components/users-list-item.vue:
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
signin: "ログイン"
signup: "新規登録"
signin-button: "やってる"
signup-button: "やる"
timeline: "タイムライン"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
@ -576,13 +647,12 @@ desktop/views/widgets/notifications.vue:
title: "通知"
settings: "通知の設定"
desktop/views/widgets/polls.vue:
title: "投票"
title: "アンケート"
refresh: "他を見る"
nothing: "ありません!"
desktop/views/widgets/post-form.vue:
title: "投稿"
note: "投稿"
placeholder: "いまどうしてる?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
@ -603,6 +673,15 @@ mobile/views/components/drive.vue:
load-more: "もっと読み込む"
nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
folder-name: "フォルダー名"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
url-prompt: "アップロードしたいファイルのURL"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue:
rename: "名前を変更"
mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択"
mobile/views/components/drive-folder-chooser.vue:
@ -614,35 +693,75 @@ mobile/views/components/drive.file-detail.vue:
hash: "ハッシュ (md5)"
exif: "EXIF"
mobile/views/components/follow-button.vue:
following: "フォロー中"
follow: "フォロー"
unfollow: "フォロー解除"
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
reposted-by: "{}がRenote"
more: "もっと見る"
less: "隠す"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-detail.vue:
reply: "返信"
reaction: "リアクション"
reposted-by: "{}がRenote"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
location: "位置情報"
mobile/views/components/note-preview.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/note-sub.vue:
admin: "admin"
bot: "bot"
cat: "cat"
mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。"
retry: "リトライ"
mobile/views/components/notifications.vue:
more: "もっと見る"
empty: "ありません!"
mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加"
submit: "投稿"
reply: "返信"
renote: "Renote"
renote-placeholder: "この投稿を引用... (オプション)"
quote-placeholder: "この投稿を引用... (オプション)"
reply-placeholder: "この投稿への返信..."
note-placeholder: "いまどうしてる?"
cw-placeholder: "内容への注釈 (オプション)"
location-alert: "お使いの端末は位置情報に対応していません"
error: "エラー"
username-prompt: "ユーザー名を入力してください"
mobile/views/components/sub-note-content.vue:
media-count: "{}個のメディア"
poll: "投票"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
mobile/views/components/timeline.vue:
empty: "投稿がありません"
load-more: "もっと"
mobile/views/components/ui.nav.vue:
home: "ホーム"
timeline: "タイムライン"
notifications: "通知"
messaging: "メッセージ"
follow-requests: "フォロー申請"
search: "検索"
drive: "ドライブ"
favorites: "お気に入り"
user-lists: "リスト"
widgets: "ウィジェット"
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
@ -653,18 +772,30 @@ mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
load-more: "もっと"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
title: "リスト"
enter-list-name: "リスト名を入力してください"
mobile/views/pages/drive.vue:
drive: "ドライブ"
more: "もっと見る"
mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー"
mobile/views/pages/following.vue:
following-of: "{}のフォロー"
mobile/views/pages/home.vue:
timeline: "タイムライン"
home: "ホーム"
local: "ローカル"
global: "グローバル"
mobile/views/pages/messaging.vue:
messaging: "メッセージ"
mobile/views/pages/messaging-room.vue:
messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
mobile/views/pages/note.vue:
title: "投稿"
prev: "前の投稿"
@ -674,7 +805,6 @@ mobile/views/pages/notifications.vue:
read-all: "すべての通知を既読にしますか?"
mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール"
will-be-published: "※公開されます"
name: "名前"
account: "アカウント"
location: "場所"
@ -682,7 +812,7 @@ mobile/views/pages/settings/settings.profile.vue:
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです"
save: "保存"
saved: "プロフィールを保存しました"
uploading: "アップロード中"
@ -713,6 +843,8 @@ mobile/views/pages/settings.vue:
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"

View File

@ -1,8 +1,8 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "2.13.0",
"clientVersion": "1.0.5576",
"version": "2.37.7",
"clientVersion": "1.0.6474",
"codename": "nighthike",
"main": "./built/index.js",
"private": true,
@ -29,12 +29,71 @@
"@fortawesome/fontawesome-free-solid": "5.0.2",
"@koa/cors": "2.2.1",
"@prezzemolo/rap": "0.1.2",
"autwh": "0.1.0",
"bcryptjs": "2.4.3",
"cafy": "8.0.0",
"chalk": "2.4.1",
"crc-32": "1.2.0",
"debug": "3.1.0",
"deepcopy": "0.6.3",
"diskusage": "0.2.4",
"elasticsearch": "15.0.0",
"emojilib": "2.2.12",
"escape-regexp": "0.0.1",
"file-type": "8.0.0",
"gm": "1.23.1",
"http-signature": "1.2.0",
"is-root": "2.0.0",
"is-url": "1.2.4",
"js-yaml": "3.11.0",
"jsdom": "11.11.0",
"koa": "2.5.1",
"koa-bodyparser": "4.2.1",
"koa-compress": "3.0.0",
"koa-favicon": "2.0.1",
"koa-json-body": "5.3.0",
"koa-logger": "3.2.0",
"koa-mount": "3.0.0",
"koa-multer": "1.0.2",
"koa-router": "7.4.0",
"koa-send": "4.1.3",
"koa-slow": "2.1.0",
"koa-views": "6.1.4",
"kue": "0.11.6",
"mongodb": "3.0.10",
"monk": "6.0.6",
"ms": "2.1.1",
"nopt": "4.0.1",
"os-utils": "0.0.14",
"parse5": "5.0.0",
"prominence": "0.2.0",
"promise-sequential": "1.1.1",
"punycode": "2.1.1",
"qrcode": "1.2.0",
"ratelimiter": "3.0.3",
"recaptcha-promise": "0.1.3",
"reconnecting-websocket": "3.2.2",
"redis": "2.8.0",
"request": "2.87.0",
"request-promise-native": "1.0.5",
"rndstr": "1.0.0",
"speakeasy": "2.0.0",
"summaly": "2.0.6",
"tcp-port-used": "0.1.2",
"tmp": "0.0.33",
"uuid": "3.2.1",
"web-push": "3.3.1",
"webfinger.js": "2.6.6",
"websocket": "1.0.26",
"ws": "5.2.0",
"xev": "2.0.1"
},
"devDependencies": {
"@prezzemolo/zip": "0.0.3",
"@types/bcryptjs": "2.4.1",
"@types/debug": "0.0.30",
"@types/deep-equal": "1.0.1",
"@types/elasticsearch": "5.0.23",
"@types/eventemitter3": "2.0.2",
"@types/gm": "1.18.0",
"@types/gulp": "3.8.36",
"@types/gulp-htmlmin": "1.3.32",
@ -63,7 +122,6 @@
"@types/mkdirp": "0.5.2",
"@types/mocha": "5.2.0",
"@types/mongodb": "3.0.18",
"@types/monk": "6.0.0",
"@types/ms": "0.7.30",
"@types/node": "10.1.2",
"@types/nopt": "3.0.29",
@ -86,35 +144,22 @@
"@types/ws": "5.1.1",
"animejs": "2.2.0",
"autosize": "4.0.2",
"autwh": "0.1.0",
"bcryptjs": "2.4.3",
"bootstrap-vue": "2.0.0-rc.6",
"cafy": "8.0.0",
"chalk": "2.4.1",
"crc-32": "1.2.0",
"css-loader": "0.28.11",
"debug": "3.1.0",
"deep-equal": "1.0.1",
"deepcopy": "0.6.3",
"diskusage": "0.2.4",
"dompurify": "1.0.4",
"elasticsearch": "15.0.0",
"element-ui": "2.3.9",
"emojilib": "2.2.12",
"escape-regexp": "0.0.1",
"eslint": "4.19.1",
"eslint-plugin-vue": "4.5.0",
"eventemitter3": "3.1.0",
"exif-js": "2.3.0",
"file-loader": "1.1.11",
"file-type": "8.0.0",
"fuckadblock": "3.2.1",
"gm": "1.23.1",
"gulp": "3.9.1",
"gulp-cssnano": "2.1.3",
"gulp-htmlmin": "4.0.0",
"gulp-imagemin": "4.1.0",
"gulp-mocha": "5.0.0",
"gulp-mocha": "6.0.0",
"gulp-pug": "4.0.1",
"gulp-rename": "1.2.3",
"gulp-replace": "1.0.0",
@ -124,100 +169,55 @@
"gulp-typescript": "4.0.2",
"gulp-uglify": "3.0.0",
"gulp-util": "3.0.8",
"hard-source-webpack-plugin": "0.6.9",
"hard-source-webpack-plugin": "0.6.10",
"highlight.js": "9.12.0",
"html-minifier": "3.5.15",
"http-signature": "1.2.0",
"html-minifier": "3.5.16",
"inquirer": "5.2.0",
"is-root": "2.0.0",
"is-url": "1.2.4",
"js-yaml": "3.11.0",
"jsdom": "11.10.0",
"koa": "2.5.1",
"koa-bodyparser": "4.2.0",
"koa-compress": "3.0.0",
"koa-favicon": "2.0.1",
"koa-json-body": "5.3.0",
"koa-logger": "3.2.0",
"koa-mount": "3.0.0",
"koa-multer": "1.0.2",
"koa-router": "7.4.0",
"koa-send": "4.1.3",
"koa-slow": "2.1.0",
"koa-views": "6.1.4",
"kue": "0.11.6",
"license-checker": "20.0.0",
"loader-utils": "1.1.0",
"mecab-async": "0.1.2",
"mkdirp": "0.5.1",
"mocha": "5.2.0",
"moji": "0.5.1",
"mongodb": "3.0.8",
"monk": "6.0.6",
"ms": "2.1.1",
"nan": "2.10.0",
"node-sass": "4.9.0",
"node-sass-json-importer": "3.2.0",
"nopt": "4.0.1",
"nprogress": "0.2.0",
"object-assign-deep": "0.4.0",
"on-build-webpack": "0.1.0",
"os-utils": "0.0.14",
"parse5": "4.0.0",
"progress-bar-webpack-plugin": "1.11.0",
"prominence": "0.2.0",
"promise-sequential": "1.1.1",
"pug": "2.0.3",
"punycode": "2.1.0",
"qrcode": "1.2.0",
"ratelimiter": "3.0.3",
"recaptcha-promise": "0.1.3",
"reconnecting-websocket": "3.2.2",
"redis": "2.8.0",
"request": "2.86.0",
"request-promise-native": "1.0.5",
"rimraf": "2.6.2",
"rndstr": "1.0.0",
"s-age": "1.1.2",
"sass-loader": "7.0.1",
"seedrandom": "2.4.3",
"single-line-log": "1.1.2",
"speakeasy": "2.0.0",
"style-loader": "0.21.0",
"stylus": "0.54.5",
"stylus-loader": "3.0.2",
"summaly": "2.0.6",
"swagger-jsdoc": "1.9.7",
"syuilo-password-strength": "0.0.1",
"tcp-port-used": "0.1.2",
"textarea-caret": "3.1.0",
"tmp": "0.0.33",
"ts-loader": "4.3.0",
"ts-node": "6.0.3",
"ts-node": "6.0.4",
"tslint": "5.10.0",
"typescript": "2.8.3",
"typescript-eslint-parser": "15.0.0",
"uglify-es": "3.3.9",
"url-loader": "1.0.1",
"uuid": "3.2.1",
"v-animate-css": "0.0.2",
"vue": "2.5.16",
"vue-cropperjs": "2.2.0",
"vue-js-modal": "1.3.13",
"vue-json-tree-view": "2.1.4",
"vue-loader": "15.1.0",
"vue-loader": "15.2.1",
"vue-material": "^1.0.0-beta-10.2",
"vue-router": "3.0.1",
"vue-template-compiler": "2.5.16",
"vuedraggable": "2.16.0",
"vuex": "3.0.1",
"vuex-persistedstate": "^2.5.4",
"web-push": "3.3.1",
"webfinger.js": "2.6.6",
"webpack": "4.8.3",
"webpack-cli": "2.1.3",
"websocket": "1.0.26",
"ws": "5.1.1",
"xev": "2.0.0"
"webpack": "4.9.1",
"webpack-cli": "2.1.4"
}
}

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 512 512" width="512" height="512"><defs><clipPath id="_clipPath_P6eAE2OaBltOJ3gHGVajfqsOnfv4xIns"><rect width="512" height="512"/></clipPath></defs><g clip-path="url(#_clipPath_P6eAE2OaBltOJ3gHGVajfqsOnfv4xIns)"><clipPath id="_clipPath_P6q7MZAUp3XpQhVgs2GuAbegX9v4gkom"><rect x="0" y="0" width="512" height="512" transform="matrix(1,0,0,1,0,0)" fill="rgb(255,255,255)"/></clipPath><g clip-path="url(#_clipPath_P6q7MZAUp3XpQhVgs2GuAbegX9v4gkom)"><g id="Group"><g id="g4502"><g id="g5125"><g id="text4489"><path d=" M 190.093 359.243 C 167.923 359.32 148.881 345.963 139.9 330.409 C 135.104 323.615 125.617 321.198 125.482 330.409 L 125.482 372.939 C 125.482 390.026 119.253 404.799 106.794 417.258 C 94.69 429.362 79.917 435.413 62.474 435.413 C 45.387 435.413 30.614 429.362 18.155 417.258 C 6.052 404.799 0 390.026 0 372.939 L 0 139.061 C 0 125.89 3.738 113.965 11.213 103.285 C 19.045 92.25 29.012 84.596 41.116 80.325 C 47.879 77.833 54.999 76.587 62.474 76.587 C 81.697 76.587 97.716 84.062 110.531 99.013 C 117.295 106.489 121.211 110.405 122.279 110.761 C 122.279 110.761 173.043 172.145 174.467 173.213 C 175.891 174.281 180.073 182.446 190.093 182.446 C 200.112 182.446 204.829 174.281 206.253 173.213 C 207.676 172.145 258.44 110.761 258.44 110.761 C 258.796 111.117 262.534 107.201 269.654 99.013 C 282.825 84.062 299.022 76.587 318.245 76.587 C 325.364 76.587 332.484 77.833 339.603 80.325 C 351.707 84.596 361.496 92.25 368.972 103.285 C 376.803 113.965 380.719 125.89 380.719 139.061 L 380.719 372.939 C 380.719 390.026 374.489 404.799 362.03 417.258 C 349.927 429.362 335.154 435.413 317.711 435.413 C 300.624 435.413 285.851 429.362 273.391 417.258 C 261.288 404.799 255.237 390.026 255.237 372.939 L 255.237 330.409 C 254.184 318.802 243.925 326.116 240.285 330.409 C 230.674 348.208 212.262 359.167 190.093 359.243 Z M 457.535 184.448 Q 435.109 184.448 419.09 168.963 Q 403.605 152.944 403.605 130.518 Q 403.605 108.091 419.09 92.606 Q 435.109 76.587 457.535 76.587 Q 479.962 76.587 495.981 92.606 Q 512 108.091 512 130.518 Q 512 152.944 495.981 168.963 Q 479.962 184.448 457.535 184.448 Z M 458.069 195.128 Q 480.496 195.128 495.981 211.147 Q 512 227.166 512 249.592 L 512 381.482 Q 512 403.909 495.981 419.928 Q 480.496 435.413 458.069 435.413 Q 435.643 435.413 419.624 419.928 Q 403.605 403.909 403.605 381.482 L 403.605 249.592 Q 403.605 227.166 419.624 211.147 Q 435.643 195.128 458.069 195.128 Z " fill-rule="evenodd" fill="rgb(157,157,157)"/></g></g></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="1024px" height="512px" viewBox="0 256 1024 512" enable-background="new 0 256 1024 512" xml:space="preserve">
<polyline opacity="0.5" fill="none" stroke="#000000" stroke-width="34" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
896.5,608.5 800.5,416.5 704.5,608.5 608.5,416.5 512.5,608.5 416.5,416.5 320.5,608.5 224.5,416.5 128.5,608.5 "/>
</svg>

Before

Width:  |  Height:  |  Size: 646 B

View File

@ -20,6 +20,7 @@ init(launch => {
// Init router
const router = new VueRouter({
mode: 'history',
base: '/auth/',
routes: [
{ path: '/:token', component: Index },
]

View File

@ -1,8 +1,9 @@
<template>
<div class="index">
<main v-if="os.isSignedIn">
<main v-if="$store.getters.isSignedIn">
<p class="fetching" v-if="fetching">読み込み中<mk-ellipsis/></p>
<x-form
class="form"
ref="form"
v-if="state == 'waiting'"
:session="session"
@ -22,11 +23,11 @@
<p>セッションが存在しません</p>
</div>
</main>
<main class="signin" v-if="!os.isSignedIn">
<main class="signin" v-if="!$store.getters.isSignedIn">
<h1>サインインしてください</h1>
<mk-signin/>
</main>
<footer><img src="/assets/auth/logo.svg" alt="Misskey"/></footer>
<footer><img src="/assets/auth/icon.svg" alt="Misskey"/></footer>
</div>
</template>
@ -51,7 +52,7 @@ export default Vue.extend({
}
},
mounted() {
if (!this.$root.$data.os.isSignedIn) return;
if (!this.$store.getters.isSignedIn) return;
// Fetch session
(this as any).api('auth/session/show', {
@ -62,7 +63,7 @@ export default Vue.extend({
// 既に連携していた場合
if (this.session.app.isAuthorized) {
this.$root.$data.os.api('auth/accept', {
(this as any).api('auth/accept', {
token: this.session.token
}).then(() => {
this.accepted();
@ -72,6 +73,7 @@ export default Vue.extend({
}
}).catch(error => {
this.state = 'fetch-session-error';
this.fetching = false;
});
},
methods: {
@ -101,7 +103,7 @@ export default Vue.extend({
padding 32px
color #555
> div
> div:not(.form)
padding 64px
> h1
@ -142,8 +144,8 @@ export default Vue.extend({
> footer
> img
display block
width 64px
height 64px
margin 0 auto
width 32px
height 32px
margin 16px auto
</style>

View File

@ -19,7 +19,7 @@ html
| Misskey
block desc
meta(name='description' content='A SNS')
meta(name='description' content='A planet of fediverse')
block meta
@ -42,7 +42,7 @@ html
| JavaScriptを有効にしてください
br
| Please turn on your JavaScript
div#ini: p
span .
span .
span .
div#ini.
<svg viewBox="0 0 50 50">
<path fill=#{themeColor} d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z" />
</svg>

View File

@ -18,15 +18,23 @@
return;
}
//#region Load settings
let settings = null;
const vuex = localStorage.getItem('vuex');
if (vuex) {
settings = JSON.parse(vuex);
}
//#endregion
// Get the current url information
const url = new URL(location.href);
//#region Detect app name
let app = null;
if (url.pathname == '/docs') app = 'docs';
if (url.pathname == '/dev') app = 'dev';
if (url.pathname == '/auth') app = 'auth';
if (url.pathname == '/docs' || url.pathname.startsWith('/docs/')) app = 'docs';
if (url.pathname == '/dev' || url.pathname.startsWith('/dev/')) app = 'dev';
if (url.pathname == '/auth' || url.pathname.startsWith('/auth/')) app = 'auth';
//#endregion
//#region Detect the user language
@ -35,14 +43,9 @@
// The default language is English
if (!LANGS.includes(lang)) lang = 'en';
const vuex = localStorage.getItem('vuex');
if (vuex) {
const data = JSON.parse(vuex);
if (data.device.lang) lang = data.device.lang;
if (settings) {
if (settings.device.lang) lang = settings.device.lang;
}
const storedLang = localStorage.getItem('lang');
if (storedLang) lang = storedLang;
//#endregion
// Detect the user agent
@ -71,8 +74,10 @@
}
// Dark/Light
if (localStorage.getItem('darkmode') == 'true') {
document.documentElement.setAttribute('data-darkmode', 'true');
if (settings) {
if (settings.device.darkmode) {
document.documentElement.setAttribute('data-darkmode', 'true');
}
}
// Script version

View File

@ -9,9 +9,9 @@ export default function<T extends object>(data: {
widget: {
type: Object
},
isMobile: {
type: Boolean,
default: false
platform: {
type: String,
required: true
},
isCustomizeMode: {
type: Boolean,
@ -66,17 +66,10 @@ export default function<T extends object>(data: {
this.bakeProps();
if (this.isMobile) {
(this as any).api('i/update_mobile_home', {
id: this.id,
data: this.props
});
} else {
(this as any).api('i/update_home', {
id: this.id,
data: this.props
});
}
(this as any).api('i/update_widget', {
id: this.id,
data: this.props
});
}
}
});

View File

@ -1,5 +1,3 @@
import * as merge from 'object-assign-deep';
import Stream from './stream';
import StreamManager from './stream-manager';
import MiOS from '../../../mios';
@ -20,14 +18,36 @@ export class HomeStream extends Stream {
}, 1000 * 60);
// 自分の情報が更新されたとき
this.on('i_updated', i => {
this.on('meUpdated', i => {
if (os.debug) {
console.log('I updated:', i);
}
merge(me, i);
// キャッシュ更新
os.bakeMe();
os.store.dispatch('mergeMe', i);
});
this.on('read_all_notifications', () => {
os.store.dispatch('mergeMe', {
hasUnreadNotification: false
});
});
this.on('unread_notification', () => {
os.store.dispatch('mergeMe', {
hasUnreadNotification: true
});
});
this.on('read_all_messaging_messages', () => {
os.store.dispatch('mergeMe', {
hasUnreadMessagingMessage: false
});
});
this.on('unread_messaging_message', () => {
os.store.dispatch('mergeMe', {
hasUnreadMessagingMessage: true
});
});
this.on('clientSettingUpdated', x => {
@ -38,25 +58,18 @@ export class HomeStream extends Stream {
});
this.on('home_updated', x => {
if (x.home) {
os.store.commit('settings/setHome', x.home);
} else {
os.store.commit('settings/setHomeWidget', {
id: x.id,
data: x.data
});
}
os.store.commit('settings/setHome', x);
});
this.on('mobile_home_updated', x => {
if (x.home) {
os.store.commit('settings/setMobileHome', x.home);
} else {
os.store.commit('settings/setMobileHomeWidget', {
id: x.id,
data: x.data
});
}
os.store.commit('settings/setMobileHome', x);
});
this.on('widgetUpdated', x => {
os.store.commit('settings/setWidget', {
id: x.id,
data: x.data
});
});
// トークンが再生成されたとき

View File

@ -3,15 +3,15 @@ import StreamManager from './stream-manager';
import MiOS from '../../../mios';
/**
* Server stream connection
* Notes stats stream connection
*/
export class ServerStream extends Stream {
export class NotesStatsStream extends Stream {
constructor(os: MiOS) {
super(os, 'server');
super(os, 'notes-stats');
}
}
export class ServerStreamManager extends StreamManager<ServerStream> {
export class NotesStatsStreamManager extends StreamManager<NotesStatsStream> {
private os: MiOS;
constructor(os: MiOS) {
@ -22,7 +22,7 @@ export class ServerStreamManager extends StreamManager<ServerStream> {
public getConnection() {
if (this.connection == null) {
this.connection = new ServerStream(this.os);
this.connection = new NotesStatsStream(this.os);
}
return this.connection;

View File

@ -0,0 +1,30 @@
import Stream from './stream';
import StreamManager from './stream-manager';
import MiOS from '../../../mios';
/**
* Server stats stream connection
*/
export class ServerStatsStream extends Stream {
constructor(os: MiOS) {
super(os, 'server-stats');
}
}
export class ServerStatsStreamManager extends StreamManager<ServerStatsStream> {
private os: MiOS;
constructor(os: MiOS) {
super();
this.os = os;
}
public getConnection() {
if (this.connection == null) {
this.connection = new ServerStatsStream(this.os);
}
return this.connection;
}
}

View File

@ -0,0 +1,127 @@
<template>
<svg class="mk-analog-clock" viewBox="0 0 10 10" preserveAspectRatio="none">
<circle v-for="angle, i in graduations"
:cx="5 + (Math.sin(angle) * (5 - graduationsPadding))"
:cy="5 - (Math.cos(angle) * (5 - graduationsPadding))"
:r="i % 5 == 0 ? 0.125 : 0.05"
:fill="i % 5 == 0 ? majorGraduationColor : minorGraduationColor"/>
<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="0.05"/>
<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="0.1"/>
<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="0.1"/>
</svg>
</template>
<script lang="ts">
import Vue from 'vue';
import { themeColor } from '../../../config';
export default Vue.extend({
props: {
dark: {
type: Boolean,
default: false
}
},
data() {
return {
now: new Date(),
clock: null,
graduationsPadding: 0.5,
handsPadding: 1,
handsTailLength: 0.7,
hHandLengthRatio: 0.75,
mHandLengthRatio: 1,
sHandLengthRatio: 1
};
},
computed: {
majorGraduationColor(): string {
return this.dark ? 'rgba(255, 255, 255, 0.3)' : 'rgba(0, 0, 0, 0.3)';
},
minorGraduationColor(): string {
return this.dark ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)';
},
sHandColor(): string {
return this.dark ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.3)';
},
mHandColor(): string {
return this.dark ? '#fff' : '#777';
},
hHandColor(): string {
return themeColor;
},
s(): number {
return this.now.getSeconds();
},
m(): number {
return this.now.getMinutes();
},
h(): number {
return this.now.getHours();
},
hAngle(): number {
return Math.PI * (this.h % 12 + this.m / 60) / 6;
},
mAngle(): number {
return Math.PI * (this.m + this.s / 60) / 30;
},
sAngle(): number {
return Math.PI * this.s / 30;
},
graduations(): any {
const angles = [];
for (let i = 0; i < 60; i++) {
const angle = Math.PI * i / 30;
angles.push(angle);
}
return angles;
}
},
mounted() {
this.clock = setInterval(this.tick, 1000);
},
beforeDestroy() {
clearInterval(this.clock);
},
methods: {
tick() {
this.now = new Date();
}
}
});
</script>
<style lang="stylus" scoped>
.mk-analog-clock
display block
</style>

View File

@ -26,9 +26,13 @@ export default Vue.extend({
},
style(): any {
return {
backgroundColor: this.user.avatarColor && this.user.avatarColor.length == 3 ? `rgb(${ this.user.avatarColor.join(',') })` : null,
backgroundColor: this.lightmode
? `rgb(${ this.user.avatarColor.slice(0, 3).join(',') })`
: this.user.avatarColor && this.user.avatarColor.length == 3
? `rgb(${ this.user.avatarColor.join(',') })`
: null,
backgroundImage: this.lightmode ? null : `url(${ this.user.avatarUrl }?thumbnail)`,
borderRadius: (this as any).clientSettings.circleIcons ? '100%' : null
borderRadius: this.$store.state.settings.circleIcons ? '100%' : null
};
}
}

View File

@ -28,7 +28,7 @@ export default Vue.extend({
},
mounted() {
document.title = 'Oops!';
document.documentElement.style.background = '#f8f8f8';
document.documentElement.style.setProperty('background', '#f8f8f8', 'important');
},
methods: {
reload() {

View File

@ -13,7 +13,7 @@
.a
display block
position absolute
position fixed
top 0
right 0

View File

@ -1,5 +1,8 @@
import Vue from 'vue';
import analogClock from './analog-clock.vue';
import menu from './menu.vue';
import noteHeader from './note-header.vue';
import signin from './signin.vue';
import signup from './signup.vue';
import forkit from './forkit.vue';
@ -27,6 +30,9 @@ import Switch from './switch.vue';
import Othello from './othello.vue';
import welcomeTimeline from './welcome-timeline.vue';
Vue.component('mk-analog-clock', analogClock);
Vue.component('mk-menu', menu);
Vue.component('mk-note-header', noteHeader);
Vue.component('mk-signin', signin);
Vue.component('mk-signup', signup);
Vue.component('mk-forkit', forkit);

View File

@ -1,9 +1,11 @@
<template>
<div class="mk-media-list" :data-count="mediaList.length">
<template v-for="media in mediaList">
<mk-media-video :video="media" :key="media.id" v-if="media.type.startsWith('video')" :inline-playable="mediaList.length === 1"/>
<mk-media-image :image="media" :key="media.id" v-else :raw="raw"/>
</template>
<div class="mk-media-list">
<div :data-count="mediaList.length" ref="grid">
<template v-for="media in mediaList">
<mk-media-video :video="media" :key="media.id" v-if="media.type.startsWith('video')" :inline-playable="mediaList.length === 1"/>
<mk-media-image :image="media" :key="media.id" v-else :raw="raw"/>
</template>
</div>
</div>
</template>
@ -18,47 +20,60 @@ export default Vue.extend({
raw: {
default: false
}
},
mounted() {
// for Safari bug
this.$refs.grid.style.height = this.$refs.grid.clientHeight ? `${this.$refs.grid.clientHeight}px` : '128px';
}
});
</script>
<style lang="stylus" scoped>
.mk-media-list
display grid
grid-gap 4px
height 256px
width 100%
@media (max-width 500px)
height 192px
&:before
content ''
display block
padding-top 56.25% // 16:9
> div
position absolute
top 0
right 0
bottom 0
left 0
display grid
grid-gap 4px
&[data-count="1"]
grid-template-rows 1fr
&[data-count="2"]
grid-template-columns 1fr 1fr
grid-template-rows 1fr
&[data-count="3"]
grid-template-columns 1fr 0.5fr
grid-template-rows 1fr 1fr
:nth-child(1)
grid-row 1 / 3
:nth-child(3)
grid-column 2 / 3
grid-row 2 / 3
&[data-count="4"]
grid-template-columns 1fr 1fr
grid-template-rows 1fr 1fr
&[data-count="1"]
grid-template-rows 1fr
&[data-count="2"]
grid-template-columns 1fr 1fr
grid-template-rows 1fr
&[data-count="3"]
grid-template-columns 1fr 0.5fr
grid-template-rows 1fr 1fr
:nth-child(1)
grid-row 1 / 3
:nth-child(3)
grid-column 1 / 2
grid-row 1 / 2
:nth-child(2)
grid-column 2 / 3
grid-row 2/3
&[data-count="4"]
grid-template-columns 1fr 1fr
grid-template-rows 1fr 1fr
:nth-child(1)
grid-column 1 / 2
grid-row 1 / 2
:nth-child(2)
grid-column 2 / 3
grid-row 1 / 2
:nth-child(3)
grid-column 1 / 2
grid-row 2 / 3
:nth-child(4)
grid-column 2 / 3
grid-row 2 / 3
grid-row 1 / 2
:nth-child(3)
grid-column 1 / 2
grid-row 2 / 3
:nth-child(4)
grid-column 2 / 3
grid-row 2 / 3
</style>

View File

@ -0,0 +1,196 @@
<template>
<div class="mk-menu">
<div class="backdrop" ref="backdrop" @click="close"></div>
<div class="popover" :class="{ hukidasi }" ref="popover">
<template v-for="item in items">
<div v-if="item === null"></div>
<button v-if="item" @click="clicked(item.action)" v-html="item.icon ? item.icon + ' ' + item.text : item.text"></button>
</template>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import * as anime from 'animejs';
export default Vue.extend({
props: {
source: {
required: true
},
items: {
type: Array,
required: true
},
compact: {
type: Boolean,
required: false,
default: false
}
},
data() {
return {
hukidasi: !this.compact
};
},
mounted() {
this.$nextTick(() => {
const popover = this.$refs.popover as any;
const rect = this.source.getBoundingClientRect();
const width = popover.offsetWidth;
const height = popover.offsetHeight;
let left;
let top;
if (this.compact) {
const x = rect.left + window.pageXOffset + (this.source.offsetWidth / 2);
const y = rect.top + window.pageYOffset + (this.source.offsetHeight / 2);
left = (x - (width / 2));
top = (y - (height / 2));
} else {
const x = rect.left + window.pageXOffset + (this.source.offsetWidth / 2);
const y = rect.top + window.pageYOffset + this.source.offsetHeight;
left = (x - (width / 2));
top = y;
}
if (left + width - window.pageXOffset > window.innerWidth) {
left = window.innerWidth - width + window.pageXOffset;
this.hukidasi = false;
}
if (top + height - window.pageYOffset > window.innerHeight) {
top = window.innerHeight - height + window.pageYOffset;
this.hukidasi = false;
}
popover.style.left = left + 'px';
popover.style.top = top + 'px';
anime({
targets: this.$refs.backdrop,
opacity: 1,
duration: 100,
easing: 'linear'
});
anime({
targets: this.$refs.popover,
opacity: 1,
scale: [0.5, 1],
duration: 500
});
});
},
methods: {
clicked(fn) {
fn();
this.close();
},
close() {
(this.$refs.backdrop as any).style.pointerEvents = 'none';
anime({
targets: this.$refs.backdrop,
opacity: 0,
duration: 200,
easing: 'linear'
});
(this.$refs.popover as any).style.pointerEvents = 'none';
anime({
targets: this.$refs.popover,
opacity: 0,
scale: 0.5,
duration: 200,
easing: 'easeInBack',
complete: () => {
this.$emit('closed');
this.$destroy();
}
});
}
}
});
</script>
<style lang="stylus" scoped>
@import '~const.styl'
$border-color = rgba(27, 31, 35, 0.15)
.mk-menu
position initial
> .backdrop
position fixed
top 0
left 0
z-index 10000
width 100%
height 100%
background rgba(#000, 0.1)
opacity 0
> .popover
position absolute
z-index 10001
padding 8px 0
background #fff
border 1px solid $border-color
border-radius 4px
box-shadow 0 3px 12px rgba(27, 31, 35, 0.15)
transform scale(0.5)
opacity 0
$balloon-size = 16px
&.hukidasi
margin-top $balloon-size
transform-origin center -($balloon-size)
&:before
&:after
content ""
display block
position absolute
pointer-events none
&:before
top -($balloon-size * 2)
left s('calc(50% - %s)', $balloon-size)
border-top solid $balloon-size transparent
border-left solid $balloon-size transparent
border-right solid $balloon-size transparent
border-bottom solid $balloon-size $border-color
&:after
top -($balloon-size * 2) + 1.5px
left s('calc(50% - %s)', $balloon-size)
border-top solid $balloon-size transparent
border-left solid $balloon-size transparent
border-right solid $balloon-size transparent
border-bottom solid $balloon-size #fff
> button
display block
padding 8px 16px
width 100%
&:hover
color $theme-color-foreground
background $theme-color
text-decoration none
&:active
color $theme-color-foreground
background darken($theme-color, 10%)
> div
margin 8px 0
height 1px
background #eee
</style>

View File

@ -197,7 +197,7 @@ export default Vue.extend({
<style lang="stylus" scoped>
@import '~const.styl'
.mk-messaging-form
root(isDark)
> textarea
cursor auto
display block
@ -209,10 +209,10 @@ export default Vue.extend({
padding 8px
resize none
font-size 1em
color #000
color isDark ? #fff : #000
outline none
border none
border-top solid 1px #eee
border-top solid 1px isDark ? #4b5056 : #eee
border-radius 0
box-shadow none
background transparent
@ -302,4 +302,10 @@ export default Vue.extend({
input[type=file]
display none
.mk-messaging-form[data-darkmode]
root(true)
.mk-messaging-form:not([data-darkmode])
root(false)
</style>

View File

@ -8,7 +8,7 @@
<img src="/assets/desktop/messaging/delete.png" alt="Delete"/>
</button>
<div class="content" v-if="!message.isDeleted">
<mk-note-html class="text" v-if="message.text" ref="text" :text="message.text" :i="os.i"/>
<mk-note-html class="text" v-if="message.text" ref="text" :text="message.text" :i="$store.state.i"/>
<div class="file" v-if="message.file">
<a :href="message.file.url" target="_blank" :title="message.file.name">
<img v-if="message.file.type.split('/')[0] == 'image'" :src="message.file.url" :alt="message.file.name"/>
@ -42,7 +42,7 @@ export default Vue.extend({
},
computed: {
isMe(): boolean {
return this.message.userId == (this as any).os.i.id;
return this.message.userId == this.$store.state.i.id;
},
urls(): string[] {
if (this.message.text) {
@ -59,8 +59,10 @@ export default Vue.extend({
</script>
<style lang="stylus" scoped>
.message
$me-balloon-color = #23A7B6
@import '~const.styl'
root(isDark)
$me-balloon-color = $theme-color
padding 10px 12px 10px 12px
background-color transparent
@ -126,7 +128,7 @@ export default Vue.extend({
bottom -4px
left -12px
margin 0
color rgba(#000, 0.5)
color isDark ? rgba(#fff, 0.5) : rgba(#000, 0.5)
font-size 11px
> .content
@ -187,7 +189,7 @@ export default Vue.extend({
display block
margin 2px 0 0 0
font-size 10px
color rgba(#000, 0.4)
color isDark ? rgba(#fff, 0.4) : rgba(#000, 0.4)
> [data-fa]
margin-left 4px
@ -200,8 +202,9 @@ export default Vue.extend({
padding-left 66px
> .balloon
$color = isDark ? #2d3338 : #eee
float left
background #eee
background $color
&[data-no-text]
background transparent
@ -209,10 +212,15 @@ export default Vue.extend({
&:not([data-no-text]):before
left -14px
border-top solid 8px transparent
border-right solid 8px #eee
border-right solid 8px $color
border-bottom solid 8px transparent
border-left solid 8px transparent
> .content
> .text
if isDark
color #fff
> footer
text-align left
@ -241,7 +249,7 @@ export default Vue.extend({
> .content
> p.is-deleted
color rgba(255, 255, 255, 0.5)
color rgba(#fff, 0.5)
> .text >>>
&, *
@ -254,4 +262,10 @@ export default Vue.extend({
> .baloon
opacity 0.5
.message[data-darkmode]
root(true)
.message:not([data-darkmode])
root(false)
</style>

View File

@ -18,7 +18,11 @@
</template>
</div>
<footer>
<div ref="notifications" class="notifications"></div>
<transition name="fade">
<div class="new-message" v-show="showIndicator">
<button @click="onIndicatorClick">%fa:arrow-circle-down%%i18n:@new-message%</button>
</div>
</transition>
<x-form :user="user" ref="form"/>
</footer>
</div>
@ -45,7 +49,9 @@ export default Vue.extend({
fetchingMoreMessages: false,
messages: [],
existMoreMessages: false,
connection: null
connection: null,
showIndicator: false,
timer: null
};
},
@ -66,7 +72,7 @@ export default Vue.extend({
},
mounted() {
this.connection = new MessagingStream((this as any).os, (this as any).os.i, this.user.id);
this.connection = new MessagingStream((this as any).os, this.$store.state.i, this.user.id);
this.connection.on('message', this.onMessage);
this.connection.on('read', this.onRead);
@ -158,7 +164,7 @@ export default Vue.extend({
const isBottom = this.isBottom();
this.messages.push(message);
if (message.userId != (this as any).os.i.id && !document.hidden) {
if (message.userId != this.$store.state.i.id && !document.hidden) {
this.connection.send({
type: 'read',
id: message.id
@ -170,9 +176,9 @@ export default Vue.extend({
this.$nextTick(() => {
this.scrollToBottom();
});
} else if (message.userId != (this as any).os.i.id) {
} else if (message.userId != this.$store.state.i.id) {
// Notify
this.notify('%i18n:@new-message%');
this.notifyNewMessage();
}
},
@ -205,25 +211,25 @@ export default Vue.extend({
}
},
notify(message) {
const n = document.createElement('p') as any;
n.innerHTML = '%fa:arrow-circle-down%' + message;
n.onclick = () => {
this.scrollToBottom();
n.parentNode.removeChild(n);
};
(this.$refs.notifications as any).appendChild(n);
onIndicatorClick() {
this.showIndicator = false;
this.scrollToBottom();
},
setTimeout(() => {
n.style.opacity = 0;
setTimeout(() => n.parentNode.removeChild(n), 1000);
notifyNewMessage() {
this.showIndicator = true;
if (this.timer) clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.showIndicator = false;
}, 4000);
},
onVisibilitychange() {
if (document.hidden) return;
this.messages.forEach(message => {
if (message.userId !== (this as any).os.i.id && !message.isRead) {
if (message.userId !== this.$store.state.i.id && !message.isRead) {
this.connection.send({
type: 'read',
id: message.id
@ -238,11 +244,12 @@ export default Vue.extend({
<style lang="stylus" scoped>
@import '~const.styl'
.mk-messaging-room
root(isDark)
display flex
flex 1
flex-direction column
height 100%
background isDark ? #191b22 : #fff
> .stream
width 100%
@ -256,7 +263,7 @@ export default Vue.extend({
padding 16px 8px 8px 8px
text-align center
font-size 0.8em
color rgba(#000, 0.4)
color rgba(isDark ? #fff : #000, 0.4)
[data-fa]
margin-right 4px
@ -267,7 +274,7 @@ export default Vue.extend({
padding 16px 8px 8px 8px
text-align center
font-size 0.8em
color rgba(#000, 0.4)
color rgba(isDark ? #fff : #000, 0.4)
[data-fa]
margin-right 4px
@ -278,7 +285,7 @@ export default Vue.extend({
padding 16px
text-align center
font-size 0.8em
color rgba(#000, 0.4)
color rgba(isDark ? #fff : #000, 0.4)
[data-fa]
margin-right 4px
@ -322,7 +329,7 @@ export default Vue.extend({
left 0
right 0
margin 0 auto
background rgba(#000, 0.1)
background rgba(isDark ? #fff : #000, 0.1)
> span
display inline-block
@ -330,8 +337,8 @@ export default Vue.extend({
padding 0 16px
//font-weight bold
line-height 32px
color rgba(#000, 0.3)
background #fff
color rgba(isDark ? #fff : #000, 0.3)
background isDark ? #191b22 : #fff
> footer
position -webkit-sticky
@ -342,30 +349,32 @@ export default Vue.extend({
max-width 600px
margin 0 auto
padding 0
background rgba(255, 255, 255, 0.95)
background rgba(isDark ? #282c37 : #fff, 0.95)
background-clip content-box
> .notifications
> .new-message
position absolute
top -48px
width 100%
padding 8px 0
text-align center
&:empty
display none
> p
> button
display inline-block
margin 0
padding 0 12px 0 28px
padding 0 12px 0 30px
cursor pointer
line-height 32px
font-size 12px
color $theme-color-foreground
background $theme-color
border-radius 16px
transition opacity 1s ease
&:hover
background lighten($theme-color, 10%)
&:active
background darken($theme-color, 10%)
> [data-fa]
position absolute
@ -374,4 +383,17 @@ export default Vue.extend({
line-height 32px
font-size 16px
.fade-enter-active, .fade-leave-active
transition opacity 0.1s
.fade-enter, .fade-leave-to
transition opacity 0.5s
opacity 0
.mk-messaging-room[data-darkmode]
root(true)
.mk-messaging-room:not([data-darkmode])
root(false)
</style>

View File

@ -95,7 +95,7 @@ export default Vue.extend({
methods: {
getAcct,
isMe(message) {
return message.userId == (this as any).os.i.id;
return message.userId == this.$store.state.i.id;
},
onMessage(message) {
this.messages = this.messages.filter(m => !(

View File

@ -0,0 +1,117 @@
<template>
<header class="bvonvjxbwzaiskogyhbwgyxvcgserpmu">
<mk-avatar class="avatar" :user="note.user" v-if="$store.state.device.postStyle == 'smart'"/>
<router-link class="name" :to="note.user | userPage" v-user-preview="note.user.id">{{ note.user | userName }}</router-link>
<span class="is-admin" v-if="note.user.isAdmin">admin</span>
<span class="is-bot" v-if="note.user.isBot">bot</span>
<span class="is-cat" v-if="note.user.isCat">cat</span>
<span class="username"><mk-acct :user="note.user"/></span>
<div class="info">
<span class="app" v-if="note.app && !mini">via <b>{{ note.app.name }}</b></span>
<span class="mobile" v-if="note.viaMobile">%fa:mobile-alt%</span>
<router-link class="created-at" :to="note | notePage">
<mk-time :time="note.createdAt"/>
</router-link>
<span class="visibility" v-if="note.visibility != 'public'">
<template v-if="note.visibility == 'home'">%fa:home%</template>
<template v-if="note.visibility == 'followers'">%fa:unlock%</template>
<template v-if="note.visibility == 'specified'">%fa:envelope%</template>
<template v-if="note.visibility == 'private'">%fa:lock%</template>
</span>
</div>
</header>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: {
note: {
type: Object,
required: true
},
mini: {
type: Boolean,
required: false,
default: false
}
}
});
</script>
<style lang="stylus" scoped>
@import '~const.styl'
root(isDark)
display flex
align-items baseline
white-space nowrap
> .avatar
flex-shrink 0
margin-right 8px
width 20px
height 20px
border-radius 100%
> .name
display block
margin 0 .5em 0 0
padding 0
overflow hidden
color isDark ? #fff : #627079
font-size 1em
font-weight bold
text-decoration none
text-overflow ellipsis
&:hover
text-decoration underline
> .is-admin
> .is-bot
> .is-cat
align-self center
margin 0 .5em 0 0
padding 1px 6px
font-size 80%
color isDark ? #758188 : #aaa
border solid 1px isDark ? #57616f : #ddd
border-radius 3px
&.is-admin
border-color isDark ? #d42c41 : #f56a7b
color isDark ? #d42c41 : #f56a7b
> .username
margin 0 .5em 0 0
overflow hidden
text-overflow ellipsis
color isDark ? #606984 : #ccc
> .info
margin-left auto
font-size 0.9em
> *
color isDark ? #606984 : #c0c0c0
> .mobile
margin-right 8px
> .app
margin-right 8px
padding-right 8px
border-right solid 1px isDark ? #1c2023 : #eaeaea
> .visibility
margin-left 8px
.bvonvjxbwzaiskogyhbwgyxvcgserpmu[data-darkmode]
root(true)
.bvonvjxbwzaiskogyhbwgyxvcgserpmu:not([data-darkmode])
root(false)
</style>

View File

@ -40,6 +40,17 @@ export default Vue.component('mk-note-html', {
ast = this.ast;
}
if (ast.filter(x => x.type != 'hashtag').length == 0) {
return;
}
while (
ast[ast.length - 1].type == 'hashtag' ||
(ast[ast.length - 1].type == 'text' && ast[ast.length - 1].content == ' ') ||
(ast[ast.length - 1].type == 'text' && ast[ast.length - 1].content == '\n')) {
ast.pop();
}
// Parse ast to DOM
const els = flatten(ast.map(token => {
switch (token.type) {
@ -92,7 +103,7 @@ export default Vue.component('mk-note-html', {
case 'hashtag':
return createElement('a', {
attrs: {
href: `${url}/search?q=${token.content}`,
href: `${url}/tags/${token.content}`,
target: '_blank'
}
}, token.content);

View File

@ -1,54 +1,45 @@
<template>
<div class="mk-note-menu">
<div class="backdrop" ref="backdrop" @click="close"></div>
<div class="popover" :class="{ compact }" ref="popover">
<button @click="favorite">%i18n:@favorite%</button>
<button v-if="note.userId == os.i.id" @click="pin">%i18n:@pin%</button>
<a v-if="note.uri" :href="note.uri" target="_blank">%i18n:@remote%</a>
</div>
<div style="position:initial">
<mk-menu :source="source" :compact="compact" :items="items" @closed="closed"/>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import * as anime from 'animejs';
export default Vue.extend({
props: ['note', 'source', 'compact'],
mounted() {
this.$nextTick(() => {
const popover = this.$refs.popover as any;
const rect = this.source.getBoundingClientRect();
const width = popover.offsetWidth;
const height = popover.offsetHeight;
if (this.compact) {
const x = rect.left + window.pageXOffset + (this.source.offsetWidth / 2);
const y = rect.top + window.pageYOffset + (this.source.offsetHeight / 2);
popover.style.left = (x - (width / 2)) + 'px';
popover.style.top = (y - (height / 2)) + 'px';
} else {
const x = rect.left + window.pageXOffset + (this.source.offsetWidth / 2);
const y = rect.top + window.pageYOffset + this.source.offsetHeight;
popover.style.left = (x - (width / 2)) + 'px';
popover.style.top = y + 'px';
computed: {
items() {
const items = [];
items.push({
icon: '%fa:star%',
text: '%i18n:@favorite%',
action: this.favorite
});
if (this.note.userId == this.$store.state.i.id) {
items.push({
icon: '%fa:thumbtack%',
text: '%i18n:@pin%',
action: this.pin
});
items.push({
icon: '%fa:trash-alt R%',
text: '%i18n:@delete%',
action: this.del
});
}
anime({
targets: this.$refs.backdrop,
opacity: 1,
duration: 100,
easing: 'linear'
});
anime({
targets: this.$refs.popover,
opacity: 1,
scale: [0.5, 1],
duration: 500
});
});
if (this.note.uri) {
items.push({
icon: '%fa:external-link-square-alt%',
text: '%i18n:@remote%',
action: () => {
window.open(this.note.uri, '_blank');
}
});
}
return items;
}
},
methods: {
pin() {
@ -59,6 +50,15 @@ export default Vue.extend({
});
},
del() {
if (!window.confirm('%i18n:@delete-confirm%')) return;
(this as any).api('notes/delete', {
noteId: this.note.id
}).then(() => {
this.$destroy();
});
},
favorite() {
(this as any).api('notes/favorites/create', {
noteId: this.note.id
@ -67,99 +67,11 @@ export default Vue.extend({
});
},
close() {
(this.$refs.backdrop as any).style.pointerEvents = 'none';
anime({
targets: this.$refs.backdrop,
opacity: 0,
duration: 200,
easing: 'linear'
});
(this.$refs.popover as any).style.pointerEvents = 'none';
anime({
targets: this.$refs.popover,
opacity: 0,
scale: 0.5,
duration: 200,
easing: 'easeInBack',
complete: () => this.$destroy()
closed() {
this.$nextTick(() => {
this.$destroy();
});
}
}
});
</script>
<style lang="stylus" scoped>
@import '~const.styl'
$border-color = rgba(27, 31, 35, 0.15)
.mk-note-menu
position initial
> .backdrop
position fixed
top 0
left 0
z-index 10000
width 100%
height 100%
background rgba(#000, 0.1)
opacity 0
> .popover
position absolute
z-index 10001
padding 8px 0
background #fff
border 1px solid $border-color
border-radius 4px
box-shadow 0 3px 12px rgba(27, 31, 35, 0.15)
transform scale(0.5)
opacity 0
$balloon-size = 16px
&:not(.compact)
margin-top $balloon-size
transform-origin center -($balloon-size)
&:before
content ""
display block
position absolute
top -($balloon-size * 2)
left s('calc(50% - %s)', $balloon-size)
border-top solid $balloon-size transparent
border-left solid $balloon-size transparent
border-right solid $balloon-size transparent
border-bottom solid $balloon-size $border-color
&:after
content ""
display block
position absolute
top -($balloon-size * 2) + 1.5px
left s('calc(50% - %s)', $balloon-size)
border-top solid $balloon-size transparent
border-left solid $balloon-size transparent
border-right solid $balloon-size transparent
border-bottom solid $balloon-size #fff
> button
> a
display block
padding 8px 16px
width 100%
&:hover
color $theme-color-foreground
background $theme-color
text-decoration none
&:active
color $theme-color-foreground
background darken($theme-color, 10%)
</style>

View File

@ -61,13 +61,13 @@ export default Vue.extend({
computed: {
iAmPlayer(): boolean {
if (!(this as any).os.isSignedIn) return false;
return this.game.user1Id == (this as any).os.i.id || this.game.user2Id == (this as any).os.i.id;
if (!this.$store.getters.isSignedIn) return false;
return this.game.user1Id == this.$store.state.i.id || this.game.user2Id == this.$store.state.i.id;
},
myColor(): Color {
if (!this.iAmPlayer) return null;
if (this.game.user1Id == (this as any).os.i.id && this.game.black == 1) return true;
if (this.game.user2Id == (this as any).os.i.id && this.game.black == 2) return true;
if (this.game.user1Id == this.$store.state.i.id && this.game.black == 1) return true;
if (this.game.user2Id == this.$store.state.i.id && this.game.black == 2) return true;
return false;
},
opColor(): Color {
@ -91,7 +91,7 @@ export default Vue.extend({
},
isMyTurn(): boolean {
if (this.turnUser == null) return null;
return this.turnUser.id == (this as any).os.i.id;
return this.turnUser.id == this.$store.state.i.id;
}
},

View File

@ -25,7 +25,7 @@ export default Vue.extend({
},
created() {
this.g = this.game;
this.connection = new OthelloGameStream((this as any).os, (this as any).os.i, this.game);
this.connection = new OthelloGameStream((this as any).os, this.$store.state.i, this.game);
this.connection.on('started', this.onStarted);
},
beforeDestroy() {

View File

@ -116,13 +116,13 @@ export default Vue.extend({
return categories.filter((item, pos) => categories.indexOf(item) == pos);
},
isAccepted(): boolean {
if (this.game.user1Id == (this as any).os.i.id && this.game.user1Accepted) return true;
if (this.game.user2Id == (this as any).os.i.id && this.game.user2Accepted) return true;
if (this.game.user1Id == this.$store.state.i.id && this.game.user1Accepted) return true;
if (this.game.user2Id == this.$store.state.i.id && this.game.user2Accepted) return true;
return false;
},
isOpAccepted(): boolean {
if (this.game.user1Id != (this as any).os.i.id && this.game.user1Accepted) return true;
if (this.game.user2Id != (this as any).os.i.id && this.game.user2Accepted) return true;
if (this.game.user1Id != this.$store.state.i.id && this.game.user1Accepted) return true;
if (this.game.user2Id != this.$store.state.i.id && this.game.user2Accepted) return true;
return false;
}
},
@ -133,8 +133,8 @@ export default Vue.extend({
this.connection.on('init-form', this.onInitForm);
this.connection.on('message', this.onMessage);
if (this.game.user1Id != (this as any).os.i.id && this.game.settings.form1) this.form = this.game.settings.form1;
if (this.game.user2Id != (this as any).os.i.id && this.game.settings.form2) this.form = this.game.settings.form2;
if (this.game.user1Id != this.$store.state.i.id && this.game.settings.form1) this.form = this.game.settings.form1;
if (this.game.user2Id != this.$store.state.i.id && this.game.settings.form2) this.form = this.game.settings.form2;
},
beforeDestroy() {
@ -185,12 +185,12 @@ export default Vue.extend({
},
onInitForm(x) {
if (x.userId == (this as any).os.i.id) return;
if (x.userId == this.$store.state.i.id) return;
this.form = x.form;
},
onMessage(x) {
if (x.userId == (this as any).os.i.id) return;
if (x.userId == this.$store.state.i.id) return;
this.messages.unshift(x.message);
},

View File

@ -58,18 +58,21 @@ export default Vue.extend({
},
created() {
if (this.mode == 'relative' || this.mode == 'detail') {
this.tick();
this.tickId = setInterval(this.tick, 1000);
this.tickId = window.requestAnimationFrame(this.tick);
}
},
destroyed() {
if (this.mode === 'relative' || this.mode === 'detail') {
clearInterval(this.tickId);
window.clearTimeout(this.tickId);
}
},
methods: {
tick() {
this.now = new Date();
this.tickId = setTimeout(() => {
window.requestAnimationFrame(this.tick);
}, 10000);
}
}
});

View File

@ -1,13 +1,13 @@
<template>
<div class="mk-twitter-setting">
<p>%i18n:@description%<a :href="`${docsUrl}/link-to-twitter`" target="_blank">%i18n:@detail%</a></p>
<p class="account" v-if="os.i.twitter" :title="`Twitter ID: ${os.i.twitter.userId}`">%i18n:@connected-to%: <a :href="`https://twitter.com/${os.i.twitter.screenName}`" target="_blank">@{{ os.i.twitter.screenName }}</a></p>
<p class="account" v-if="$store.state.i.twitter" :title="`Twitter ID: ${$store.state.i.twitter.userId}`">%i18n:@connected-to%: <a :href="`https://twitter.com/${$store.state.i.twitter.screenName}`" target="_blank">@{{ $store.state.i.twitter.screenName }}</a></p>
<p>
<a :href="`${apiUrl}/connect/twitter`" target="_blank" @click.prevent="connect">{{ os.i.twitter ? '%i18n:@reconnect%' : '%i18n:@connect%' }}</a>
<span v-if="os.i.twitter"> or </span>
<a :href="`${apiUrl}/disconnect/twitter`" target="_blank" v-if="os.i.twitter" @click.prevent="disconnect">%i18n:@disconnect%</a>
<a :href="`${apiUrl}/connect/twitter`" target="_blank" @click.prevent="connect">{{ $store.state.i.twitter ? '%i18n:@reconnect%' : '%i18n:@connect%' }}</a>
<span v-if="$store.state.i.twitter"> or </span>
<a :href="`${apiUrl}/disconnect/twitter`" target="_blank" v-if="$store.state.i.twitter" @click.prevent="disconnect">%i18n:@disconnect%</a>
</p>
<p class="id" v-if="os.i.twitter">Twitter ID: {{ os.i.twitter.userId }}</p>
<p class="id" v-if="$store.state.i.twitter">Twitter ID: {{ $store.state.i.twitter.userId }}</p>
</div>
</template>
@ -24,8 +24,8 @@ export default Vue.extend({
};
},
mounted() {
this.$watch('os.i', () => {
if ((this as any).os.i.twitter) {
this.$watch('$store.state.i', () => {
if (this.$store.state.i.twitter) {
if (this.form) this.form.close();
}
}, {

View File

@ -50,7 +50,7 @@ export default Vue.extend({
reader.readAsDataURL(file);
const data = new FormData();
data.append('i', (this as any).os.i.token);
data.append('i', this.$store.state.i.token);
data.append('file', file);
if (folder) data.append('folderId', folder);

View File

@ -68,7 +68,7 @@ iframe
root(isDark)
> a
display block
font-size 16px
font-size 14px
border solid 1px isDark ? #191b1f : #eee
border-radius 4px
overflow hidden
@ -136,8 +136,17 @@ root(isDark)
left 0
width 100%
@media (max-width 550px)
font-size 12px
> .thumbnail
height 80px
> article
padding 12px
@media (max-width 500px)
font-size 8px
font-size 10px
> .thumbnail
height 70px
@ -145,6 +154,16 @@ root(isDark)
> article
padding 8px
> header
margin-bottom 4px
> footer
margin-top 4px
> img
width 12px
height 12px
.mk-url-preview[data-darkmode]
root(true)

View File

@ -203,6 +203,7 @@ root(isDark)
justify-content center
align-items center
margin-right 10px
width 16px
> *:last-child
flex 1 1 auto

View File

@ -13,7 +13,7 @@
</div>
</header>
<div class="text">
<mk-note-html :text="note.text"/>
<mk-note-html v-if="note.text" :text="note.text"/>
</div>
</div>
</div>
@ -37,6 +37,7 @@ export default Vue.extend({
fetch(cb?) {
this.fetching = true;
(this as any).api('notes', {
local: true,
reply: false,
renote: false,
media: false,
@ -52,15 +53,15 @@ export default Vue.extend({
</script>
<style lang="stylus" scoped>
.mk-welcome-timeline
background #fff
root(isDark)
background isDark ? #282C37 : #fff
> div
padding 16px
overflow-wrap break-word
font-size .9em
color #4C4C4C
border-bottom 1px solid rgba(#000, 0.05)
color isDark ? #fff : #4C4C4C
border-bottom 1px solid isDark ? rgba(#000, 0.1) : rgba(#000, 0.05)
&:after
content ""
@ -95,17 +96,23 @@ export default Vue.extend({
overflow hidden
font-weight bold
text-overflow ellipsis
color #627079
color isDark ? #fff : #627079
> .username
margin 0 .5em 0 0
color #ccc
color isDark ? #606984 : #ccc
> .info
margin-left auto
font-size 0.9em
> .created-at
color #c0c0c0
color isDark ? #606984 : #c0c0c0
.mk-welcome-timeline[data-darkmode]
root(true)
.mk-welcome-timeline:not([data-darkmode])
root(false)
</style>

View File

@ -0,0 +1,41 @@
<template>
<div class="mkw-analog-clock">
<mk-widget-container :naked="props.naked" :show-header="false">
<div class="mkw-analog-clock--body">
<mk-analog-clock :dark="$store.state.device.darkmode"/>
</div>
</mk-widget-container>
</div>
</template>
<script lang="ts">
import define from '../../../common/define-widget';
export default define({
name: 'analog-clock',
props: () => ({
naked: false
})
}).extend({
methods: {
func() {
this.props.naked = !this.props.naked;
this.save();
}
}
});
</script>
<style lang="stylus" scoped>
@import '~const.styl'
root(isDark)
.mkw-analog-clock--body
padding 8px
.mkw-analog-clock[data-darkmode]
root(true)
.mkw-analog-clock:not([data-darkmode])
root(false)
</style>

View File

@ -2,7 +2,7 @@
<div class="mkw-broadcast"
:data-found="broadcasts.length != 0"
:data-melt="props.design == 1"
:data-mobile="isMobile"
:data-mobile="platform == 'mobile'"
>
<div class="icon">
<svg height="32" version="1.1" viewBox="0 0 32 32" width="32">

View File

@ -1,5 +1,5 @@
<template>
<div class="mkw-calendar" :data-special="special" :data-mobile="isMobile">
<div class="mkw-calendar" :data-special="special" :data-mobile="platform == 'mobile'">
<mk-widget-container :naked="props.design == 1" :show-header="false">
<div class="mkw-calendar--body">
<div class="calendar" :data-is-holiday="isHoliday">
@ -67,7 +67,7 @@ export default define({
},
methods: {
func() {
if (this.isMobile) return;
if (this.platform == 'mobile') return;
if (this.props.design == 2) {
this.props.design = 0;
} else {

View File

@ -1,5 +1,5 @@
<template>
<div class="mkw-donation" :data-mobile="isMobile">
<div class="mkw-donation" :data-mobile="platform == 'mobile'">
<article>
<h1>%fa:heart%%i18n:@title%</h1>
<p>

View File

@ -0,0 +1,89 @@
<template>
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" style="overflow:visible">
<defs>
<linearGradient :id="gradientId" x1="0" x2="0" y1="1" y2="0">
<stop offset="0%" stop-color="hsl(200, 80%, 70%)"></stop>
<stop offset="100%" stop-color="hsl(90, 80%, 70%)"></stop>
</linearGradient>
<mask :id="maskId" x="0" y="0" :width="viewBoxX" :height="viewBoxY">
<polygon
:points="polygonPoints"
fill="#fff"
fill-opacity="0.5"/>
<polyline
:points="polylinePoints"
fill="none"
stroke="#fff"
stroke-width="2"/>
<circle
:cx="headX"
:cy="headY"
r="3"
fill="#fff"/>
</mask>
</defs>
<rect
x="-10" y="-10"
:width="viewBoxX + 20" :height="viewBoxY + 20"
:style="`stroke: none; fill: url(#${ gradientId }); mask: url(#${ maskId })`"/>
</svg>
</template>
<script lang="ts">
import Vue from 'vue';
import * as uuid from 'uuid';
export default Vue.extend({
props: {
src: {
type: Array,
required: true
}
},
data() {
return {
viewBoxX: 50,
viewBoxY: 30,
gradientId: uuid(),
maskId: uuid(),
polylinePoints: '',
polygonPoints: '',
headX: null,
headY: null,
clock: null
};
},
watch: {
src() {
this.draw();
}
},
created() {
this.draw();
// Vueが何故かWatchを発動させない場合があるので
this.clock = setInterval(this.draw, 1000);
},
beforeDestroy() {
clearInterval(this.clock);
},
methods: {
draw() {
const stats = this.src.slice().reverse();
const peak = Math.max.apply(null, stats) || 1;
const polylinePoints = stats.map((n, i) => [
i * (this.viewBoxX / (stats.length - 1)),
(1 - (n / peak)) * this.viewBoxY
]);
this.polylinePoints = polylinePoints.map(xy => `${xy[0]},${xy[1]}`).join(' ');
this.polygonPoints = `0,${ this.viewBoxY } ${ this.polylinePoints } ${ this.viewBoxX },${ this.viewBoxY }`;
this.headX = polylinePoints[polylinePoints.length - 1][0];
this.headY = polylinePoints[polylinePoints.length - 1][1];
}
}
});
</script>

View File

@ -0,0 +1,123 @@
<template>
<div class="mkw-hashtags">
<mk-widget-container :show-header="!props.compact">
<template slot="header">%fa:hashtag%%i18n:@title%</template>
<div class="mkw-hashtags--body" :data-mobile="platform == 'mobile'">
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
<p class="empty" v-else-if="stats.length == 0">%fa:exclamation-circle%%i18n:@empty%</p>
<transition-group v-else tag="div" name="chart">
<div v-for="stat in stats" :key="stat.tag">
<div class="tag">
<router-link :to="`/tags/${ stat.tag }`" :title="stat.tag">#{{ stat.tag }}</router-link>
<p>{{ '%i18n:@count%'.replace('{}', stat.usersCount) }}</p>
</div>
<x-chart class="chart" :src="stat.chart"/>
</div>
</transition-group>
</div>
</mk-widget-container>
</div>
</template>
<script lang="ts">
import define from '../../../common/define-widget';
import XChart from './hashtags.chart.vue';
export default define({
name: 'hashtags',
props: () => ({
compact: false
})
}).extend({
components: {
XChart
},
data() {
return {
stats: [],
fetching: true,
clock: null
};
},
mounted() {
this.fetch();
this.clock = setInterval(this.fetch, 1000 * 60);
},
beforeDestroy() {
clearInterval(this.clock);
},
methods: {
func() {
this.props.compact = !this.props.compact;
this.save();
},
fetch() {
(this as any).api('hashtags/trend').then(stats => {
this.stats = stats;
this.fetching = false;
});
}
}
});
</script>
<style lang="stylus" scoped>
root(isDark)
.mkw-hashtags--body
> .fetching
> .empty
margin 0
padding 16px
text-align center
color #aaa
> [data-fa]
margin-right 4px
> div
.chart-enter
.chart-leave-to
opacity 0
transform translateY(-30px)
> *
transition transform .3s ease, opacity .3s ease
> div
display flex
align-items center
padding 14px 16px
&:not(:last-child)
border-bottom solid 1px isDark ? #393f4f : #eee
> .tag
flex 1
overflow hidden
font-size 14px
color isDark ? #9baec8 : #65727b
> a
display block
width 100%
white-space nowrap
overflow hidden
text-overflow ellipsis
color inherit
> p
margin 0
font-size 75%
opacity 0.7
> .chart
height 30px
.mkw-hashtags[data-darkmode]
root(true)
.mkw-hashtags:not([data-darkmode])
root(false)
</style>

View File

@ -1,8 +1,11 @@
import Vue from 'vue';
import wAnalogClock from './analog-clock.vue';
import wVersion from './version.vue';
import wRss from './rss.vue';
import wServer from './server.vue';
import wPostsMonitor from './posts-monitor.vue';
import wMemo from './memo.vue';
import wBroadcast from './broadcast.vue';
import wCalendar from './calendar.vue';
import wPhotoStream from './photo-stream.vue';
@ -10,7 +13,9 @@ import wSlideshow from './slideshow.vue';
import wTips from './tips.vue';
import wDonation from './donation.vue';
import wNav from './nav.vue';
import wHashtags from './hashtags.vue';
Vue.component('mkw-analog-clock', wAnalogClock);
Vue.component('mkw-nav', wNav);
Vue.component('mkw-calendar', wCalendar);
Vue.component('mkw-photo-stream', wPhotoStream);
@ -19,5 +24,8 @@ Vue.component('mkw-tips', wTips);
Vue.component('mkw-donation', wDonation);
Vue.component('mkw-broadcast', wBroadcast);
Vue.component('mkw-server', wServer);
Vue.component('mkw-posts-monitor', wPostsMonitor);
Vue.component('mkw-memo', wMemo);
Vue.component('mkw-rss', wRss);
Vue.component('mkw-version', wVersion);
Vue.component('mkw-hashtags', wHashtags);

View File

@ -0,0 +1,111 @@
<template>
<div class="mkw-memo">
<mk-widget-container :show-header="!props.compact">
<template slot="header">%fa:R sticky-note%%i18n:@title%</template>
<div class="mkw-memo--body">
<textarea v-model="text" placeholder="%i18n:@memo%" @input="onChange"></textarea>
<button @click="saveMemo" :disabled="!changed">%i18n:@save%</button>
</div>
</mk-widget-container>
</div>
</template>
<script lang="ts">
import define from '../../define-widget';
export default define({
name: 'memo',
props: () => ({
compact: false
})
}).extend({
data() {
return {
text: null,
changed: false
};
},
created() {
this.text = this.$store.state.settings.memo;
this.$watch('$store.state.settings.memo', text => {
this.text = text;
});
},
methods: {
func() {
this.props.compact = !this.props.compact;
this.save();
},
onChange() {
this.changed = true;
},
saveMemo() {
this.$store.dispatch('settings/set', {
key: 'memo',
value: this.text
});
this.changed = false;
}
}
});
</script>
<style lang="stylus" scoped>
@import '~const.styl'
root(isDark)
.mkw-memo--body
padding-bottom 28px + 16px
> textarea
display block
width 100%
max-width 100%
min-width 100%
padding 16px
color isDark ? #fff : #222
background isDark ? #282c37 : #fff
border none
border-bottom solid 1px isDark ? #1c2023 : #eee
border-radius 0
> button
display block
position absolute
bottom 8px
right 8px
margin 0
padding 0 10px
height 28px
color $theme-color-foreground
background $theme-color !important
outline none
border none
border-radius 4px
transition background 0.1s ease
cursor pointer
&:hover
background lighten($theme-color, 10%) !important
&:active
background darken($theme-color, 10%) !important
transition background 0s ease
&:disabled
opacity 0.7
cursor default
.mkw-memo[data-darkmode]
root(true)
.mkw-memo:not([data-darkmode])
root(false)
</style>

View File

@ -0,0 +1,211 @@
<template>
<div class="mkw-posts-monitor">
<mk-widget-container :show-header="props.design == 0" :naked="props.design == 2">
<template slot="header">%fa:chart-line%%i18n:@title%</template>
<button slot="func" @click="toggle" title="%i18n:@toggle%">%fa:sort%</button>
<div class="qpdmibaztplkylerhdbllwcokyrfxeyj" :class="{ dual: props.view == 0 }" :data-darkmode="$store.state.device.darkmode">
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" v-show="props.view != 2">
<defs>
<linearGradient :id="localGradientId" x1="0" x2="0" y1="1" y2="0">
<stop offset="0%" stop-color="hsl(200, 80%, 70%)"></stop>
<stop offset="100%" stop-color="hsl(90, 80%, 70%)"></stop>
</linearGradient>
<mask :id="localMaskId" x="0" y="0" :width="viewBoxX" :height="viewBoxY">
<polygon
:points="localPolygonPoints"
fill="#fff"
fill-opacity="0.5"/>
<polyline
:points="localPolylinePoints"
fill="none"
stroke="#fff"
stroke-width="1"/>
<circle
:cx="localHeadX"
:cy="localHeadY"
r="1.5"
fill="#fff"/>
</mask>
</defs>
<rect
x="-2" y="-2"
:width="viewBoxX + 4" :height="viewBoxY + 4"
:style="`stroke: none; fill: url(#${ localGradientId }); mask: url(#${ localMaskId })`"/>
<text x="1" y="5">Local</text>
</svg>
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" v-show="props.view != 1">
<defs>
<linearGradient :id="fediGradientId" x1="0" x2="0" y1="1" y2="0">
<stop offset="0%" stop-color="hsl(200, 80%, 70%)"></stop>
<stop offset="100%" stop-color="hsl(90, 80%, 70%)"></stop>
</linearGradient>
<mask :id="fediMaskId" x="0" y="0" :width="viewBoxX" :height="viewBoxY">
<polygon
:points="fediPolygonPoints"
fill="#fff"
fill-opacity="0.5"/>
<polyline
:points="fediPolylinePoints"
fill="none"
stroke="#fff"
stroke-width="1"/>
<circle
:cx="fediHeadX"
:cy="fediHeadY"
r="1.5"
fill="#fff"/>
</mask>
</defs>
<rect
x="-2" y="-2"
:width="viewBoxX + 4" :height="viewBoxY + 4"
:style="`stroke: none; fill: url(#${ fediGradientId }); mask: url(#${ fediMaskId })`"/>
<text x="1" y="5">Fedi</text>
</svg>
</div>
</mk-widget-container>
</div>
</template>
<script lang="ts">
import define from '../../../common/define-widget';
import * as uuid from 'uuid';
export default define({
name: 'server',
props: () => ({
design: 0,
view: 0
})
}).extend({
data() {
return {
connection: null,
connectionId: null,
viewBoxY: 30,
stats: [],
fediGradientId: uuid(),
fediMaskId: uuid(),
localGradientId: uuid(),
localMaskId: uuid(),
fediPolylinePoints: '',
localPolylinePoints: '',
fediPolygonPoints: '',
localPolygonPoints: '',
fediHeadX: null,
fediHeadY: null,
localHeadX: null,
localHeadY: null
};
},
computed: {
viewBoxX(): number {
return this.props.view == 0 ? 50 : 100;
}
},
watch: {
viewBoxX() {
this.draw();
}
},
mounted() {
this.connection = (this as any).os.streams.notesStatsStream.getConnection();
this.connectionId = (this as any).os.streams.notesStatsStream.use();
this.connection.on('stats', this.onStats);
this.connection.on('statsLog', this.onStatsLog);
this.connection.send({
type: 'requestLog',
id: Math.random().toString()
});
},
beforeDestroy() {
this.connection.off('stats', this.onStats);
this.connection.off('statsLog', this.onStatsLog);
(this as any).os.streams.notesStatsStream.dispose(this.connectionId);
},
methods: {
toggle() {
if (this.props.view == 2) {
this.props.view = 0;
} else {
this.props.view++;
}
this.save();
},
func() {
if (this.props.design == 2) {
this.props.design = 0;
} else {
this.props.design++;
}
this.save();
},
draw() {
const stats = this.props.view == 0 ? this.stats.slice(-50) : this.stats;
const fediPeak = Math.max.apply(null, stats.map(x => x.all)) || 1;
const localPeak = Math.max.apply(null, stats.map(x => x.local)) || 1;
const fediPolylinePoints = stats.map((s, i) => [this.viewBoxX - ((stats.length - 1) - i), (1 - (s.all / fediPeak)) * this.viewBoxY]);
const localPolylinePoints = stats.map((s, i) => [this.viewBoxX - ((stats.length - 1) - i), (1 - (s.local / localPeak)) * this.viewBoxY]);
this.fediPolylinePoints = fediPolylinePoints.map(xy => `${xy[0]},${xy[1]}`).join(' ');
this.localPolylinePoints = localPolylinePoints.map(xy => `${xy[0]},${xy[1]}`).join(' ');
this.fediPolygonPoints = `${this.viewBoxX - (stats.length - 1)},${ this.viewBoxY } ${ this.fediPolylinePoints } ${ this.viewBoxX },${ this.viewBoxY }`;
this.localPolygonPoints = `${this.viewBoxX - (stats.length - 1)},${ this.viewBoxY } ${ this.localPolylinePoints } ${ this.viewBoxX },${ this.viewBoxY }`;
this.fediHeadX = fediPolylinePoints[fediPolylinePoints.length - 1][0];
this.fediHeadY = fediPolylinePoints[fediPolylinePoints.length - 1][1];
this.localHeadX = localPolylinePoints[localPolylinePoints.length - 1][0];
this.localHeadY = localPolylinePoints[localPolylinePoints.length - 1][1];
},
onStats(stats) {
this.stats.push(stats);
if (this.stats.length > 100) this.stats.shift();
this.draw();
},
onStatsLog(statsLog) {
statsLog.forEach(stats => this.onStats(stats));
}
}
});
</script>
<style lang="stylus" scoped>
root(isDark)
&.dual
> svg
width 50%
float left
&:first-child
padding-right 5px
&:last-child
padding-left 5px
> svg
display block
padding 10px
width 100%
> text
font-size 5px
fill isDark ? rgba(#fff, 0.55) : rgba(#000, 0.55)
> tspan
opacity 0.5
&:after
content ""
display block
clear both
.qpdmibaztplkylerhdbllwcokyrfxeyj[data-darkmode]
root(true)
.qpdmibaztplkylerhdbllwcokyrfxeyj:not([data-darkmode])
root(false)
</style>

View File

@ -4,7 +4,7 @@
<template slot="header">%fa:rss-square%RSS</template>
<button slot="func" title="設定" @click="setting">%fa:cog%</button>
<div class="mkw-rss--body" :data-mobile="isMobile">
<div class="mkw-rss--body" :data-mobile="platform == 'mobile'">
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
<div class="feed" v-else>
<a v-for="item in items" :href="item.link" target="_blank">{{ item.title }}</a>
@ -19,12 +19,12 @@ import define from '../../../common/define-widget';
export default define({
name: 'rss',
props: () => ({
compact: false
compact: false,
url: 'http://news.yahoo.co.jp/pickup/rss.xml'
})
}).extend({
data() {
return {
url: 'http://news.yahoo.co.jp/pickup/rss.xml',
items: [],
fetching: true,
clock: null
@ -43,7 +43,7 @@ export default define({
this.save();
},
fetch() {
fetch(`https://api.rss2json.com/v1/api.json?rss_url=${this.url}`, {
fetch(`https://api.rss2json.com/v1/api.json?rss_url=${this.props.url}`, {
cache: 'no-cache'
}).then(res => {
res.json().then(feed => {
@ -53,7 +53,12 @@ export default define({
});
},
setting() {
alert('not implemented yet');
const url = window.prompt('URL', this.props.url);
if (url && url != '') {
this.props.url = url;
this.save();
this.fetch();
}
}
}
});

View File

@ -1,6 +1,6 @@
<template>
<div class="cpu-memory">
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" preserveAspectRatio="none">
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`">
<defs>
<linearGradient :id="cpuGradientId" x1="0" x2="0" y1="1" y2="0">
<stop offset="0%" stop-color="hsl(180, 80%, 70%)"></stop>
@ -16,15 +16,20 @@
fill="none"
stroke="#fff"
stroke-width="1"/>
<circle
:cx="cpuHeadX"
:cy="cpuHeadY"
r="1.5"
fill="#fff"/>
</mask>
</defs>
<rect
x="-1" y="-1"
:width="viewBoxX + 2" :height="viewBoxY + 2"
x="-2" y="-2"
:width="viewBoxX + 4" :height="viewBoxY + 4"
:style="`stroke: none; fill: url(#${ cpuGradientId }); mask: url(#${ cpuMaskId })`"/>
<text x="1" y="5">CPU <tspan>{{ cpuP }}%</tspan></text>
</svg>
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" preserveAspectRatio="none">
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`">
<defs>
<linearGradient :id="memGradientId" x1="0" x2="0" y1="1" y2="0">
<stop offset="0%" stop-color="hsl(180, 80%, 70%)"></stop>
@ -40,11 +45,16 @@
fill="none"
stroke="#fff"
stroke-width="1"/>
<circle
:cx="memHeadX"
:cy="memHeadY"
r="1.5"
fill="#fff"/>
</mask>
</defs>
<rect
x="-1" y="-1"
:width="viewBoxX + 2" :height="viewBoxY + 2"
x="-2" y="-2"
:width="viewBoxX + 4" :height="viewBoxY + 4"
:style="`stroke: none; fill: url(#${ memGradientId }); mask: url(#${ memMaskId })`"/>
<text x="1" y="5">MEM <tspan>{{ memP }}%</tspan></text>
</svg>
@ -70,15 +80,25 @@ export default Vue.extend({
memPolylinePoints: '',
cpuPolygonPoints: '',
memPolygonPoints: '',
cpuHeadX: null,
cpuHeadY: null,
memHeadX: null,
memHeadY: null,
cpuP: '',
memP: ''
};
},
mounted() {
this.connection.on('stats', this.onStats);
this.connection.on('statsLog', this.onStatsLog);
this.connection.send({
type: 'requestLog',
id: Math.random().toString()
});
},
beforeDestroy() {
this.connection.off('stats', this.onStats);
this.connection.off('statsLog', this.onStatsLog);
},
methods: {
onStats(stats) {
@ -86,14 +106,24 @@ export default Vue.extend({
this.stats.push(stats);
if (this.stats.length > 50) this.stats.shift();
this.cpuPolylinePoints = this.stats.map((s, i) => `${this.viewBoxX - ((this.stats.length - 1) - i)},${(1 - s.cpu_usage) * this.viewBoxY}`).join(' ');
this.memPolylinePoints = this.stats.map((s, i) => `${this.viewBoxX - ((this.stats.length - 1) - i)},${(1 - (s.mem.used / s.mem.total)) * this.viewBoxY}`).join(' ');
const cpuPolylinePoints = this.stats.map((s, i) => [this.viewBoxX - ((this.stats.length - 1) - i), (1 - s.cpu_usage) * this.viewBoxY]);
const memPolylinePoints = this.stats.map((s, i) => [this.viewBoxX - ((this.stats.length - 1) - i), (1 - (s.mem.used / s.mem.total)) * this.viewBoxY]);
this.cpuPolylinePoints = cpuPolylinePoints.map(xy => `${xy[0]},${xy[1]}`).join(' ');
this.memPolylinePoints = memPolylinePoints.map(xy => `${xy[0]},${xy[1]}`).join(' ');
this.cpuPolygonPoints = `${this.viewBoxX - (this.stats.length - 1)},${ this.viewBoxY } ${ this.cpuPolylinePoints } ${ this.viewBoxX },${ this.viewBoxY }`;
this.memPolygonPoints = `${this.viewBoxX - (this.stats.length - 1)},${ this.viewBoxY } ${ this.memPolylinePoints } ${ this.viewBoxX },${ this.viewBoxY }`;
this.cpuHeadX = cpuPolylinePoints[cpuPolylinePoints.length - 1][0];
this.cpuHeadY = cpuPolylinePoints[cpuPolylinePoints.length - 1][1];
this.memHeadX = memPolylinePoints[memPolylinePoints.length - 1][0];
this.memHeadY = memPolylinePoints[memPolylinePoints.length - 1][1];
this.cpuP = (stats.cpu_usage * 100).toFixed(0);
this.memP = (stats.mem.used / stats.mem.total * 100).toFixed(0);
},
onStatsLog(statsLog) {
statsLog.forEach(stats => this.onStats(stats));
}
}
});

View File

@ -55,11 +55,11 @@ export default define({
this.fetching = false;
});
this.connection = (this as any).os.streams.serverStream.getConnection();
this.connectionId = (this as any).os.streams.serverStream.use();
this.connection = (this as any).os.streams.serverStatsStream.getConnection();
this.connectionId = (this as any).os.streams.serverStatsStream.use();
},
beforeDestroy() {
(this as any).os.streams.serverStream.dispose(this.connectionId);
(this as any).os.streams.serverStatsStream.dispose(this.connectionId);
},
methods: {
toggle() {

View File

@ -1,5 +1,5 @@
<template>
<div class="mkw-slideshow" :data-mobile="isMobile">
<div class="mkw-slideshow" :data-mobile="platform == 'mobile'">
<div @click="choose">
<p v-if="props.folder === undefined">
<template v-if="isCustomizeMode">フォルダを指定するにはカスタマイズモードを終了してください</template>

View File

@ -1,18 +1,17 @@
import OS from '../../mios';
import { url } from '../../config';
import MkChooseFileFromDriveWindow from '../views/components/choose-file-from-drive-window.vue';
export default function(opts) {
export default (os: OS) => opts => {
return new Promise((res, rej) => {
const o = opts || {};
if (document.body.clientWidth > 800) {
const w = new MkChooseFileFromDriveWindow({
propsData: {
title: o.title,
multiple: o.multiple,
initFolder: o.currentFolder
}
}).$mount();
const w = os.new(MkChooseFileFromDriveWindow, {
title: o.title,
multiple: o.multiple,
initFolder: o.currentFolder
});
w.$once('selected', file => {
res(file);
});
@ -27,4 +26,4 @@ export default function(opts) {
'height=500, width=800');
}
});
}
};

View File

@ -1,17 +1,16 @@
import OS from '../../mios';
import MkChooseFolderFromDriveWindow from '../views/components/choose-folder-from-drive-window.vue';
export default function(opts) {
export default (os: OS) => opts => {
return new Promise((res, rej) => {
const o = opts || {};
const w = new MkChooseFolderFromDriveWindow({
propsData: {
title: o.title,
initFolder: o.currentFolder
}
}).$mount();
const w = os.new(MkChooseFolderFromDriveWindow, {
title: o.title,
initFolder: o.currentFolder
});
w.$once('selected', folder => {
res(folder);
});
document.body.appendChild(w.$el);
});
}
};

View File

@ -1,16 +1,15 @@
import OS from '../../mios';
import Ctx from '../views/components/context-menu.vue';
export default function(e, menu, opts?) {
export default (os: OS) => (e, menu, opts?) => {
const o = opts || {};
const vm = new Ctx({
propsData: {
menu,
x: e.pageX - window.pageXOffset,
y: e.pageY - window.pageYOffset,
}
}).$mount();
const vm = os.new(Ctx, {
menu,
x: e.pageX - window.pageXOffset,
y: e.pageY - window.pageYOffset,
});
vm.$once('closed', () => {
if (o.closed) o.closed();
});
document.body.appendChild(vm.$el);
}
};

View File

@ -1,19 +1,18 @@
import OS from '../../mios';
import Dialog from '../views/components/dialog.vue';
export default function(opts) {
export default (os: OS) => opts => {
return new Promise<string>((res, rej) => {
const o = opts || {};
const d = new Dialog({
propsData: {
title: o.title,
text: o.text,
modal: o.modal,
buttons: o.actions
}
}).$mount();
const d = os.new(Dialog, {
title: o.title,
text: o.text,
modal: o.modal,
buttons: o.actions
});
d.$once('clicked', id => {
res(id);
});
document.body.appendChild(d.$el);
});
}
};

View File

@ -1,20 +1,19 @@
import OS from '../../mios';
import InputDialog from '../views/components/input-dialog.vue';
export default function(opts) {
export default (os: OS) => opts => {
return new Promise<string>((res, rej) => {
const o = opts || {};
const d = new InputDialog({
propsData: {
title: o.title,
placeholder: o.placeholder,
default: o.default,
type: o.type || 'text',
allowEmpty: o.allowEmpty
}
}).$mount();
const d = os.new(InputDialog, {
title: o.title,
placeholder: o.placeholder,
default: o.default,
type: o.type || 'text',
allowEmpty: o.allowEmpty
});
d.$once('done', text => {
res(text);
});
document.body.appendChild(d.$el);
});
}
};

View File

@ -1,10 +1,9 @@
import OS from '../../mios';
import Notification from '../views/components/ui-notification.vue';
export default function(message) {
const vm = new Notification({
propsData: {
message
}
}).$mount();
export default (os: OS) => message => {
const vm = os.new(Notification, {
message
});
document.body.appendChild(vm.$el);
}
};

View File

@ -1,21 +1,18 @@
import OS from '../../mios';
import PostFormWindow from '../views/components/post-form-window.vue';
import RenoteFormWindow from '../views/components/renote-form-window.vue';
export default function(opts) {
export default (os: OS) => opts => {
const o = opts || {};
if (o.renote) {
const vm = new RenoteFormWindow({
propsData: {
renote: o.renote
}
}).$mount();
const vm = os.new(RenoteFormWindow, {
note: o.renote
});
document.body.appendChild(vm.$el);
} else {
const vm = new PostFormWindow({
propsData: {
reply: o.reply
}
}).$mount();
const vm = os.new(PostFormWindow, {
reply: o.reply
});
document.body.appendChild(vm.$el);
}
}
};

View File

@ -6,17 +6,15 @@ import ProgressDialog from '../views/components/progress-dialog.vue';
export default (os: OS) => (cb, file = null) => {
const fileSelected = file => {
const w = new CropWindow({
propsData: {
image: file,
title: 'アバターとして表示する部分を選択',
aspectRatio: 1 / 1
}
}).$mount();
const w = os.new(CropWindow, {
image: file,
title: 'アバターとして表示する部分を選択',
aspectRatio: 1 / 1
});
w.$once('cropped', blob => {
const data = new FormData();
data.append('i', os.i.token);
data.append('i', os.store.state.i.token);
data.append('file', blob, file.name + '.cropped.png');
os.api('drive/folders/find', {
@ -42,11 +40,9 @@ export default (os: OS) => (cb, file = null) => {
};
const upload = (data, folder) => {
const dialog = new ProgressDialog({
propsData: {
title: '新しいアバターをアップロードしています'
}
}).$mount();
const dialog = os.new(ProgressDialog, {
title: '新しいアバターをアップロードしています'
});
document.body.appendChild(dialog.$el);
if (folder) data.append('folderId', folder.id);
@ -70,8 +66,14 @@ export default (os: OS) => (cb, file = null) => {
os.api('i/update', {
avatarId: file.id
}).then(i => {
os.i.avatarId = i.avatarId;
os.i.avatarUrl = i.avatarUrl;
os.store.commit('updateIKeyValue', {
key: 'avatarId',
value: i.avatarId
});
os.store.commit('updateIKeyValue', {
key: 'avatarUrl',
value: i.avatarUrl
});
os.apis.dialog({
title: '%fa:info-circle%アバターを更新しました',

View File

@ -6,17 +6,15 @@ import ProgressDialog from '../views/components/progress-dialog.vue';
export default (os: OS) => {
const cropImage = file => new Promise((resolve, reject) => {
const w = new CropWindow({
propsData: {
image: file,
title: 'バナーとして表示する部分を選択',
aspectRatio: 16 / 9
}
}).$mount();
const w = os.new(CropWindow, {
image: file,
title: 'バナーとして表示する部分を選択',
aspectRatio: 16 / 9
});
w.$once('cropped', blob => {
const data = new FormData();
data.append('i', os.i.token);
data.append('i', os.store.state.i.token);
data.append('file', blob, file.name + '.cropped.png');
os.api('drive/folders/find', {
@ -44,11 +42,9 @@ export default (os: OS) => {
});
const upload = (data, folder) => new Promise((resolve, reject) => {
const dialog = new ProgressDialog({
propsData: {
title: '新しいバナーをアップロードしています'
}
}).$mount();
const dialog = os.new(ProgressDialog, {
title: '新しいバナーをアップロードしています'
});
document.body.appendChild(dialog.$el);
if (folder) data.append('folderId', folder.id);
@ -73,8 +69,14 @@ export default (os: OS) => {
return os.api('i/update', {
bannerId: file.id
}).then(i => {
os.i.bannerId = i.bannerId;
os.i.bannerUrl = i.bannerUrl;
os.store.commit('updateIKeyValue', {
key: 'bannerId',
value: i.bannerId
});
os.store.commit('updateIKeyValue', {
key: 'bannerUrl',
value: i.bannerUrl
});
os.apis.dialog({
title: '%fa:info-circle%バナーを更新しました',

View File

@ -9,16 +9,16 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="768"
height="768"
viewBox="0 0 203.2 203.2"
width="512"
height="512"
viewBox="0 0 135.46667 135.46667"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="64.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\64.png"
inkscape:export-xdpi="8"
inkscape:export-ydpi="8">
sodipodi:docname="header-icon.dark.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\32.png"
inkscape:export-xdpi="6"
inkscape:export-ydpi="6">
<defs
id="defs2">
<inkscape:path-effect
@ -65,11 +65,11 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7071068"
inkscape:cx="16.781901"
inkscape:cy="343.6089"
inkscape:zoom="1.4142136"
inkscape:cx="114.309"
inkscape:cy="251.50613"
inkscape:document-units="px"
inkscape:current-layer="g5125"
inkscape:current-layer="g4502"
showgrid="true"
units="px"
inkscape:snap-bbox="true"
@ -79,7 +79,7 @@
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-height="1027"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
@ -111,7 +111,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -119,31 +119,29 @@
inkscape:label="レイヤー 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.809093,-44.052677)">
transform="translate(-30.809093,-111.78601)">
<g
id="g4502"
transform="matrix(1.096096,0,0,1.096096,30.906034,-77.890245)"
inkscape:export-xdpi="6"
inkscape:export-ydpi="6">
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)">
<g
style="fill:#2fa1bb;fill-opacity:0.94117647"
style="fill:#ffffff;fill-opacity:1"
transform="translate(-1.3333333e-6,-1.3439941e-6)"
id="g5125">
<g
transform="matrix(0.91391326,0,0,0.91391326,7.9719903,17.595761)"
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
id="text4489"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#2fa1bb;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi">
<path
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
inkscape:connector-curvature="0"
id="path5210"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa1bb;fill-opacity:1;stroke-width:0.28950602px"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#ffffff;fill-opacity:1;stroke-width:0.28950602px"
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
<path
inkscape:connector-curvature="0"
id="path5212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa1bb;fill-opacity:1;stroke-width:0.28950602px"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#ffffff;fill-opacity:1;stroke-width:0.28950602px"
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
</g>
</g>

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -9,16 +9,16 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="640"
height="640"
viewBox="0 0 169.33333 169.33333"
width="512"
height="512"
viewBox="0 0 135.46667 135.46667"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="32.svg"
sodipodi:docname="header-icon.light.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\32.png"
inkscape:export-xdpi="4.8000002"
inkscape:export-ydpi="4.8000002">
inkscape:export-xdpi="6"
inkscape:export-ydpi="6">
<defs
id="defs2">
<inkscape:path-effect
@ -65,9 +65,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7071068"
inkscape:cx="16.781901"
inkscape:cy="343.6089"
inkscape:zoom="1.4142136"
inkscape:cx="114.309"
inkscape:cy="251.50613"
inkscape:document-units="px"
inkscape:current-layer="g4502"
showgrid="true"
@ -79,7 +79,7 @@
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-height="1027"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
@ -119,31 +119,29 @@
inkscape:label="レイヤー 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.809093,-77.919343)">
transform="translate(-30.809093,-111.78601)">
<g
id="g4502"
transform="matrix(1.096096,0,0,1.096096,13.972699,-60.956914)"
inkscape:export-xdpi="6"
inkscape:export-ydpi="6">
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)">
<g
style="fill:#2fa1bb;fill-opacity:1"
transform="translate(-1.7127735e-6,-1.5982974e-6)"
style="fill:#000000;fill-opacity:1"
transform="translate(-1.3333333e-6,-1.3439941e-6)"
id="g5125">
<g
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
id="text4489"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#2fa1bb;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi">
<path
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
inkscape:connector-curvature="0"
id="path5210"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa1bb;fill-opacity:1;stroke-width:0.28950602px"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#000000;fill-opacity:1;stroke-width:0.28950602px"
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
<path
inkscape:connector-curvature="0"
id="path5212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa1bb;fill-opacity:1;stroke-width:0.28950602px"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#000000;fill-opacity:1;stroke-width:0.28950602px"
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
</g>
</g>

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="256px" height="256px" viewBox="0 0 256 256" enable-background="new 0 0 256 256" xml:space="preserve">
<circle fill="#FFFFFF" cx="128" cy="153.6" r="19.201"/>
<circle fill="#FFFFFF" cx="51.2" cy="153.6" r="19.2"/>
<circle fill="#FFFFFF" cx="204.8" cy="153.6" r="19.2"/>
<polyline fill="none" stroke="#FFFFFF" stroke-width="16" stroke-linejoin="round" stroke-miterlimit="10" points="51.2,153.6
89.601,102.4 128,153.6 166.4,102.4 204.799,153.6 "/>
<circle fill="#FFFFFF" cx="89.6" cy="102.4" r="19.2"/>
<circle fill="#FFFFFF" cx="166.4" cy="102.4" r="19.199"/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1021 B

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="256px" height="256px" viewBox="0 0 256 256" enable-background="new 0 0 256 256" xml:space="preserve">
<circle cx="128" cy="153.6" r="19.201"/>
<circle cx="51.2" cy="153.6" r="19.2"/>
<circle cx="204.8" cy="153.6" r="19.2"/>
<polyline fill="none" stroke="#000000" stroke-width="16" stroke-linejoin="round" stroke-miterlimit="10" points="51.2,153.6
89.601,102.4 128,153.6 166.4,102.4 204.799,153.6 "/>
<circle cx="89.6" cy="102.4" r="19.2"/>
<circle cx="166.4" cy="102.4" r="19.199"/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 946 B

View File

@ -2,7 +2,6 @@
* Desktop Client
*/
import Vue from 'vue';
import VueRouter from 'vue-router';
// Style
@ -24,6 +23,7 @@ import updateAvatar from './api/update-avatar';
import updateBanner from './api/update-banner';
import MkIndex from './views/pages/index.vue';
import MkDeck from './views/pages/deck/deck.vue';
import MkUser from './views/pages/user/user.vue';
import MkFavorites from './views/pages/favorites.vue';
import MkSelectDrive from './views/pages/selectdrive.vue';
@ -33,6 +33,7 @@ import MkHomeCustomize from './views/pages/home-customize.vue';
import MkMessagingRoom from './views/pages/messaging-room.vue';
import MkNote from './views/pages/note.vue';
import MkSearch from './views/pages/search.vue';
import MkTag from './views/pages/tag.vue';
import MkOthello from './views/pages/othello.vue';
/**
@ -51,6 +52,7 @@ init(async (launch) => {
mode: 'history',
routes: [
{ path: '/', name: 'index', component: MkIndex },
{ path: '/deck', name: 'deck', component: MkDeck },
{ path: '/i/customize-home', component: MkHomeCustomize },
{ path: '/i/favorites', component: MkFavorites },
{ path: '/i/messaging/:user', component: MkMessagingRoom },
@ -59,6 +61,7 @@ init(async (launch) => {
{ path: '/i/lists/:list', component: MkUserList },
{ path: '/selectdrive', component: MkSelectDrive },
{ path: '/search', component: MkSearch },
{ path: '/tags/:tag', component: MkTag },
{ path: '/othello', component: MkOthello },
{ path: '/othello/:game', component: MkOthello },
{ path: '/@:user', component: MkUser },
@ -68,12 +71,12 @@ init(async (launch) => {
// Launch the app
const [, os] = launch(router, os => ({
chooseDriveFolder,
chooseDriveFile,
dialog,
input,
post,
notify,
chooseDriveFolder: chooseDriveFolder(os),
chooseDriveFile: chooseDriveFile(os),
dialog: dialog(os),
input: input(os),
post: post(os),
notify: notify(os),
updateAvatar: updateAvatar(os),
updateBanner: updateBanner(os)
}));

View File

@ -6,44 +6,27 @@
*::input-placeholder
color #D8CBC5
*
&:focus
outline none
&::scrollbar
width 5px
background transparent
&:horizontal
height 5px
&::scrollbar-button
width 0
height 0
background rgba(0, 0, 0, 0.2)
&::scrollbar-piece
background transparent
&:start
background transparent
&::scrollbar-thumb
background rgba(0, 0, 0, 0.2)
&:hover
background rgba(0, 0, 0, 0.4)
&:active
background $theme-color
&::scrollbar-corner
background rgba(0, 0, 0, 0.2)
*:focus
outline none
html
height 100%
background #f7f7f7
&, *
&::-webkit-scrollbar
width 6px
height 6px
&::-webkit-scrollbar-thumb
background rgba(0, 0, 0, 0.2)
&:hover
background rgba(0, 0, 0, 0.4)
&:active
background $theme-color
&[data-darkmode]
background #191B22
@ -51,10 +34,6 @@ html
&::-webkit-scrollbar-track
background-color #282C37
&::-webkit-scrollbar
width 6px
height 6px
&::-webkit-scrollbar-thumb
background-color #454954
@ -63,8 +42,3 @@ html
&:active
background-color $theme-color
body
display flex
flex-direction column
min-height 100%

View File

@ -1,5 +1,5 @@
<template>
<svg viewBox="0 0 21 7" preserveAspectRatio="none">
<svg viewBox="0 0 21 7">
<rect v-for="record in data" class="day"
width="1" height="1"
:x="record.x" :y="record.date.weekday"
@ -15,7 +15,7 @@
style="pointer-events: none;"/>
<rect class="today"
width="1" height="1"
:x="data[data.length - 1].x" :y="data[data.length - 1].date.weekday"
:x="data[0].x" :y="data[0].date.weekday"
rx="1" ry="1"
fill="none"
stroke-width="0.1"
@ -33,7 +33,7 @@ export default Vue.extend({
const peak = Math.max.apply(null, this.data.map(d => d.total));
let x = 0;
this.data.reverse().forEach(d => {
this.data.slice().reverse().forEach(d => {
d.x = x;
d.date.weekday = (new Date(d.date.year, d.date.month - 1, d.date.day)).getDay();

View File

@ -1,5 +1,5 @@
<template>
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" preserveAspectRatio="none" @mousedown.prevent="onMousedown">
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" @mousedown.prevent="onMousedown">
<title>%i18n:@total%<br/>%i18n:@notes%<br/>%i18n:@replies%<br/>%i18n:@renotes%</title>
<polyline
:points="pointsNote"
@ -55,7 +55,6 @@ export default Vue.extend({
};
},
created() {
this.data.reverse();
this.data.forEach(d => d.total = d.notes + d.replies + d.renotes);
this.render();
},
@ -63,10 +62,11 @@ export default Vue.extend({
render() {
const peak = Math.max.apply(null, this.data.map(d => d.total));
if (peak != 0) {
this.pointsNote = this.data.map((d, i) => `${(i * this.zoom) + this.pos},${(1 - (d.notes / peak)) * this.viewBoxY}`).join(' ');
this.pointsReply = this.data.map((d, i) => `${(i * this.zoom) + this.pos},${(1 - (d.replies / peak)) * this.viewBoxY}`).join(' ');
this.pointsRenote = this.data.map((d, i) => `${(i * this.zoom) + this.pos},${(1 - (d.renotes / peak)) * this.viewBoxY}`).join(' ');
this.pointsTotal = this.data.map((d, i) => `${(i * this.zoom) + this.pos},${(1 - (d.total / peak)) * this.viewBoxY}`).join(' ');
const data = this.data.slice().reverse();
this.pointsNote = data.map((d, i) => `${(i * this.zoom) + this.pos},${(1 - (d.notes / peak)) * this.viewBoxY}`).join(' ');
this.pointsReply = data.map((d, i) => `${(i * this.zoom) + this.pos},${(1 - (d.replies / peak)) * this.viewBoxY}`).join(' ');
this.pointsRenote = data.map((d, i) => `${(i * this.zoom) + this.pos},${(1 - (d.renotes / peak)) * this.viewBoxY}`).join(' ');
this.pointsTotal = data.map((d, i) => `${(i * this.zoom) + this.pos},${(1 - (d.total / peak)) * this.viewBoxY}`).join(' ');
}
},
onMousedown(e) {

View File

@ -1,108 +0,0 @@
<template>
<canvas class="mk-analog-clock" ref="canvas" width="256" height="256"></canvas>
</template>
<script lang="ts">
import Vue from 'vue';
import { themeColor } from '../../../config';
const Vec2 = function(this: any, x, y) {
this.x = x;
this.y = y;
};
export default Vue.extend({
data() {
return {
clock: null
};
},
mounted() {
this.tick();
this.clock = setInterval(this.tick, 1000);
},
beforeDestroy() {
clearInterval(this.clock);
},
methods: {
tick() {
const canv = this.$refs.canvas as any;
const now = new Date();
const s = now.getSeconds();
const m = now.getMinutes();
const h = now.getHours();
const ctx = canv.getContext('2d');
const canvW = canv.width;
const canvH = canv.height;
ctx.clearRect(0, 0, canvW, canvH);
{ // 背景
const center = Math.min((canvW / 2), (canvH / 2));
const lineStart = center * 0.90;
const shortLineEnd = center * 0.87;
const longLineEnd = center * 0.84;
for (let i = 0; i < 60; i++) {
const angle = Math.PI * i / 30;
const uv = new Vec2(Math.sin(angle), -Math.cos(angle));
ctx.beginPath();
ctx.lineWidth = 1;
ctx.moveTo((canvW / 2) + uv.x * lineStart, (canvH / 2) + uv.y * lineStart);
if (i % 5 == 0) {
ctx.strokeStyle = 'rgba(255, 255, 255, 0.2)';
ctx.lineTo((canvW / 2) + uv.x * longLineEnd, (canvH / 2) + uv.y * longLineEnd);
} else {
ctx.strokeStyle = 'rgba(255, 255, 255, 0.1)';
ctx.lineTo((canvW / 2) + uv.x * shortLineEnd, (canvH / 2) + uv.y * shortLineEnd);
}
ctx.stroke();
}
}
{ // 分
const angle = Math.PI * (m + s / 60) / 30;
const length = Math.min(canvW, canvH) / 2.6;
const uv = new Vec2(Math.sin(angle), -Math.cos(angle));
ctx.beginPath();
ctx.strokeStyle = '#ffffff';
ctx.lineWidth = 2;
ctx.moveTo(canvW / 2 - uv.x * length / 5, canvH / 2 - uv.y * length / 5);
ctx.lineTo(canvW / 2 + uv.x * length, canvH / 2 + uv.y * length);
ctx.stroke();
}
{ // 時
const angle = Math.PI * (h % 12 + m / 60) / 6;
const length = Math.min(canvW, canvH) / 4;
const uv = new Vec2(Math.sin(angle), -Math.cos(angle));
ctx.beginPath();
ctx.strokeStyle = themeColor;
ctx.lineWidth = 2;
ctx.moveTo(canvW / 2 - uv.x * length / 5, canvH / 2 - uv.y * length / 5);
ctx.lineTo(canvW / 2 + uv.x * length, canvH / 2 + uv.y * length);
ctx.stroke();
}
{ // 秒
const angle = Math.PI * s / 30;
const length = Math.min(canvW, canvH) / 2.6;
const uv = new Vec2(Math.sin(angle), -Math.cos(angle));
ctx.beginPath();
ctx.strokeStyle = 'rgba(255, 255, 255, 0.5)';
ctx.lineWidth = 1;
ctx.moveTo(canvW / 2 - uv.x * length / 5, canvH / 2 - uv.y * length / 5);
ctx.lineTo(canvW / 2 + uv.x * length, canvH / 2 + uv.y * length);
ctx.stroke();
}
}
}
});
</script>
<style lang="stylus" scoped>
.mk-analog-clock
display block
width 256px
height 256px
</style>

View File

@ -138,6 +138,7 @@ root(isDark)
background isDark ? #282C37 : #fff
border solid 1px rgba(#000, 0.075)
border-radius 6px
overflow hidden
&[data-melt]
background transparent !important
@ -151,9 +152,12 @@ root(isDark)
line-height 42px
font-size 0.9em
font-weight bold
color #888
color isDark ? #c5ced6 : #888
box-shadow 0 1px rgba(#000, 0.07)
if isDark
background #313543
> [data-fa]
margin-right 4px
@ -165,13 +169,13 @@ root(isDark)
width 42px
font-size 0.9em
line-height 42px
color #ccc
color isDark ? #9baec8 : #ccc
&:hover
color #aaa
color isDark ? #b2c1d5 : #aaa
&:active
color #999
color isDark ? #b2c1d5 : #999
&:first-of-type
left 0
@ -194,49 +198,49 @@ root(isDark)
font-size 14px
&.weekday
color #19a2a9
color isDark ? #43d5dc : #19a2a9
&[data-is-donichi]
color #ef95a0
color isDark ? #ff6679 : #ef95a0
&[data-today]
box-shadow 0 0 0 1px #19a2a9 inset
box-shadow 0 0 0 1px isDark ? #43d5dc : #19a2a9 inset
border-radius 6px
&[data-is-donichi]
box-shadow 0 0 0 1px #ef95a0 inset
box-shadow 0 0 0 1px isDark ? #ff6679 : #ef95a0 inset
&.day
cursor pointer
color #777
color isDark ? #c5ced6 : #777
> div
border-radius 6px
&:hover > div
background rgba(#000, 0.025)
background rgba(#000, isDark ? 0.1 : 0.025)
&:active > div
background rgba(#000, 0.05)
background rgba(#000, isDark ? 0.2 : 0.05)
&[data-is-donichi]
color #ef95a0
color isDark ? #ff6679 : #ef95a0
&[data-is-out-of-range]
cursor default
color rgba(#777, 0.5)
color rgba(isDark ? #c5ced6 : #777, 0.5)
&[data-is-donichi]
color rgba(#ef95a0, 0.5)
color rgba(isDark ? #ff6679 : #ef95a0, 0.5)
&[data-selected]
font-weight bold
> div
background rgba(#000, 0.025)
background rgba(#000, isDark ? 0.1 : 0.025)
&:active > div
background rgba(#000, 0.05)
background rgba(#000, isDark ? 0.2 : 0.05)
&[data-today]
> div

View File

@ -1,15 +1,17 @@
<template>
<ul class="menu">
<li v-for="(item, i) in menu" :class="item.type">
<template v-if="item.type == 'item'">
<p @click="click(item)"><span :class="$style.icon" v-if="item.icon" v-html="item.icon"></span>{{ item.text }}</p>
</template>
<template v-if="item.type == 'link'">
<a :href="item.href" :target="item.target" @click="click(item)"><span :class="$style.icon" v-if="item.icon" v-html="item.icon"></span>{{ item.text }}</a>
</template>
<template v-else-if="item.type == 'nest'">
<p><span :class="$style.icon" v-if="item.icon" v-html="item.icon"></span>{{ item.text }}...<span class="caret">%fa:caret-right%</span></p>
<me-nu :menu="item.menu" @x="click"/>
<li v-for="(item, i) in menu" :class="item ? item.type : item === null ? 'divider' : null">
<template v-if="item">
<template v-if="item.type == null || item.type == 'item'">
<p @click="click(item)"><span :class="$style.icon" v-if="item.icon" v-html="item.icon"></span>{{ item.text }}</p>
</template>
<template v-else-if="item.type == 'link'">
<a :href="item.href" :target="item.target" @click="click(item)"><span :class="$style.icon" v-if="item.icon" v-html="item.icon"></span>{{ item.text }}</a>
</template>
<template v-else-if="item.type == 'nest'">
<p><span :class="$style.icon" v-if="item.icon" v-html="item.icon"></span>{{ item.text }}...<span class="caret">%fa:caret-right%</span></p>
<me-nu :menu="item.menu" @x="click"/>
</template>
</template>
</li>
</ul>

View File

@ -1,5 +1,5 @@
<template>
<div class="context-menu" :style="{ left: `${x}px`, top: `${y}px` }" @contextmenu.prevent="() => {}">
<div class="context-menu" @contextmenu.prevent="() => {}">
<x-menu :menu="menu" @x="click"/>
</div>
</template>
@ -17,6 +17,23 @@ export default Vue.extend({
props: ['x', 'y', 'menu'],
mounted() {
this.$nextTick(() => {
const width = this.$el.offsetWidth;
const height = this.$el.offsetHeight;
let x = this.x;
let y = this.y;
if (x + width - window.pageXOffset > window.innerWidth) {
x = window.innerWidth - width + window.pageXOffset;
}
if (y + height - window.pageYOffset > window.innerHeight) {
y = window.innerHeight - height + window.pageYOffset;
}
this.$el.style.left = x + 'px';
this.$el.style.top = y + 'px';
Array.from(document.querySelectorAll('body *')).forEach(el => {
el.addEventListener('mousedown', this.onMousedown);
});
@ -38,7 +55,7 @@ export default Vue.extend({
return false;
},
click(item) {
if (item.onClick) item.onClick();
if (item.action) item.action();
this.close();
},
close() {
@ -59,7 +76,6 @@ root(isDark)
$item-height = 38px
$padding = 10px
display none
position fixed
top 0
left 0

Some files were not shown because too many files have changed in this diff Show More