Merge branch 'develop' into 'feat/react-picker-titles-support-filter-by-emoji'
# Conflicts: # CHANGELOG.md
This commit is contained in:
		
						commit
						10e2648142
					
				
					 11 changed files with 5688 additions and 999 deletions
				
			
		| 
						 | 
				
			
			@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 | 
			
		|||
### Added
 | 
			
		||||
- Mouseover titles for emojis in reaction picker
 | 
			
		||||
- Support to input emoji into the search box in reaction picker
 | 
			
		||||
- Added some missing unicode emoji
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
- Fixed the occasional bug where screen would scroll 1px when typing into a reply form
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -134,14 +134,14 @@
 | 
			
		|||
  "registration": {
 | 
			
		||||
    "bio": "Priskribo",
 | 
			
		||||
    "email": "Retpoŝtadreso",
 | 
			
		||||
    "fullname": "Vidiga nomo",
 | 
			
		||||
    "fullname": "Prezenta nomo",
 | 
			
		||||
    "password_confirm": "Konfirmo de pasvorto",
 | 
			
		||||
    "registration": "Registriĝo",
 | 
			
		||||
    "token": "Invita ĵetono",
 | 
			
		||||
    "captcha": "TESTO DE HOMECO",
 | 
			
		||||
    "new_captcha": "Klaku la bildon por akiri novan teston",
 | 
			
		||||
    "username_placeholder": "ekz. lain",
 | 
			
		||||
    "fullname_placeholder": "ekz. Lain Iwakura",
 | 
			
		||||
    "fullname_placeholder": "ekz. Lain Ivakura",
 | 
			
		||||
    "bio_placeholder": "ekz.\nSaluton, mi estas Lain.\nMi estas animea knabino vivanta en Japanujo. Eble vi konas min pro la retejo « Wired ».",
 | 
			
		||||
    "validations": {
 | 
			
		||||
      "username_required": "ne povas resti malplena",
 | 
			
		||||
| 
						 | 
				
			
			@ -164,7 +164,7 @@
 | 
			
		|||
    "blocks_tab": "Blokitoj",
 | 
			
		||||
    "btnRadius": "Butonoj",
 | 
			
		||||
    "cBlue": "Blua (respondi, aboni)",
 | 
			
		||||
    "cGreen": "Verda (kunhavigi)",
 | 
			
		||||
    "cGreen": "Verda (diskonigi)",
 | 
			
		||||
    "cOrange": "Oranĝa (ŝati)",
 | 
			
		||||
    "cRed": "Ruĝa (nuligi)",
 | 
			
		||||
    "change_password": "Ŝanĝi pasvorton",
 | 
			
		||||
| 
						 | 
				
			
			@ -207,8 +207,8 @@
 | 
			
		|||
    "import_theme": "Enlegi antaŭagordojn",
 | 
			
		||||
    "inputRadius": "Enigaj kampoj",
 | 
			
		||||
    "checkboxRadius": "Markbutonoj",
 | 
			
		||||
    "instance_default": "(implicita: {value})",
 | 
			
		||||
    "instance_default_simple": "(implicita)",
 | 
			
		||||
    "instance_default": "(originale: {value})",
 | 
			
		||||
    "instance_default_simple": "(originale)",
 | 
			
		||||
    "interface": "Fasado",
 | 
			
		||||
    "interfaceLanguage": "Lingvo de fasado",
 | 
			
		||||
    "invalid_theme_imported": "La elektita dosiero ne estas subtenata haŭto de Pleromo. Neniuj ŝanĝoj al via haŭto okazis.",
 | 
			
		||||
| 
						 | 
				
			
			@ -219,7 +219,7 @@
 | 
			
		|||
    "loop_video_silent_only": "Ripetadi nur filmojn sen sono (ekz. la «GIF-ojn» de Mastodon)",
 | 
			
		||||
    "mutes_tab": "Silentigoj",
 | 
			
		||||
    "play_videos_in_modal": "Ludi filmojn en ŝpruca kadro",
 | 
			
		||||
    "use_contain_fit": "Ne tondi la kunsendaĵon en bildetoj",
 | 
			
		||||
    "use_contain_fit": "Ne pritondi bildetojn de kunsendaĵoj",
 | 
			
		||||
    "name": "Nomo",
 | 
			
		||||
    "name_bio": "Nomo kaj priskribo",
 | 
			
		||||
    "new_password": "Nova pasvorto",
 | 
			
		||||
| 
						 | 
				
			
			@ -265,7 +265,7 @@
 | 
			
		|||
    "subject_line_email": "Kiel retpoŝto: «re: temo»",
 | 
			
		||||
    "subject_line_mastodon": "Kiel Mastodon: kopii senŝanĝe",
 | 
			
		||||
    "subject_line_noop": "Ne kopii",
 | 
			
		||||
    "post_status_content_type": "Afiŝi specon de la enhavo de la stato",
 | 
			
		||||
    "post_status_content_type": "Speco de enhavo de afiŝo",
 | 
			
		||||
    "stop_gifs": "Movi GIF-bildojn dum ŝvebo de muso",
 | 
			
		||||
    "streaming": "Ŝalti memagan fluigon de novaj afiŝoj kiam vi vidas la supron de la paĝo",
 | 
			
		||||
    "text": "Teksto",
 | 
			
		||||
| 
						 | 
				
			
			@ -379,7 +379,7 @@
 | 
			
		|||
        "hint": "Por ombroj vi ankaŭ povas uzi --variable kiel koloran valoron, por uzi variantojn de CSS3. Bonvolu rimarki, ke tiuokaze agordoj de maltravidebleco ne funkcios.",
 | 
			
		||||
        "filter_hint": {
 | 
			
		||||
          "always_drop_shadow": "Averto: ĉi tiu ombro ĉiam uzas {0} kiam la foliumilo tion subtenas.",
 | 
			
		||||
          "drop_shadow_syntax": "{0} ne subtenas parametron {1} kaj ŝlosilvorton {2}.",
 | 
			
		||||
          "drop_shadow_syntax": "{0} ne subtenas parametron {1} kaj ĉefvorton {2}.",
 | 
			
		||||
          "avatar_inset": "Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj.",
 | 
			
		||||
          "spread_zero": "Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo",
 | 
			
		||||
          "inset_classic": "Internaj ombroj uzos {0}"
 | 
			
		||||
| 
						 | 
				
			
			@ -394,7 +394,7 @@
 | 
			
		|||
          "button": "Butono",
 | 
			
		||||
          "buttonHover": "Butono (je ŝvebo)",
 | 
			
		||||
          "buttonPressed": "Butono (premita)",
 | 
			
		||||
          "buttonPressedHover": "Butono (premita kaj je ŝvebo)",
 | 
			
		||||
          "buttonPressedHover": "Butono (je premo kaj ŝvebo)",
 | 
			
		||||
          "input": "Eniga kampo"
 | 
			
		||||
        },
 | 
			
		||||
        "hintV3": "Kolorojn de ombroj vi ankaŭ povas skribi per la sistemo {0}."
 | 
			
		||||
| 
						 | 
				
			
			@ -683,7 +683,7 @@
 | 
			
		|||
        "replace": "Anstataŭigi",
 | 
			
		||||
        "reject": "Rifuzi",
 | 
			
		||||
        "ftl_removal": "Forigo el la historio de «La tuta konata reto»",
 | 
			
		||||
        "keyword_policies": "Politiko pri ŝlosilvortoj"
 | 
			
		||||
        "keyword_policies": "Politiko pri ĉefvortoj"
 | 
			
		||||
      },
 | 
			
		||||
      "federation": "Federado",
 | 
			
		||||
      "mrf_policies_desc": "Politikoj de Mesaĝa ŝanĝilaro (MRF) efikas sur federa konduto de la nodo.  La sekvaj politikoj estas ŝaltitaj:"
 | 
			
		||||
| 
						 | 
				
			
			@ -739,8 +739,8 @@
 | 
			
		|||
    "week_short": "{0}s",
 | 
			
		||||
    "weeks": "{0} semajnoj",
 | 
			
		||||
    "week": "{0} semajno",
 | 
			
		||||
    "seconds_short": "{0}s",
 | 
			
		||||
    "second_short": "{0}s",
 | 
			
		||||
    "seconds_short": "{0}sek",
 | 
			
		||||
    "second_short": "{0}sek",
 | 
			
		||||
    "seconds": "{0} sekundoj",
 | 
			
		||||
    "second": "{0} sekundo",
 | 
			
		||||
    "now_short": "nun",
 | 
			
		||||
| 
						 | 
				
			
			@ -749,14 +749,14 @@
 | 
			
		|||
    "month_short": "{0}m",
 | 
			
		||||
    "months": "{0} monatoj",
 | 
			
		||||
    "month": "{0} monato",
 | 
			
		||||
    "minutes_short": "{0}m",
 | 
			
		||||
    "minute_short": "{0}m",
 | 
			
		||||
    "minutes_short": "{0}min",
 | 
			
		||||
    "minute_short": "{0}min",
 | 
			
		||||
    "minutes": "{0} minutoj",
 | 
			
		||||
    "minute": "{0} minuto",
 | 
			
		||||
    "in_past": "antaŭ {0}",
 | 
			
		||||
    "in_future": "post {0}",
 | 
			
		||||
    "hours_short": "{0}h",
 | 
			
		||||
    "hour_short": "{0}h",
 | 
			
		||||
    "hours_short": "{0}hor",
 | 
			
		||||
    "hour_short": "{0}hor",
 | 
			
		||||
    "hours": "{0} horoj",
 | 
			
		||||
    "hour": "{0} horo",
 | 
			
		||||
    "days_short": "{0}t",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,7 +104,8 @@
 | 
			
		|||
    "no_more_notifications": "No hay más notificaciones",
 | 
			
		||||
    "reacted_with": "reaccionó con {0}",
 | 
			
		||||
    "migrated_to": "migrado a",
 | 
			
		||||
    "follow_request": "quiere seguirte"
 | 
			
		||||
    "follow_request": "quiere seguirte",
 | 
			
		||||
    "error": "Error obteniendo notificaciones:{0}"
 | 
			
		||||
  },
 | 
			
		||||
  "polls": {
 | 
			
		||||
    "add_poll": "Añadir encuesta",
 | 
			
		||||
| 
						 | 
				
			
			@ -313,7 +314,7 @@
 | 
			
		|||
    "hide_followers_count_description": "No mostrar el número de cuentas que me siguen",
 | 
			
		||||
    "show_admin_badge": "Mostrar la insignia de Administrador en mi perfil",
 | 
			
		||||
    "show_moderator_badge": "Mostrar la insignia de Moderador en mi perfil",
 | 
			
		||||
    "nsfw_clickthrough": "Activar el clic para ocultar los adjuntos NSFW",
 | 
			
		||||
    "nsfw_clickthrough": "Habilitar la ocultación de la imagen de vista previa del enlace y el adjunto para los estados NSFW por defecto",
 | 
			
		||||
    "oauth_tokens": "Tokens de OAuth",
 | 
			
		||||
    "token": "Token",
 | 
			
		||||
    "refresh_token": "Actualizar el token",
 | 
			
		||||
| 
						 | 
				
			
			@ -605,7 +606,8 @@
 | 
			
		|||
    "up_to_date": "Actualizado",
 | 
			
		||||
    "no_more_statuses": "No hay más estados",
 | 
			
		||||
    "no_statuses": "Sin estados",
 | 
			
		||||
    "reload": "Recargar"
 | 
			
		||||
    "reload": "Recargar",
 | 
			
		||||
    "error": "Error obteniendo la linea de tiempo:{0}"
 | 
			
		||||
  },
 | 
			
		||||
  "status": {
 | 
			
		||||
    "favorites": "Favoritos",
 | 
			
		||||
| 
						 | 
				
			
			@ -628,7 +630,9 @@
 | 
			
		|||
    "copy_link": "Copiar el enlace al estado",
 | 
			
		||||
    "status_unavailable": "Estado no disponible",
 | 
			
		||||
    "bookmark": "Marcar",
 | 
			
		||||
    "unbookmark": "Desmarcar"
 | 
			
		||||
    "unbookmark": "Desmarcar",
 | 
			
		||||
    "status_deleted": "Esta entrada ha sido eliminada",
 | 
			
		||||
    "nsfw": "NSFW (No apropiado para el trabajo)"
 | 
			
		||||
  },
 | 
			
		||||
  "user_card": {
 | 
			
		||||
    "approve": "Aprobar",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -390,5 +390,13 @@
 | 
			
		|||
      "GiB": "GiB",
 | 
			
		||||
      "TiB": "TiB"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "about": {
 | 
			
		||||
    "mrf": {
 | 
			
		||||
      "keyword": {
 | 
			
		||||
        "keyword_policies": "פוליסת מילות מפתח"
 | 
			
		||||
      },
 | 
			
		||||
      "federation": "פדרציה"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,7 +50,8 @@
 | 
			
		|||
    "follow_request": "vuole seguirti",
 | 
			
		||||
    "no_more_notifications": "Fine delle notifiche",
 | 
			
		||||
    "migrated_to": "è migrato verso",
 | 
			
		||||
    "reacted_with": "ha reagito con {0}"
 | 
			
		||||
    "reacted_with": "ha reagito con {0}",
 | 
			
		||||
    "error": "Errore nel caricare le notifiche: {0}"
 | 
			
		||||
  },
 | 
			
		||||
  "settings": {
 | 
			
		||||
    "attachments": "Allegati",
 | 
			
		||||
| 
						 | 
				
			
			@ -427,7 +428,8 @@
 | 
			
		|||
    "repeated": "condiviso",
 | 
			
		||||
    "no_statuses": "Nessun messaggio",
 | 
			
		||||
    "no_more_statuses": "Fine dei messaggi",
 | 
			
		||||
    "reload": "Ricarica"
 | 
			
		||||
    "reload": "Ricarica",
 | 
			
		||||
    "error": "Errore nel caricare la sequenza: {0}"
 | 
			
		||||
  },
 | 
			
		||||
  "user_card": {
 | 
			
		||||
    "follow": "Segui",
 | 
			
		||||
| 
						 | 
				
			
			@ -703,7 +705,8 @@
 | 
			
		|||
    "delete_confirm": "Vuoi veramente eliminare questo messaggio?",
 | 
			
		||||
    "unbookmark": "Rimuovi segnalibro",
 | 
			
		||||
    "bookmark": "Aggiungi segnalibro",
 | 
			
		||||
    "status_deleted": "Questo messagio è stato cancellato"
 | 
			
		||||
    "status_deleted": "Questo messagio è stato cancellato",
 | 
			
		||||
    "nsfw": "Pruriginoso"
 | 
			
		||||
  },
 | 
			
		||||
  "time": {
 | 
			
		||||
    "years_short": "{0}a",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,13 @@
 | 
			
		|||
    "generic_error": "Произошла ошибка",
 | 
			
		||||
    "optional": "не обязательно",
 | 
			
		||||
    "show_less": "Показать меньше",
 | 
			
		||||
    "show_more": "Показать больше"
 | 
			
		||||
    "show_more": "Показать больше",
 | 
			
		||||
    "peek": "Взглянуть",
 | 
			
		||||
    "dismiss": "Закрыть",
 | 
			
		||||
    "retry": "Попробуйте еще раз",
 | 
			
		||||
    "error_retry": "Пожалуйста попробуйте еще раз",
 | 
			
		||||
    "close": "Закрыть",
 | 
			
		||||
    "loading": "Загрузка…"
 | 
			
		||||
  },
 | 
			
		||||
  "login": {
 | 
			
		||||
    "login": "Войти",
 | 
			
		||||
| 
						 | 
				
			
			@ -468,7 +474,9 @@
 | 
			
		|||
    "media_proxy": "Прокси для внешних вложений",
 | 
			
		||||
    "text_limit": "Лимит символов",
 | 
			
		||||
    "title": "Особенности",
 | 
			
		||||
    "gopher": "Gopher"
 | 
			
		||||
    "gopher": "Gopher",
 | 
			
		||||
    "who_to_follow": "Предложения кого читать",
 | 
			
		||||
    "pleroma_chat_messages": "Pleroma Чат"
 | 
			
		||||
  },
 | 
			
		||||
  "tool_tip": {
 | 
			
		||||
    "accept_follow_request": "Принять запрос на чтение",
 | 
			
		||||
| 
						 | 
				
			
			@ -477,6 +485,7 @@
 | 
			
		|||
  "image_cropper": {
 | 
			
		||||
    "save_without_cropping": "Сохранить не обрезая",
 | 
			
		||||
    "save": "Сохранить",
 | 
			
		||||
    "crop_picture": "Обрезать картинку"
 | 
			
		||||
    "crop_picture": "Обрезать картинку",
 | 
			
		||||
    "cancel": "Отмена"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										99
									
								
								src/i18n/uk.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								src/i18n/uk.json
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,99 @@
 | 
			
		|||
{
 | 
			
		||||
  "general": {
 | 
			
		||||
    "dismiss": "Закрити",
 | 
			
		||||
    "close": "Закрити",
 | 
			
		||||
    "verify": "Перевірити",
 | 
			
		||||
    "confirm": "Підтвердити",
 | 
			
		||||
    "enable": "Увімкнути",
 | 
			
		||||
    "disable": "Вимкнути",
 | 
			
		||||
    "cancel": "Скасувати",
 | 
			
		||||
    "show_less": "Показати менше",
 | 
			
		||||
    "show_more": "Показати більше",
 | 
			
		||||
    "optional": "необов'язково",
 | 
			
		||||
    "retry": "Спробуйте ще раз",
 | 
			
		||||
    "error_retry": "Будь ласка, спробуйте ще раз",
 | 
			
		||||
    "generic_error": "Виникла помилка",
 | 
			
		||||
    "loading": "Завантаження…",
 | 
			
		||||
    "more": "Більше",
 | 
			
		||||
    "submit": "Відправити",
 | 
			
		||||
    "apply": "Застосувати",
 | 
			
		||||
    "peek": "Глянути"
 | 
			
		||||
  },
 | 
			
		||||
  "finder": {
 | 
			
		||||
    "error_fetching_user": "Користувача не знайдено",
 | 
			
		||||
    "find_user": "Знайти користувача"
 | 
			
		||||
  },
 | 
			
		||||
  "features_panel": {
 | 
			
		||||
    "gopher": "Gopher",
 | 
			
		||||
    "pleroma_chat_messages": "Чат Pleroma",
 | 
			
		||||
    "chat": "Чат",
 | 
			
		||||
    "who_to_follow": "Кого відстежувати",
 | 
			
		||||
    "title": "Особливості",
 | 
			
		||||
    "scope_options": "Параметри осягу",
 | 
			
		||||
    "media_proxy": "Посередник медіа-даних",
 | 
			
		||||
    "text_limit": "Ліміт символів"
 | 
			
		||||
  },
 | 
			
		||||
  "exporter": {
 | 
			
		||||
    "processing": "Опрацьовую, скоро ви зможете завантажити файл",
 | 
			
		||||
    "export": "Експорт"
 | 
			
		||||
  },
 | 
			
		||||
  "domain_mute_card": {
 | 
			
		||||
    "unmute_progress": "Вимикаю…",
 | 
			
		||||
    "unmute": "Вимкнути ігнорування",
 | 
			
		||||
    "mute_progress": "Вмикаю…",
 | 
			
		||||
    "mute": "Ігнорувати"
 | 
			
		||||
  },
 | 
			
		||||
  "shoutbox": {
 | 
			
		||||
    "title": "Для воплів"
 | 
			
		||||
  },
 | 
			
		||||
  "about": {
 | 
			
		||||
    "staff": "Адміністрація",
 | 
			
		||||
    "mrf": {
 | 
			
		||||
      "simple": {
 | 
			
		||||
        "media_nsfw_desc": "Даний інстанс примусово позначає вкладення з наступних інстансів як NSFW:",
 | 
			
		||||
        "media_nsfw": "Примусове визначення вкладення як дратівливого",
 | 
			
		||||
        "media_removal_desc": "Поточний інстанс видаляє вкладення на перелічених інстансах:",
 | 
			
		||||
        "media_removal": "Видалення вкладень",
 | 
			
		||||
        "ftl_removal_desc": "Цей інстанс видаляє перелічені інстанси з \"Усієї відомої мережі\":",
 | 
			
		||||
        "ftl_removal": "Видалення з \"Вся відома мережа\"",
 | 
			
		||||
        "quarantine_desc": "Поточний інстанс буде надсилати тільки публічні пости наступним інстансам:",
 | 
			
		||||
        "quarantine": "Карантин",
 | 
			
		||||
        "reject_desc": "Поточний інстанс не прийматиме повідомлення з перелічених інстансів:",
 | 
			
		||||
        "accept": "Прийняти",
 | 
			
		||||
        "reject": "Відхилити",
 | 
			
		||||
        "accept_desc": "Поточний інстанс приймає повідомлення тільки з перелічених інстансів:",
 | 
			
		||||
        "simple_policies": "Правила поточного інстансу"
 | 
			
		||||
      },
 | 
			
		||||
      "mrf_policies_desc": "Правила MRF розповсюджуються на данний  інстанс. Наступні правила активні:",
 | 
			
		||||
      "mrf_policies": "Активні правила MRF (модуль переписування повідомлень)",
 | 
			
		||||
      "keyword": {
 | 
			
		||||
        "is_replaced_by": "→",
 | 
			
		||||
        "replace": "Замінити",
 | 
			
		||||
        "reject": "Відхилити",
 | 
			
		||||
        "ftl_removal": "Прибрати з федеративної стрічки",
 | 
			
		||||
        "keyword_policies": "Політика щодо ключових слів"
 | 
			
		||||
      },
 | 
			
		||||
      "federation": "Федерація"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "login": {
 | 
			
		||||
    "hint": "Увійдіть, щоб доєднатися до дискусії",
 | 
			
		||||
    "username": "Ім'я користувача",
 | 
			
		||||
    "register": "Зареєструватись",
 | 
			
		||||
    "password": "Пароль",
 | 
			
		||||
    "logout": "Вийти",
 | 
			
		||||
    "description": "Увійти за допомогою OAuth",
 | 
			
		||||
    "login": "Увійти"
 | 
			
		||||
  },
 | 
			
		||||
  "importer": {
 | 
			
		||||
    "error": "Під час імпортування файлу сталася помилка.",
 | 
			
		||||
    "success": "Імпортовано успішно.",
 | 
			
		||||
    "submit": "Відправити"
 | 
			
		||||
  },
 | 
			
		||||
  "image_cropper": {
 | 
			
		||||
    "cancel": "Відмінити",
 | 
			
		||||
    "save_without_cropping": "Зберегти не обрізаючи",
 | 
			
		||||
    "crop_picture": "Обрізати малюнок",
 | 
			
		||||
    "save": "Зберегти"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -22,7 +22,7 @@
 | 
			
		|||
  },
 | 
			
		||||
  "general": {
 | 
			
		||||
    "apply": "应用",
 | 
			
		||||
    "submit": "提交",
 | 
			
		||||
    "submit": "发送",
 | 
			
		||||
    "more": "更多",
 | 
			
		||||
    "generic_error": "发生了一个错误",
 | 
			
		||||
    "optional": "可选",
 | 
			
		||||
| 
						 | 
				
			
			@ -297,7 +297,7 @@
 | 
			
		|||
    "hide_follows_description": "不要显示我所关注的人",
 | 
			
		||||
    "hide_followers_description": "不要显示关注我的人",
 | 
			
		||||
    "show_admin_badge": "显示管理徽章",
 | 
			
		||||
    "show_moderator_badge": "显示版主徽章",
 | 
			
		||||
    "show_moderator_badge": "在我的个人资料中显示监察员标志",
 | 
			
		||||
    "nsfw_clickthrough": "将不和谐附件隐藏,点击才能打开",
 | 
			
		||||
    "oauth_tokens": "OAuth令牌",
 | 
			
		||||
    "token": "令牌",
 | 
			
		||||
| 
						 | 
				
			
			@ -655,8 +655,8 @@
 | 
			
		|||
      "moderation": "权限",
 | 
			
		||||
      "grant_admin": "赋予管理权限",
 | 
			
		||||
      "revoke_admin": "撤销管理权限",
 | 
			
		||||
      "grant_moderator": "赋予版主权限",
 | 
			
		||||
      "revoke_moderator": "撤销版主权限",
 | 
			
		||||
      "grant_moderator": "赋予监察员权限",
 | 
			
		||||
      "revoke_moderator": "撤销监察员权限",
 | 
			
		||||
      "activate_account": "激活账号",
 | 
			
		||||
      "deactivate_account": "关闭账号",
 | 
			
		||||
      "delete_account": "删除账号",
 | 
			
		||||
| 
						 | 
				
			
			@ -683,7 +683,7 @@
 | 
			
		|||
  },
 | 
			
		||||
  "user_reporting": {
 | 
			
		||||
    "title": "报告 {0}",
 | 
			
		||||
    "add_comment_description": "此报告会发送给您的实例管理员。您可以在下面提供更多详细信息解释报告的缘由:",
 | 
			
		||||
    "add_comment_description": "此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:",
 | 
			
		||||
    "additional_comments": "其它信息",
 | 
			
		||||
    "forward_description": "这个账号是从另外一个服务器。同时发送一个副本到那里?",
 | 
			
		||||
    "forward_to": "转发 {0}",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2398
									
								
								static/emoji.json
									
									
									
									
									
								
							
							
						
						
									
										2398
									
								
								static/emoji.json
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										67
									
								
								tools/emoji_merger.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								tools/emoji_merger.js
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,67 @@
 | 
			
		|||
/*
 | 
			
		||||
  Emoji merger script, quick hack of a tool to:
 | 
			
		||||
  - update some missing emoji from an external source
 | 
			
		||||
  - sort the emoji
 | 
			
		||||
  - remove all multipart emoji (reactions don't allow them)
 | 
			
		||||
 | 
			
		||||
  Merges emoji from here: https://gist.github.com/oliveratgithub/0bf11a9aff0d6da7b46f1490f86a71eb
 | 
			
		||||
  to the simpler format we're using.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// Existing emojis we have
 | 
			
		||||
const oldEmojiFilename = '../static/emoji.json'
 | 
			
		||||
 | 
			
		||||
// The file downloaded from https://gist.github.com/oliveratgithub/0bf11a9aff0d6da7b46f1490f86a71eb
 | 
			
		||||
const newEmojiFilename = 'emojis.json'
 | 
			
		||||
 | 
			
		||||
// Output, replace the static/emoji.json with this file if it looks correct
 | 
			
		||||
const outputFilename = 'output.json'
 | 
			
		||||
 | 
			
		||||
const run = () => {
 | 
			
		||||
  const fs = require('fs')
 | 
			
		||||
 | 
			
		||||
  let newEmojisObject = {}
 | 
			
		||||
  let emojisObject = {}
 | 
			
		||||
 | 
			
		||||
  let data = fs.readFileSync(newEmojiFilename, 'utf8')
 | 
			
		||||
 | 
			
		||||
  // First filter out anything that's more than one codepoint
 | 
			
		||||
  const newEmojis = JSON.parse(data).emojis.filter(e => e.emoji.length <= 2)
 | 
			
		||||
 | 
			
		||||
  // Create a table with format { shortname: emoji }, remove the :
 | 
			
		||||
  newEmojis.forEach(e => {
 | 
			
		||||
    const name = e.shortname.slice(1, e.shortname.length - 1).toLowerCase()
 | 
			
		||||
    if (name.length > 0) {
 | 
			
		||||
      newEmojisObject[name] = e.emoji
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  data = fs.readFileSync(oldEmojiFilename, 'utf8')
 | 
			
		||||
 | 
			
		||||
  emojisObject = JSON.parse(data)
 | 
			
		||||
 | 
			
		||||
  // Get rid of longer emojis that don't play nice with reactions
 | 
			
		||||
  Object.keys(emojisObject).forEach(e => {
 | 
			
		||||
    if (emojisObject[e].length > 2) emojisObject[e] = undefined
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  // Add new emojis from the new tables to the old table
 | 
			
		||||
  Object.keys(newEmojisObject).forEach(e => {
 | 
			
		||||
    if (!emojisObject[e] && newEmojisObject[e].length <= 2) {
 | 
			
		||||
      emojisObject[e] = newEmojisObject[e]
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  // Sort by key
 | 
			
		||||
  const sorted = Object.keys(emojisObject).sort().reduce((acc, key) => {
 | 
			
		||||
    if (key.length === 0) return acc
 | 
			
		||||
    acc[key] = emojisObject[key]
 | 
			
		||||
    return acc
 | 
			
		||||
  }, {})
 | 
			
		||||
 | 
			
		||||
  fs.writeFile(outputFilename, JSON.stringify(sorted, null, 2), 'utf8', (err) => {
 | 
			
		||||
    if (err) console.log('Error writing file', err)
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
run()
 | 
			
		||||
							
								
								
									
										4036
									
								
								tools/emojis.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4036
									
								
								tools/emojis.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
		Reference in a new issue