i18n.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. const { a, em, strong } = require("hyperaxe");
  2. const i18n = {
  3. en: {
  4. // navbar items
  5. extended: "Extended",
  6. extendedDescription: [
  7. "When you support someone you may download posts from the inhabitants they support, and those posts show up here, sorted by recency.",
  8. ],
  9. popular: "Highlights",
  10. popularDescription: [
  11. "Posts from inhabitants in your network, ",
  12. strong("sorted by spreads"),
  13. ". Select the period of time, to get a list.",
  14. ],
  15. day: "Day",
  16. week: "Week",
  17. month: "Month",
  18. year: "Year",
  19. latest: "Latest",
  20. latestDescription: [
  21. strong("Posts"),
  22. " from yourself and inhabitants you support, sorted by recency.",
  23. ],
  24. topics: "Themes",
  25. topicsDescription: [
  26. strong("Themes"),
  27. " from yourself and inhabitants you support, sorted by recency. Select the timestamp of any post to see the rest of the thread.",
  28. ],
  29. summaries: "Summaries",
  30. summariesDescription: [
  31. strong("Themes and some comments"),
  32. " from yourself and inhabitants you support, sorted by recency. Select the timestamp of any post to see the rest of the thread.",
  33. ],
  34. threads: "Threads",
  35. threadsDescription: [
  36. strong("Posts that have comments"),
  37. " from inhabitants you support and your extended network, sorted by recency. Select the timestamp of any post to see the rest of the thread.",
  38. ],
  39. profile: "Avatar",
  40. inhabitants: "Inhabitants",
  41. manualMode: "Manual Mode",
  42. mentions: "Mentions",
  43. mentionsDescription: [
  44. strong("Posts that @mention you"),
  45. ", sorted by recency.",
  46. ],
  47. private: "Inbox",
  48. peers: "Peers",
  49. privateDescription: [
  50. "The latest comment from ",
  51. strong("private threads that include you"),
  52. ", sorted by recency. Private posts are encrypted for your public key, and have a maximum of 7 recipients. Recipients cannot be added after the thread has started. Select the timestamp to view the full thread.",
  53. ],
  54. search: "Search",
  55. imageSearch: "Image Search",
  56. settings: "Settings",
  57. // post actions
  58. comment: "Comment",
  59. subtopic: "Subtopic",
  60. json: "JSON",
  61. // relationships
  62. unfollow: "Unsupport",
  63. follow: "Support",
  64. block: "Block",
  65. unblock: "Unblock",
  66. newerPosts: "Newer posts",
  67. olderPosts: "Older posts",
  68. feedRangeEmpty: "The given range is empty for this feed. Try viewing the ",
  69. seeFullFeed: "full feed",
  70. feedEmpty: "The local client has never seen posts from this account.",
  71. beginningOfFeed: "This is the beginning of the feed",
  72. noNewerPosts: "No newer posts have been received yet.",
  73. relationshipNotFollowing: "",
  74. relationshipTheyFollow: "",
  75. relationshipMutuals: "",
  76. relationshipFollowing: "You are supporting",
  77. relationshipYou: "You",
  78. relationshipBlocking: "You are blocking",
  79. relationshipNone: "",
  80. relationshipConflict: "",
  81. relationshipBlockingPost: "Blocked post",
  82. // spreads view
  83. viewLikes: "View spreads",
  84. spreadedDescription: "List of posts spread by the inhabitant.",
  85. likedBy: " -> Spreads",
  86. // composer
  87. attachFiles: "Attach files",
  88. mentionsMatching: "Matching mentions",
  89. preview: "Preview",
  90. publish: "Publish",
  91. contentWarningPlaceholder: "Add a subject to the post (optional)",
  92. publishWarningPlaceholder: "...",
  93. publishCustomDescription: [
  94. "REMEMBER: Due to blockchain technology, once a post is published it cannot be edited or deleted.",
  95. ],
  96. commentWarning: [
  97. "REMEMBER: Due to blockchain technology, once a post is published it cannot be edited or deleted.",
  98. ],
  99. commentPublic: "public",
  100. commentPrivate: "private",
  101. commentLabel: ({ publicOrPrivate, markdownUrl }) => [
  102. ],
  103. publishLabel: ({ markdownUrl, linkTarget }) => [
  104. "REMEMBER: Due to blockchain technology, once a post is published it cannot be edited or deleted.",
  105. ],
  106. replyLabel: ({ markdownUrl }) => [
  107. "REMEMBER: Due to blockchain technology, once a post is published it cannot be edited or deleted.",
  108. ],
  109. publishCustomInfo: ({ href }) => [
  110. "If you have experience, you can also ",
  111. a({ href }, "publish an advanced post"),
  112. ".",
  113. ],
  114. publishBasicInfo: ({ href }) => [
  115. "If you have not experience, you should ",
  116. a({ href }, "publish a post"),
  117. ".",
  118. ],
  119. publishCustom: "Publish advanced post",
  120. subtopicLabel: ({ markdownUrl }) => [
  121. "Create a ",
  122. strong("public subtopic"),
  123. " of this post with ",
  124. a({ href: markdownUrl }, "Markdown"),
  125. ". Posts cannot be edited or deleted. To respond to an entire thread, select ",
  126. strong("comment"),
  127. " instead. Preview shows attached media.",
  128. ],
  129. // settings
  130. versionIntro: "Version",
  131. info: "Info",
  132. settingsIntro: ({ version }) => [
  133. `SNH-Oasis: ${version}...`,
  134. ],
  135. // SNH
  136. docsUrls: ({ snhUrl, projectUrl, roleUrl }) => [
  137. a({ href: snhUrl }, "Website"),
  138. " | ",
  139. a({ href: projectUrl }, "The Project Network"),
  140. " | ",
  141. a({ href: roleUrl }, "Role-playing"),
  142. ],
  143. theme: "Theme",
  144. themeIntro:
  145. "Choose a theme.",
  146. setTheme: "Set theme",
  147. language: "Language",
  148. languageDescription:
  149. "If you'd like to use another language, select it here.",
  150. setLanguage: "Set language",
  151. status: "Status",
  152. peerConnections: "Peers",
  153. online: "Online",
  154. supported: "Supported",
  155. recommended: "Recommended",
  156. blocked: "Blocked",
  157. noConnections: "No peers connected.",
  158. noSupportedConnections: "No peers supported.",
  159. noBlockedConnections: "No peers blocked.",
  160. noRecommendedConnections: "No peers recommended.",
  161. connectionActionIntro:
  162. "",
  163. startNetworking: "Start networking",
  164. stopNetworking: "Stop networking",
  165. restartNetworking: "Restart networking",
  166. sync: "Sync",
  167. indexes: "Indexes",
  168. indexesDescription:
  169. "Rebuilding your indexes is safe, and may fix some types of bugs.",
  170. invites: "Invites",
  171. invitesDescription:
  172. "Use the PUB's invite codes here.",
  173. acceptInvite: "Accept invite",
  174. // search page
  175. searchLabel: "Seek inhabitants and keywords, among the posts you have downloaded.",
  176. // image search page
  177. imageSearchLabel: "Enter words to search for images labelled with them.",
  178. // posts and comments
  179. commentDescription: ({ parentUrl }) => [
  180. " commented on ",
  181. a({ href: parentUrl }, " thread"),
  182. ],
  183. commentTitle: ({ authorName }) => [`Comment on @${authorName}'s post`],
  184. subtopicDescription: ({ parentUrl }) => [
  185. " created a subtopic from ",
  186. a({ href: parentUrl }, " a post"),
  187. ],
  188. subtopicTitle: ({ authorName }) => [`Subtopic on @${authorName}'s post`],
  189. mysteryDescription: "posted a mysterious post",
  190. // misc
  191. oasisDescription: "SNH Project Network",
  192. submit: "Submit",
  193. editProfile: "Edit Avatar",
  194. editProfileDescription:
  195. "",
  196. profileName: "Avatar name (plain text)",
  197. profileImage: "Avatar image",
  198. profileDescription: "Avatar description (Markdown)",
  199. hashtagDescription:
  200. "Posts from inhabitants in your network that reference this #hashtag, sorted by recency.",
  201. rebuildName: "Rebuild database",
  202. },
  203. /* spell-checker: disable */
  204. es: {
  205. latest: "Novedades",
  206. profile: "Avatar",
  207. inhabitants: "Habitantes",
  208. search: "Buscar",
  209. imageSearch: "Buscar Imágenes",
  210. settings: "Configuración",
  211. // navbar items
  212. extended: "Extendida",
  213. extendedDescription: [
  214. "Cuando apoyes a alguien, podrás descargar publicaciones de habitantes que apoye, y esas publicaciones aparecerán aquí, ordenadas por las más recientes.",
  215. ],
  216. popular: "Destacadas",
  217. day: "Día",
  218. week: "Semana",
  219. month: "Mes",
  220. year: "Año",
  221. popularDescription: [
  222. "Posts de habitantes de tu red, ",
  223. strong("ordenados por difusiones"),
  224. ". Selecciona el periodo de tiempo, para obtener una lista.",
  225. ],
  226. latestDescription: [
  227. strong("Posts"),
  228. " tuyos y de habitantes que apoyas, ordenados por los más recientes.",
  229. ],
  230. topics: "Temáticas",
  231. topicsDescription: [
  232. strong("Temáticas"),
  233. " tuyas y de habitantes que apoyas, ordenadas por las más recientes. Selecciona la hora de una publicación para leer el hilo completo.",
  234. ],
  235. summaries: "Resumen",
  236. summariesDescription: [
  237. strong("Temáticas y algunos comentarios"),
  238. " tuyos y de habitantes que apoyas, ordenado por lo más reciente. Selecciona la hora de una publicación para leer el hilo completo.",
  239. ],
  240. threads: "Hilos",
  241. threadsDescription: [
  242. strong("Posts que tienen comentarios"),
  243. " de habitantes que apoyas y de tu red extendida, ordenados por los más recientes. Selecciona la hora de una publicación para leer el hilo completo.",
  244. ],
  245. manualMode: "Modo manual",
  246. mentions: "Menciones",
  247. mentionsDescription: [
  248. strong("Posts que te @mencionan"),
  249. ", ordenados por los más recientes.",
  250. ],
  251. private: "Buzón",
  252. peers: "Enlaces",
  253. privateDescription: [
  254. "Los comentarios más recientes de ",
  255. strong("hilos privados que te incluyen"),
  256. ". Las publicaciones privadas están cifradas para ti, y contienen un máximo de 7 destinatarios. No se podrán añadir nuevos destinarios después de que empieze el hilo. Selecciona la hora de una publicación para leer el hilo completo.",
  257. ],
  258. // post actions
  259. comment: "Comentar",
  260. reply: "Responder",
  261. subtopic: "Subhilo",
  262. json: "JSON",
  263. // relationships
  264. relationshipNotFollowing: "",
  265. relationshipTheyFollow: "",
  266. relationshipMutuals: "",
  267. relationshipFollowing: "Apoyando",
  268. relationshipYou: "Tú",
  269. relationshipBlocking: "Bloqueado",
  270. relationshipNone: "",
  271. relationshipConflict: "",
  272. relationshipBlockingPost: "Post bloqueado",
  273. unfollow: "Dejar de apoyar",
  274. follow: "Apoyar",
  275. block: "Bloquear",
  276. unblock: "Desbloquear",
  277. newerPosts: "Nuevos posts",
  278. olderPosts: "Anteriores posts",
  279. feedRangeEmpty: "El rango requerido está vacío para éste hilo. Prueba a ver el ",
  280. seeFullFeed: "hilo completo",
  281. feedEmpty: "No tienes posts de ésta cuenta.",
  282. beginningOfFeed: "Éste es el comienzo del hilo",
  283. noNewerPosts: "No se han recibido nuevos posts aún.",
  284. // spreads view
  285. viewLikes: "Ver difusiones",
  286. spreadedDescription: "Listado de posts difundidos del habitante.",
  287. likedBy: " -> Difusiones",
  288. // composer
  289. attachFiles: "Agregar archivos",
  290. mentionsMatching: "Menciones coincidentes",
  291. preview: "Vista previa",
  292. publish: "Publicar",
  293. contentWarningPlaceholder: "Añade un asunto al post (opcional)",
  294. publishWarningPlaceholder: "...",
  295. publishCustomDescription: [
  296. "RECUERDA: Debido a la tecnología blockchain, una vez publicado un post, no podrá ser editado o borrado.",
  297. ],
  298. commentWarning: [
  299. " RECUERDA: Debido a la tecnología blockchain, una vez publicado un post, no podrá ser editado o borrado.",
  300. ],
  301. commentPublic: "público",
  302. commentPrivate: "privado",
  303. commentLabel: ({ publicOrPrivate, markdownUrl }) => [
  304. ],
  305. publishLabel: ({ markdownUrl, linkTarget }) => [
  306. "RECUERDA: Debido a la tecnología blockchain, una vez publicado un post, no podrá ser editado o borrado.",
  307. ],
  308. publishCustomInfo: ({ href }) => [
  309. "Si tienes experiencia, también puedes ",
  310. a({ href }, "publicar un post avanzado"),
  311. ".",
  312. ],
  313. publishBasicInfo: ({ href }) => [
  314. "Si no tienes experiencia, lo mejor es ",
  315. a({ href }, "publicar un post normal"),
  316. ".",
  317. ],
  318. publishCustom: "Publicar post avanzado",
  319. replyLabel: ({ markdownUrl }) => [
  320. "RECUERDA: Debido a la tecnología blockchain, una vez publicados los posts, no podrán ser editados o borrados.",
  321. ],
  322. // settings-es
  323. versionIntro: "Versión",
  324. info: "Info",
  325. settingsIntro: ({ version }) => [
  326. `SNH-Oasis: ${version}...`,
  327. ],
  328. // SNH
  329. docsUrls: ({ snhUrl, projectUrl, roleUrl }) => [
  330. a({ href: snhUrl }, "Website"),
  331. " | ",
  332. a({ href: projectUrl }, "The Project Network"),
  333. " | ",
  334. a({ href: roleUrl }, "Role-playing"),
  335. ],
  336. theme: "Tema",
  337. themeIntro:
  338. "Elige un tema.",
  339. setTheme: "Seleccionar tema",
  340. language: "Idioma",
  341. languageDescription:
  342. "Si quieres usar otro idioma, seleccionalo aquí.",
  343. setLanguage: "Seleccionar idioma",
  344. status: "Estado",
  345. peerConnections: "Enlaces",
  346. online: "Online",
  347. supported: "Soportados",
  348. recommended: "Recomendados",
  349. blocked: "Bloqueados",
  350. noConnections: "Sin enlaces conectados.",
  351. noSupportedConnections: "Sin enlaces soportados.",
  352. noBlockedConnections: "Sin enlaces bloqueados.",
  353. noRecommendedConnections: "Sin enlaces recomendados.",
  354. connectionActionIntro:
  355. "",
  356. startNetworking: "Iniciar red",
  357. stopNetworking: "Detener red",
  358. restartNetworking: "Reiniciar red",
  359. sync: "Sincronizar",
  360. indexes: "Índices",
  361. indexesDescription:
  362. "Reconstruir la caché de forma segura, puede solucionar algunos errores si se presentan.",
  363. invites: "Invitaciones",
  364. invitesDescription:
  365. "Utiliza los códigos de invitación de los PUBs aquí.",
  366. acceptInvite: "Aceptar la invitación",
  367. // search page
  368. searchLabel:
  369. "Busca habitantes y palabras clave, entre los posts que tienes descargados.",
  370. // posts and comments
  371. commentDescription: ({ parentUrl }) => [
  372. " comentó en el hilo ",
  373. a({ href: parentUrl }, ""),
  374. ],
  375. replyDescription: ({ parentUrl }) => [
  376. " respondido al ",
  377. a({ href: parentUrl }, "post "),
  378. ],
  379. // image search page
  380. imageSearchLabel:
  381. "Busca entre los títulos de las imágenes que tienes descargadas.",
  382. // posts and comments
  383. commentTitle: ({ authorName }) => [
  384. `Comentó en el post de @${authorName}`,
  385. ],
  386. subtopicDescription: ({ parentUrl }) => [
  387. " creó un nuevo hilo para ",
  388. a({ href: parentUrl }, "este post"),
  389. ],
  390. subtopicTitle: ({ authorName }) => [
  391. `Nuevo hilo en el post de @${authorName}`,
  392. ],
  393. mysteryDescription: "publicó un post misterioso",
  394. // misc
  395. oasisDescription:
  396. "Red de Proyectos de SNH",
  397. submit: "Aceptar",
  398. editProfile: "Editar avatar",
  399. editProfileDescription:
  400. "",
  401. profileName: "Nombre del avatar (texto)",
  402. profileImage: "Imagen del avatar",
  403. profileDescription: "Descripción del avatar (Markdown)",
  404. hashtagDescription:
  405. "Posts de habitantes en tu red que referencian a ésta #etiqueta, ordenados por los más recientes.",
  406. rebuildName: "Reconstruir base de datos",
  407. },
  408. };
  409. module.exports = i18n;