diff --git a/CHANGELOG.md b/CHANGELOG.md index f9e6b0ed21..e8fcb60a39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,9 @@ - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する +- Feat: ページのタブバーを下部に表示できるように +- Enhance: コントロールパネルを検索できるように +- Enhance: トルコ語 (tr-TR) に対応 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml index 15f8e5f16c..b5b832080f 100644 --- a/locales/ar-SA.yml +++ b/locales/ar-SA.yml @@ -68,7 +68,7 @@ receiveFollowRequest: "تلقيت طلب متابعة" followRequestAccepted: "قُبل طلب المتابعة" mention: "أشر الى" mentions: "الإشارات" -directNotes: "الملاحظات المباشرة" +directNotes: "رسالة خاصة" importAndExport: "إستورد / صدر" import: "استيراد" export: "تصدير" diff --git a/locales/ca-ES.yml b/locales/ca-ES.yml index 1210ed4126..65ac41edeb 100644 --- a/locales/ca-ES.yml +++ b/locales/ca-ES.yml @@ -1370,9 +1370,13 @@ defaultImageCompressionLevel: "Nivell de comprensió de la imatge per defecte" defaultImageCompressionLevel_description: "Baixa, conserva la qualitat de la imatge però la mida de l'arxiu és més gran.
Alta, redueix la mida de l'arxiu però també la qualitat de la imatge." inMinutes: "Minut(s)" inDays: "Di(a)(es)" +safeModeEnabled: "Mode segur activat" +pluginsAreDisabledBecauseSafeMode: "Els afegits no estan activats perquè el mode segur està activat." +customCssIsDisabledBecauseSafeMode: "El CSS personalitzat no s'aplica perquè el mode segur es troba activat." +themeIsDefaultBecauseSafeMode: "El tema predeterminat es farà servir mentre el mode segur estigui activat. Una vegada es desactivi el mode segur es restablirà el tema escollit." _order: newest: "Més recent" - oldest: "Cronològic" + oldest: "Antigues primer" _chat: noMessagesYet: "Encara no tens missatges " newMessage: "Missatge nou" @@ -1634,6 +1638,10 @@ _serverSettings: fanoutTimelineDbFallback: "Carregar de la base de dades" fanoutTimelineDbFallbackDescription: "Quan s'activa, la línia de temps fa servir la base de dades per consultes adicionals si la línia de temps no es troba a la memòria cau. Si és desactiva la càrrega del servidor és veure reduïda, però també és reduirà el nombre de línies de temps que és poden obtenir." reactionsBufferingDescription: "Quan s'activa aquesta opció millora bastant el rendiment en recuperar les línies de temps reduint la càrrega de la base. Com a contrapunt, augmentarà l'ús de memòria de Redís. Desactiva aquesta opció en cas de tenir un servidor amb poca memòria o si tens problemes d'inestabilitat." + remoteNotesCleaning: "Neteja automàtica de notes remotes" + remoteNotesCleaning_description: "Quan activis aquesta opció, periòdicament es netejaran les notes remotes que no es consultin, això evitarà que la base de dades se" + remoteNotesCleaningMaxProcessingDuration: "D'oració màxima del temps de funcionament del procés de neteja" + remoteNotesCleaningExpiryDaysForEachNotes: "Duració mínima de conservació de les notes" inquiryUrl: "URL de consulta " inquiryUrlDescription: "Escriu adreça URL per al formulari de consulta per al mantenidor del servidor o una pàgina web amb el contacte d'informació." openRegistration: "Registres oberts" @@ -1652,6 +1660,8 @@ _serverSettings: userGeneratedContentsVisibilityForVisitor: "L'abast de la publicació del contingut generat per l'usuari" userGeneratedContentsVisibilityForVisitor_description: "Això ajuda a evitar problemes com que continguts remots inadequats que no hagin estat moderats correctament es publiquin a internet mitjançant el teu servidor." userGeneratedContentsVisibilityForVisitor_description2: "La publicació incondicional de tots els continguts del servidor a internet, incloent-hi els continguts remots rebuts pel servidor, comporta riscos. Això és extremadament important per els espectadors que desconeixen el caràcter descentralitzat dels continguts, ja que poden percebre erroneament els continguts remots com contingut generat per el propi servidor." + restartServerSetupWizardConfirm_title: "Vols tornar a executar l'assistent de configuració inicial del servidor?" + restartServerSetupWizardConfirm_text: "Algunes configuracions actuals seran restablertes." _userGeneratedContentsVisibilityForVisitor: all: "Tot obert al públic " localOnly: "Només es publiquen els continguts locals, el contingut remot es manté privat" @@ -3062,6 +3072,7 @@ _bootErrors: otherOption1: "Esborrar la configuració i la memòria cau del client" otherOption2: "Iniciar client senzill" otherOption3: "Iniciar l'eina de reparació " + otherOption4: "Iniciar Misskey en mode segur" _search: searchScopeAll: "Tot" searchScopeLocal: "Local" @@ -3098,6 +3109,8 @@ _serverSetupWizard: doYouConnectToFediverse_description1: "Quan es connecta amb una xarxa de servidors distribuïts (Fedivers), els continguts poden intercanviar-se amb altres servidors i entre ells." doYouConnectToFediverse_description2: "La connexió amb el Fedivers també es coneix com a \"federació\"." youCanConfigureMoreFederationSettingsLater: "Les configuracions avançades, com especificar els servidors amb els quals es pot federar, es poden fer més tard." + remoteContentsCleaning: "Neteja automàtica del contingut rebut" + remoteContentsCleaning_description: "Quan es comença a federar es rep un munt de contingut, quan s'activa la neteja automàtica el contingut antic que no es consulta serà eliminat del servidor, el que permet estalviar espai d'emmagatzematge." adminInfo: "Informació de l'administrador " adminInfo_description: "Estableix la informació de l'administrador que es farà servir per rebre consultes." adminInfo_mustBeFilled: "Aquesta informació ha de ser omplerta si el servidor té els registres oberts o la federació es troba activada." diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml index f55236c249..5945ceaf96 100644 --- a/locales/cs-CZ.yml +++ b/locales/cs-CZ.yml @@ -2004,7 +2004,7 @@ _deck: list: "Seznamy" channel: "Kanály" mentions: "Zmínění" - direct: "Přímý" + direct: "Přímé poznámky" roleTimeline: "Časová osa role" _dialog: charactersExceeded: "Překročili jste maximální počet znaků! V současné době je na hodnotě {current} z {max}." diff --git a/locales/el-GR.yml b/locales/el-GR.yml index ad146866be..5fc2bd7221 100644 --- a/locales/el-GR.yml +++ b/locales/el-GR.yml @@ -353,6 +353,7 @@ _visibility: home: "Κεντρικό" homeDescription: "Δημοσίευση στο κεντρικό χρονολόγιο μόνο" followers: "Ακολουθούν" + specified: "Απευθείας σημειώματα" _profile: name: "Όνομα" username: "Όνομα μέλους" @@ -395,6 +396,7 @@ _deck: antenna: "Αντένες" list: "Λίστα" mentions: "Επισημάνσεις" + direct: "Απευθείας σημειώματα" _webhookSettings: name: "Όνομα" _moderationLogTypes: diff --git a/locales/en-US.yml b/locales/en-US.yml index ce2b8ca8d8..f5c0f25ad0 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -81,7 +81,7 @@ import: "Import" export: "Export" files: "Files" download: "Download" -driveFileDeleteConfirm: "Do you want to remove the file \"{name}\"? Some content using this file will also be removed." +driveFileDeleteConfirm: "Are you sure you want to delete \"{name}\"? All notes with this file attached will also be deleted." unfollowConfirm: "Are you sure you want to unfollow {name}?" exportRequested: "You've requested an export. This may take a while. It will be added to your Drive once completed." importRequested: "You've requested an import. This may take a while." @@ -1370,6 +1370,10 @@ defaultImageCompressionLevel: "Default image compression level" defaultImageCompressionLevel_description: "Lower level preserves image quality but increases file size.
Higher level reduce file size, but reduce image quality." inMinutes: "Minute(s)" inDays: "Day(s)" +safeModeEnabled: "Safe mode is enabled" +pluginsAreDisabledBecauseSafeMode: "All plugins are disabled because safe mode is enabled." +customCssIsDisabledBecauseSafeMode: "Custom CSS is not applied because safe mode is enabled." +themeIsDefaultBecauseSafeMode: "While safe mode is active, the default theme is used. Disabling safe mode will revert these changes." _order: newest: "Newest First" oldest: "Oldest First" @@ -1402,7 +1406,7 @@ _chat: muteThisRoom: "Mute room" deleteRoom: "Delete room" chatNotAvailableForThisAccountOrServer: "Chat is not enabled on this server or for this account." - chatIsReadOnlyForThisAccountOrServer: "Chat is read-only on this instance or this account. You cannot write new messages or create/join chat rooms." + chatIsReadOnlyForThisAccountOrServer: "Chat is read-only on this server or this account. You cannot write new messages or create/join chat rooms." chatNotAvailableInOtherAccount: "The chat function is disabled for the other user." cannotChatWithTheUser: "Cannot start a chat with this user" cannotChatWithTheUser_description: "Chat is either unavailable or the other party has not enabled chat." @@ -1500,7 +1504,7 @@ _abuseUserReport: resolveTutorial: "If the report's content is legitimate, select \"Accept\" to mark it as resolved.\nIf the report's content is illegitimate, select \"Reject\" to ignore it." _delivery: status: "Delivery status" - stop: "Suspended" + stop: "Suspend" resume: "Delivery resume" _type: none: "Publishing" @@ -1634,6 +1638,10 @@ _serverSettings: fanoutTimelineDbFallback: "Fallback to database" fanoutTimelineDbFallbackDescription: "When enabled, the timeline will fall back to the database for additional queries if the timeline is not cached. Disabling it further reduces the server load by eliminating the fallback process, but limits the range of timelines that can be retrieved." reactionsBufferingDescription: "When enabled, performance during reaction creation will be greatly improved, reducing the load on the database. However, Redis memory usage will increase." + remoteNotesCleaning: "Automatic cleanup of remote notes" + remoteNotesCleaning_description: "When enabled, unused and outdated remote notes will be periodically cleaned up to prevent database bloat." + remoteNotesCleaningMaxProcessingDuration: "Maximum cleanup processing time" + remoteNotesCleaningExpiryDaysForEachNotes: "Minimum days to retain notes" inquiryUrl: "Inquiry URL" inquiryUrlDescription: "Specify a URL for the inquiry form to the server maintainer or a web page for the contact information." openRegistration: "Make the account creation open" @@ -1652,6 +1660,8 @@ _serverSettings: userGeneratedContentsVisibilityForVisitor: "Visibility of user-generated content to guests" userGeneratedContentsVisibilityForVisitor_description: "This is useful for preventing problems caused by inappropriate remote content that is not well moderated from being unintentionally published on the Internet via your own server." userGeneratedContentsVisibilityForVisitor_description2: "Unconditionally publishing all content on the server to the Internet, including remote content received by the server is risky. This is especially important for guests who are unaware of the distributed nature of the content, as they may mistakenly believe that even remote content is content created by users on the server." + restartServerSetupWizardConfirm_title: "Restart server setup wizard?" + restartServerSetupWizardConfirm_text: "Some current settings will be reset." _userGeneratedContentsVisibilityForVisitor: all: "Everything is public" localOnly: "Only local content is published, remote content is kept private" @@ -2332,7 +2342,7 @@ _permissions: "read:admin:index-stats": "View database index stats" "read:admin:table-stats": "View database table stats" "read:admin:user-ips": "View user IP addresses" - "read:admin:meta": "View instance metadata" + "read:admin:meta": "View server metadata" "write:admin:reset-password": "Reset user password" "write:admin:resolve-abuse-user-report": "Resolve user report" "write:admin:send-email": "Send email" @@ -2343,7 +2353,7 @@ _permissions: "write:admin:unset-user-avatar": "Remove user avatar" "write:admin:unset-user-banner": "Remove user banner" "write:admin:unsuspend-user": "Unsuspend user" - "write:admin:meta": "Manage instance metadata" + "write:admin:meta": "Manage server metadata" "write:admin:user-note": "Manage moderation note" "write:admin:roles": "Manage roles" "read:admin:roles": "View roles" @@ -2775,7 +2785,7 @@ _moderationLogTypes: resetPassword: "Password reset" suspendRemoteInstance: "Remote instance suspended" unsuspendRemoteInstance: "Remote instance unsuspended" - updateRemoteInstanceNote: "Moderation note updated for remote instance." + updateRemoteInstanceNote: "Updated moderation note for remote servers" markSensitiveDriveFile: "File marked as sensitive" unmarkSensitiveDriveFile: "File unmarked as sensitive" resolveAbuseReport: "Report resolved" @@ -3062,6 +3072,7 @@ _bootErrors: otherOption1: "Delete client settings and cache" otherOption2: "Start the simple client" otherOption3: "Launch the repair tool" + otherOption4: "Launch Misskey in safe mode" _search: searchScopeAll: "All" searchScopeLocal: "Local" @@ -3098,6 +3109,8 @@ _serverSetupWizard: doYouConnectToFediverse_description1: "When connected to a network of distributed servers (Fediverse) content can be exchanged with other servers." doYouConnectToFediverse_description2: "Connecting with the Fediverse is also called \"federation\"" youCanConfigureMoreFederationSettingsLater: "Advanced settings such as specifying federated servers can be configured later." + remoteContentsCleaning: "Automatic cleanup of received contents" + remoteContentsCleaning_description: "Federation may result in a continuous inflow of content. Enabling automatic cleanup will remove outdated and unreferenced content from the server to save storage." adminInfo: "Administrator information" adminInfo_description: "Sets the administrator information used to receive inquiries." adminInfo_mustBeFilled: "Must be entered if public server or federation is on." diff --git a/locales/es-ES.yml b/locales/es-ES.yml index 78b475daab..578c550296 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -1370,6 +1370,10 @@ defaultImageCompressionLevel: "Nivel de compresión de la imagen por defecto" defaultImageCompressionLevel_description: "Baja, conserva la calidad de la imagen pero la medida del archivo es más grande.
Alta, reduce la medida del archivo pero también la calidad de la imagen." inMinutes: "Minutos" inDays: "Días" +safeModeEnabled: "El modo seguro está activado" +pluginsAreDisabledBecauseSafeMode: "El modo seguro está activado, por lo que todos los plugins están desactivados." +customCssIsDisabledBecauseSafeMode: "El modo seguro está activado, por lo que no se aplica el CSS personalizado." +themeIsDefaultBecauseSafeMode: "Mientras el modo seguro esté activado, se utilizará el tema predeterminado. Cuando se desactive el modo seguro, se volverá al tema original." _order: newest: "Los más recientes primero" oldest: "Los más antiguos primero" @@ -1634,6 +1638,10 @@ _serverSettings: fanoutTimelineDbFallback: "Cargar desde la base de datos" fanoutTimelineDbFallbackDescription: "Cuando esta opción está habilitada, la carga de peticiones adicionales de la línea de tiempo se hará desde la base de datos cuando éstas no se encuentren en la caché. Al deshabilitar esta opción se reduce la carga del servidor, pero limita el número de líneas de tiempo que pueden obtenerse." reactionsBufferingDescription: "Cuando se activa, el rendimiento durante la creación de reacciones mejorará considerablemente, reduciendo la carga de la base de datos. Sin embargo, aumentará el uso de memoria de Redis." + remoteNotesCleaning: "Limpieza automática de notas (publicaciones) remotas" + remoteNotesCleaning_description: "Al habilitar esta opción, se limpiarán periódicamente las entradas remotas antiguas que no se consultan, lo que evitará que la base de datos se sature." + remoteNotesCleaningMaxProcessingDuration: "Tiempo máximo de funcionamiento continuo del proceso de limpieza" + remoteNotesCleaningExpiryDaysForEachNotes: "Días mínimos para conservar las notas" inquiryUrl: "URL de consulta " inquiryUrlDescription: "Especifica una URL para el formulario de consulta al responsable del servidor o una página web para la información de contacto." openRegistration: "Registros Abiertos" @@ -1652,6 +1660,8 @@ _serverSettings: userGeneratedContentsVisibilityForVisitor: "Visibilidad de contenido generado por un usuario a invitados" userGeneratedContentsVisibilityForVisitor_description: "Esto es útil para evitar problemas causados por contenidos remotos inapropiados que no estén bien moderados y que se publiquen involuntariamente en Internet a través de su propio servidor." userGeneratedContentsVisibilityForVisitor_description2: "Publicar incondicionalmente todo el contenido del servidor en Internet, incluido el contenido remoto recibido por el servidor, es arriesgado. Esto es especialmente importante para los invitados que desconocen la naturaleza distribuida del contenido, ya que pueden creer erróneamente que incluso el contenido remoto es contenido creado por usuarios en el servidor." + restartServerSetupWizardConfirm_title: "¿Reiniciar el asistente de configuración del servidor?" + restartServerSetupWizardConfirm_text: "Algunas configuraciones actuales se restablecerán" _userGeneratedContentsVisibilityForVisitor: all: "Todo es público." localOnly: "Sólo se publica el contenido local, el remoto se mantiene privado" @@ -3062,6 +3072,7 @@ _bootErrors: otherOption1: "Borra la configuración y la memoria caché del cliente" otherOption2: "Iniciar el cliente simple" otherOption3: "Iniciar la herramienta de reparación" + otherOption4: "Iniciar Misskey en modo seguro" _search: searchScopeAll: "Todo" searchScopeLocal: "Local" @@ -3098,6 +3109,8 @@ _serverSetupWizard: doYouConnectToFediverse_description1: "Cuando se conecta a una red de servidores distribuidos (Fediverso), el contenido puede intercambiarse con otros servidores." doYouConnectToFediverse_description2: "Conectarse con el Fediverso también se conoce como \"federación\"." youCanConfigureMoreFederationSettingsLater: "Los ajustes avanzados, como la especificación de servidores federados, pueden configurarse más adelante." + remoteContentsCleaning: "Limpieza automática de los contenidos recibidos" + remoteContentsCleaning_description: "La federación puede dar lugar a un flujo continuo de contenido. Al habilitar la limpieza automática, se eliminará del servidor el contenido obsoleto y sin referencias para ahorrar espacio de almacenamiento." adminInfo: "Información del administrador" adminInfo_description: "Establece la información del administrador para recibir consultas." adminInfo_mustBeFilled: "Esta información debe ser introducida en el caso de registros abiertos o la federación esté activada." diff --git a/locales/index.d.ts b/locales/index.d.ts index f77925b410..cafa9012b9 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5871,6 +5871,10 @@ export interface Locale extends ILocale { * 利用できるリアクションを先頭に表示 */ "showAvailableReactionsFirstInNote": string; + /** + * ページのタブバーを下部に表示 + */ + "showPageTabBarBottom": string; "_chat": { /** * 送信者の名前を表示 diff --git a/locales/index.js b/locales/index.js index 091d216dee..6d9cf4796b 100644 --- a/locales/index.js +++ b/locales/index.js @@ -36,6 +36,7 @@ const languages = [ 'ru-RU', 'sk-SK', 'th-TH', + 'tr-TR', 'ug-CN', 'uk-UA', 'vi-VN', diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 4d79b31b1b..4562cfe370 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1469,6 +1469,7 @@ _settings: contentsUpdateFrequency_description2: "リアルタイムモードがオンのときは、この設定に関わらずリアルタイムでコンテンツが更新されます。" showUrlPreview: "URLプレビューを表示する" showAvailableReactionsFirstInNote: "利用できるリアクションを先頭に表示" + showPageTabBarBottom: "ページのタブバーを下部に表示" _chat: showSenderName: "送信者の名前を表示" diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml index 0cffbaa694..235f11e197 100644 --- a/locales/ja-KS.yml +++ b/locales/ja-KS.yml @@ -1333,6 +1333,10 @@ hideAllTips: "「ヒントとコツ」は全部表示せんでええ" defaultImageCompressionLevel_description: "低くすると画質は保てるんやけど、ファイルサイズが増えるで。
高くするとファイルサイズは減らせるんやけど、画質が落ちるで。" inMinutes: "分" inDays: "日" +safeModeEnabled: "セーフモードがオンになってるで" +pluginsAreDisabledBecauseSafeMode: "セーフモードがオンやから、プラグインは全部無効化されてるで。" +customCssIsDisabledBecauseSafeMode: "セーフモードがオンやから、カスタムCSSは適用されてへんで。" +themeIsDefaultBecauseSafeMode: "セーフモードがオンの間はデフォルトのテーマを使うで。セーフモードをオフにれば元に戻るで。" _chat: noMessagesYet: "まだメッセージはあらへんで" individualChat_description: "特定のユーザーと一対一でチャットができるで。" @@ -1345,8 +1349,59 @@ _chat: members: "メンバーはん" home: "ホーム" send: "送信" + deleteRoom: "ルームをほかす" + chatNotAvailableForThisAccountOrServer: "このサーバー、もしくはこのアカウントでチャットが有効にされてへんで。" + chatIsReadOnlyForThisAccountOrServer: "このサーバー、もしくはこのアカウントでチャットが読み取り専用になっとるわ。新しく書き込んだり、チャットルームを作ったり参加したりはできへんで。" + chatNotAvailableInOtherAccount: "相手のアカウントでチャット機能が使えんくなっとるみたいやわ。" + cannotChatWithTheUser: "このユーザーとのチャットを開始できへんみたいやわ" + cannotChatWithTheUser_description: "チャットが使えん状態になっとるか、相手がチャットを開放してへんみたいやわ。" + youAreNotAMemberOfThisRoomButInvited: "あんたはこのルームの参加者ちゃうけど、招待が届いとるで。参加するんやったら、招待を承認してな。" + doYouAcceptInvitation: "招待を承認してもええんか?" + chatWithThisUser: "チャットしよか" + thisUserAllowsChatOnlyFromFollowers: "このユーザーはフォロワーからのチャットしか受け付けとらんみたいやわ。" + thisUserAllowsChatOnlyFromFollowing: "このユーザーは、このユーザーがフォローしとるユーザーからのチャットしか受け付けとらんみたいやわ。" + thisUserAllowsChatOnlyFromMutualFollowing: "このユーザーは相互フォローのユーザーからのチャットしか受け付けとらんみたいやわ。" + thisUserNotAllowedChatAnyone: "このユーザーは誰からのチャットも受け付けとらんみたいやわ。" + chatAllowedUsers: "チャットしてもええ相手" + chatAllowedUsers_note: "自分からチャットメッセージを送った相手やったらこの設定に関わらずチャットできるで。" + _chatAllowedUsers: + followers: "自分のフォロワーだけ" + following: "自分がフォローしとるユーザーだけ" + mutual: "相互フォローのユーザーだけ" + none: "誰もかもあかん" +_emojiPalette: + enableSyncBetweenDevicesForPalettes: "パレットのデバイス間同期をつけとく" + paletteForMain: "メインで使うパレット" + paletteForReaction: "リアクションで使うパレット" _settings: + driveBanner: "ドライブの管理と設定、使用量の確認、ファイルをアップロードするときの設定ができるで。" + pluginBanner: "プラグインを使うとクライアントの機能を拡張できるねん。プラグインのインストール、個別の設定と管理ができるで。" + notificationsBanner: "サーバーから受け取る通知の種類とか範囲、プッシュ通知の設定ができるで。" webhook: "Webhook" + serviceConnectionBanner: "外部のアプリ・サービスと連携するのに使うとるアクセストークンとかWebhookの管理と設定ができるで。" + accountDataBanner: "アカウントデータのアーカイブをエクスポート/インポートして管理できるで。" + muteAndBlockBanner: "見せんでええコンテンツの設定とか、特定のユーザーからのアクションを制限する設定と管理ができるで。" + accessibilityBanner: "クライアントの視覚や動作に関わるパーソナライズをして、よりええ感じに使えるように設定できるで。" + privacyBanner: "コンテンツの公開範囲、見つけやすさ、フォローの承認制とかアカウントのプライバシーに関わる設定ができるで。" + securityBanner: "パスワード、ログイン方法、認証アプリ、パスキーとかアカウントのセキュリティに関わる設定ができるで。" + preferencesBanner: "好みに応じた、クライアントの全体的な動作の設定ができるで。" + appearanceBanner: "好みに応じた、クライアントの見た目・表示方法に関わる設定ができるで。" + soundsBanner: "クライアントで流すサウンドの設定ができるで。" + makeEveryTextElementsSelectable: "全部のテキスト要素を選択できるようにする" + makeEveryTextElementsSelectable_description: "これをつけると、一部のシチュエーションでユーザビリティが低下するかもしれん。" + enablePullToRefresh_description: "マウスやったら、ホイールを押し込みながらドラッグしてな。" + realtimeMode_description: "サーバーと接続を確立して、リアルタイムでコンテンツを更新するで。通信量とバッテリーの消費が多くなるかもしれへん。" + contentsUpdateFrequency_description: "高いほどリアルタイムにコンテンツが更新されるんやけど、そのぶんパフォーマンスが低くなるし、通信量とバッテリーの消費も増えるねん。" + contentsUpdateFrequency_description2: "リアルタイムモードをつけてるんやったら、この設定がどうであれリアルタイムでコンテンツが更新されるで。" +_preferencesProfile: + profileNameDescription: "このデバイスはなんて呼んだらええんや?" +_preferencesBackup: + noBackupsFoundTitle: "バックアップが見つからへんね" + noBackupsFoundDescription: "自動で作られたバックアップは見つからんかったけど、バックアップファイルを手動で保存してるんやったら、それをインポートして復元できるで。" + selectBackupToRestore: "復元するバックアップを選んでや" + youNeedToNameYourProfileToEnableAutoBackup: "自動バックアップを有効するんやったらプロファイル名の設定が必要やな。" + autoPreferencesBackupIsNotEnabledForThisDevice: "このデバイスで設定の自動バックアップは有効になってへんで。" + backupFound: "設定のバックアップがあるみたいやわ" _accountSettings: requireSigninToViewContents: "ログインしてもらってからコンテンツ見てもらう" requireSigninToViewContentsDescription1: "あなたが作成した全部のノートとかのコンテンツを見れるようにするのにログインがいるようにするで。クローラーにいろいろ収集されるんを防げるかもしれん。" @@ -1357,6 +1412,7 @@ _accountSettings: makeNotesHiddenBefore: "昔のノートを見れんようにする" makeNotesHiddenBeforeDescription: "この機能が有効になってる間は、設定された日時より前、それか設定された時間が経ったノートがフォロワーのみ見れるようになるで。無効に戻すと、ノートの公開状態も戻るで。" mayNotEffectForFederatedNotes: "リモートサーバーに連合されたノートには効果が及ばんかもしれん。" + mayNotEffectSomeSituations: "これらの制限は簡易的なものやで。リモートサーバーでの閲覧とかモデレーション時とか、一部のシチュエーションでは適用されへんかもしれん。" notesHavePassedSpecifiedPeriod: "決めた時間が経ったノート" notesOlderThanSpecifiedDateAndTime: "決めた日時より前のノート" _abuseUserReport: @@ -1375,6 +1431,7 @@ _delivery: manuallySuspended: "手動停止中" goneSuspended: "サーバー削除のため停止中" autoSuspendedForNotResponding: "サーバー応答せえへんから停止中" + softwareSuspended: "配信停止中のソフトウェアやから停止中" _bubbleGame: howToPlay: "遊び方" hold: "ホールド" @@ -1501,11 +1558,21 @@ _serverSettings: fanoutTimelineDbFallback: "データベースにフォールバックする" fanoutTimelineDbFallbackDescription: "有効にしたら、タイムラインがキャッシュん中に入ってないときにDBにもっかい問い合わせるフォールバック処理ってのをやっとくで。切ったらフォールバック処理をやらんからサーバーはもっと軽くなんねんけど、タイムラインの取得範囲がちょっと減るで。" reactionsBufferingDescription: "有効にしたら、リアクション作るときのパフォーマンスがすっごい上がって、データベースへの負荷が減るで。代わりに、Redisのメモリ使用は増えるで。" + remoteNotesCleaning_description: "つけると、参照されてへん古いリモートの投稿を定期的にクリーンアップしてデータベースの肥大化を抑えてくれるで。" inquiryUrl: "問い合わせ先URL" inquiryUrlDescription: "サーバー運営者へのお問い合わせフォームのURLや、運営者の連絡先等が記載されたWebページのURLを指定するで。" openRegistration: "アカウントの作成をオープンにする" openRegistrationWarning: "登録を解放するのはリスクが伴うで。サーバーをいっつも監視して、なんか起きたらすぐに対応できるんやったら、オンにしてもええと思う。" thisSettingWillAutomaticallyOffWhenModeratorsInactive: "一定期間モデレーターがおらんかったら、スパムを防ぐためにこの設定は勝手に切られるで。" + deliverSuspendedSoftwareDescription: "脆弱性とかの理由で、サーバーのソフトウェアの名前とバージョンの範囲を決めて配信を止められるで。このバージョン情報はサーバーが提供したものやから、信頼性は保証されへん。バージョン指定には semver の範囲指定が使えるねんけど、>= 2024.3.1と指定すると 2024.3.1-custom.0 みたいなカスタムバージョンが含まれへんから、>= 2024.3.1-0 みたいに prerelease を指定するとええかもしれへんな。" + singleUserMode_description: "このサーバーを使うとるんが自分だけなんやったら、このモードを有効にすると動作がええ感じになるで。" + signToActivityPubGet_description: "通常はつけといてな。連合の通信に関わる問題があるんやったら、無効にすると改善するかもしれへんけど、逆にサーバーによっては通信ができんくなることがあるで。" + proxyRemoteFiles_description: "つけると、リモートのファイルをプロキシして提供するで。画像のサムネイル生成とかユーザーのプライバシー保護にええな。" + allowExternalApRedirect_description: "つけると、他のサーバーがうちのサーバーを通して第三者のコンテンツを照会できるようになるんやけど、コンテンツのなりすましが発生するかもしれへん。" + userGeneratedContentsVisibilityForVisitor_description: "モデレーションが行き届きにくい不適切なリモートコンテンツとかが、うちのサーバー経由で図らずもインターネットに公開されてまうことによるトラブルを防止できたりするで。" + userGeneratedContentsVisibilityForVisitor_description2: "サーバーで受け取ったリモートのコンテンツを含め、サーバー内の全部のコンテンツを何でもかんでもインターネットに公開するのはリスクを伴うねん。特に、分散型の特性を知らん閲覧者にとっては、リモートのコンテンツやったとしてもサーバー内で作られたコンテンツやと誤認してまうかもしれへんから、注意が必要やな。" + restartServerSetupWizardConfirm_title: "サーバーの初期設定ウィザードをやり直すん?" + restartServerSetupWizardConfirm_text: "現在の一部の設定はリセットされるで。" _accountMigration: moveFrom: "別のアカウントからこのアカウントに引っ越す" moveFromSub: "別のアカウントへエイリアスを作る" @@ -1802,6 +1869,7 @@ _role: descriptionOfIsExplorable: "オンにしたらロールの面子一覧が「みつける」で公開されるし、ロールのタイムラインが使えるようになるで。" displayOrder: "表示順" descriptionOfDisplayOrder: "数がでかいほど、UI上で先に表示されるで。" + preserveAssignmentOnMoveAccount_description: "つけると、このロールがのっかったアカウントが引っ越したときに、引っ越し先アカウントにもこのロールがのっかるようになるで。" canEditMembersByModerator: "モデレーターがメンバーいじるのを許す" descriptionOfCanEditMembersByModerator: "オンにすると、管理者だけやなくてモデレーターもこのロールにユーザーを入れたり抜いたりできるで。オフにすると管理者だけしかやれへんくなるで。" priority: "優先度" @@ -1842,6 +1910,8 @@ _role: canImportFollowing: "フォローのインポートを許す" canImportMuting: "ミュートのインポートを許す" canImportUserLists: "リストのインポートを許す" + uploadableFileTypes_caption: "MIMEタイプを指定してや。改行で区切って複数指定もできるし、アスタリスク(*)でワイルドカード指定もできるで。(例: image/*)" + uploadableFileTypes_caption2: "ファイルによっては種別がわからんこともあるで。そないなファイルを許可するんやったら {x} を指定に追加してな。" _condition: roleAssignedTo: "マニュアルロールにアサイン済み" isLocal: "ローカルユーザー" @@ -2041,7 +2111,7 @@ _theme: navIndicator: "サイドバーのインジケーター" link: "リンク" hashtag: "ハッシュタグ" - mention: "メンション" + mention: "あんた宛て" mentionMe: "うち宛てのメンション" renote: "Renote" modalBg: "モーダルの背景" @@ -2310,6 +2380,8 @@ _visibility: disableFederation: "連合なし" disableFederationDescription: "他サーバーへは送らんとくわ" _postForm: + quitInspiteOfThereAreUnuploadedFilesConfirm: "アップロードされてへんファイルがあるんやけど、ほかしてフォームを閉じてもええんか?" + uploaderTip: "ファイルはまだアップロードされてへんで。ファイルのメニューから、リネームとか画像のクロップ、ウォーターマークをのっける、圧縮するかどうかなんかを設定できるで。ファイルはノートを投稿するときに自動でアップロードされるで。" replyPlaceholder: "このノートに返信..." quotePlaceholder: "このノートを引用..." channelPlaceholder: "チャンネルに投稿..." @@ -2461,6 +2533,7 @@ _notification: newNote: "さらの投稿" unreadAntennaNote: "アンテナ {name}" roleAssigned: "ロールが付与されたで" + chatRoomInvitationReceived: "チャットルームへ招待されたで" emptyPushNotificationMessage: "プッシュ通知の更新をしといたで" achievementEarned: "実績を獲得しとるで" testNotification: "通知テスト" @@ -2480,7 +2553,7 @@ _notification: all: "すべて" note: "あんたらの新規投稿" follow: "フォロー" - mention: "メンション" + mention: "あんた宛て" reply: "リプライ" renote: "リノート" quote: "引用" @@ -2680,6 +2753,10 @@ _dataSaver: _avatar: title: "アイコンの絵" description: "アイコン画像のアニメが止まるで。普通の画像よりもデータ量がでかいから、もっと通信量を節約できるねん。" + _urlPreviewThumbnail: + description: "URLプレビューのサムネイル画像が読み込まれへんくなるで。" + _disableUrlPreview: + description: "URLプレビュー機能を切るで。サムネイル画像だけと違って、リンク先の情報の読み込み自体を削減できるで。" _code: title: "コードハイライトは表示せんでええ" description: "MFMとかでコードハイライト記法が使われてるとき、タップするまで読み込まれへんくなるで。コードハイライトではハイライトする言語ごとにその決めてるファイルを読む必要はあんねんな。けどな、それは自動で読み込まれなくなるから、通信量を少なくできることができるねん。" @@ -2737,6 +2814,7 @@ _offlineScreen: _urlPreviewSetting: title: "URLプレビューの設定" enable: "URLプレビューを有効にする" + allowRedirectDescription: "入力されたURLがリダイレクトされるとき、そのリダイレクト先をたどってプレビューを表示するかどうかを設定できるで。無効にするとサーバーリソースを節約できるんやけど、リダイレクト先の内容は表示されへんくなるで。" timeout: "プレビュー取得時のタイムアウト(ms)" timeoutDescription: "プレビュー取得の所要時間がこの値を超えた場合、プレビューは生成されへんで。" maximumContentLength: "Content-Lengthの最大値(byte)" @@ -2881,8 +2959,57 @@ _search: searchScopeAll: "みんな" searchScopeLocal: "ローカル" searchScopeUser: "ユーザー指定" + pleaseEnterServerHost: "サーバーのホストはどないするん?" + pleaseSelectUser: "ユーザーを選んでや" +_serverSetupWizard: + installCompleted: "Misskeyのインストールが終わったで!" + firstCreateAccount: "最初は、管理者アカウントを作成しよか。" + accountCreated: "管理者アカウントができたで!" + youCanEasilyConfigureOptimalServerSettingsWithThisWizard: "このウィザードで簡単にええ感じのサーバーの設定ができるで。" + settingsYouMakeHereCanBeChangedLater: "ここでの設定は、あとからでも変えられるで。" + howWillYouUseMisskey: "Misskeyをどんな感じに使うん?" + _use: + single_youCanCreateMultipleAccounts: "お一人様サーバーとして運用するとしても、アカウントは必要に応じて複数作れるで。" + openServerAdvice: "不特定多数の利用者を受け入れるには相応のリスクがあるで。トラブルに対処できるよう、ちゃんとしたモデレーション体制で運営しいや。" + openServerAntiSpamAdvice: "うちのサーバーがスパムの踏み台にならへんように、reCAPTCHAとかのアンチボット機能を使う、みたいなセキュリティ対策もしっかり考えてな。" + howManyUsersDoYouExpect: "どれくらいの人数を考えとるん?" + largeScaleServerAdvice: "大規模なサーバーやったら、ロードバランシングとかデータベースのレプリケーションみたいな、高度なインフラストラクチャーの知識が必要になるかもしれへんわ。" + doYouConnectToFediverse: "Fediverseと接続するんやっけ?" + doYouConnectToFediverse_description1: "分散型サーバーでできたネットワーク(Fediverse)に繋げると、他のサーバーと相互にコンテンツのやり取りができるようになるで。" + doYouConnectToFediverse_description2: "Fediverseと接続することは「連合」とも呼ばれるな。" + youCanConfigureMoreFederationSettingsLater: "連合してもええサーバーの指定とか、高度な設定も後でできるで。" + remoteContentsCleaning_description: "連合すると、ぎょうさんコンテンツを受け取り続けることになるねん。自動クリーニングをつけると、参照されてない古いコンテンツを自動でサーバーからほかして、ストレージを節約できるで。" + adminInfo_description: "問い合わせを受け付けるのに使う管理者情報を設定しよか。" + adminInfo_mustBeFilled: "オープンサーバー、もしくは連合を入れとるんやったら必ず入力せなあかんで。" + followingSettingsAreRecommended: "こういう設定がええかもな" + settingsCompleted: "設定が終わったで!" + settingsCompleted_description: "お疲れさん。準備ができたから、さっそくサーバーを使い始められるで。" + settingsCompleted_description2: "細かいサーバー設定は、「コントロールパネル」を見てみてな。" + _donationRequest: + text1: "Misskeyは有志で開発されとる無料のソフトウェアやで。" + text2: "今後も開発を続けられるように、よかったらぜひカンパをお願いするわ。" + text3: "支援者向け特典もあるで!" +_uploader: + abortConfirm: "アップロードされてへんファイルがあるんやけど、やめてもええんか?" + doneConfirm: "アップロードされてへんファイルがあるんやけど、完了してもええんか?" + maxFileSizeIsX: "アップロードできるファイルサイズは{x}までやで。" + tip: "ファイルはまだアップロードされてへんで。このダイアログで、アップロードする前に確認・リネーム・圧縮・クロッピングとかをできるで。準備が出来たら、「アップロード」ボタンを押してアップロードしてな。" +_clientPerformanceIssueTip: + makeSureDisabledAdBlocker: "アドブロッカーを切ってみてや" + makeSureDisabledAdBlocker_description: "アドブロッカーはパフォーマンスに影響があるかもしれへん。OSの機能とかブラウザの機能・アドオンとかでアドブロッカーが有効になってないか確認してや。" + makeSureDisabledCustomCss: "カスタムCSSを無効にしてみてや" + makeSureDisabledCustomCss_description: "スタイルを上書きするとパフォーマンスに影響があるかもしれへん。カスタムCSSとか、スタイルを上書きする拡張機能が有効になってないか確認してや。" + makeSureDisabledAddons: "拡張機能を無効にしてみてや" + makeSureDisabledAddons_description: "なんかの拡張機能がクライアントの動作にちょっかいをかけてパフォーマンスに影響を与えてるかもしれへん。ブラウザの拡張機能を無効にして良くなるか確認してや。" +_clip: + tip: "クリップは、ノートをまとめられる機能やで。" +_userLists: + tip: "好きなユーザーを含むリストを作れるねん。作ったリストはタイムラインとして表示できるで。" _watermarkEditor: + tip: "画像にクレジット情報とかのウォーターマークをのっけられるで。" + quitWithoutSaveConfirm: "保存せずに終わってもええんか?" driveFileTypeWarn: "このファイルは対応しとらへん" + driveFileTypeWarnDescription: "画像ファイルを選んでや" opacity: "不透明度" scale: "大きさ" text: "テキスト" @@ -2894,5 +3021,8 @@ _watermarkEditor: _imageEffector: discardChangesConfirm: "変更をせんで終わるか?" _drafts: + cannotCreateDraftAnymore: "下書きはこれ以上は作れへんな。" + cannotCreateDraft: "この内容で下書きは作れへんな。" + delete: "下書きをほかす" deleteAreYouSure: "下書きをほかしてもええか?" noDrafts: "下書きはあらへん" diff --git a/locales/kn-IN.yml b/locales/kn-IN.yml index 222599572a..cdd9a5b2ae 100644 --- a/locales/kn-IN.yml +++ b/locales/kn-IN.yml @@ -44,6 +44,7 @@ showMore: "ಇನ್ನಷ್ಟು ನೋಡು" youGotNewFollower: "ಹಿಂಬಾಲಿಸಿದರು" receiveFollowRequest: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಬಂದಿದೆ" followRequestAccepted: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಸ್ವೀಕರಿಸಲಾಯಿತು" +mention: "ಹೆಸರಿಸಿದ" mentions: "ಹೆಸರಿಸಿದ" directNotes: "ನೇರ ಟಿಪ್ಪಣಿಗಳು" importAndExport: "ಆಮದು/ರಫ್ತು" @@ -65,6 +66,9 @@ replies: "ಉತ್ತರಿಸು" _email: _follow: title: "ಹಿಂಬಾಲಿಸಿದರು" +_theme: + keys: + mention: "ಹೆಸರಿಸಿದ" _sfx: notification: "ಅಧಿಸೂಚನೆಗಳು" _widgets: @@ -73,11 +77,14 @@ _widgets: timeline: "ಸಮಯಸಾಲು" _cw: show: "ಇನ್ನಷ್ಟು ನೋಡು" +_visibility: + specified: "ನೇರ ಟಿಪ್ಪಣಿಗಳು" _profile: username: "ಬಳಕೆಹೆಸರು" _notification: youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು" _types: + mention: "ಹೆಸರಿಸಿದ" login: "ಪ್ರವೇಶ" _actions: reply: "ಉತ್ತರಿಸು" @@ -86,3 +93,4 @@ _deck: notifications: "ಅಧಿಸೂಚನೆಗಳು" tl: "ಸಮಯಸಾಲು" mentions: "ಹೆಸರಿಸಿದ" + direct: "ನೇರ ಟಿಪ್ಪಣಿಗಳು" diff --git a/locales/ko-GS.yml b/locales/ko-GS.yml index 554eb42694..59fe63be6c 100644 --- a/locales/ko-GS.yml +++ b/locales/ko-GS.yml @@ -745,7 +745,7 @@ _menuDisplay: _theme: description: "설멩" keys: - mention: "멘션" + mention: "받언 멘션" renote: "리노트" _sfx: note: "새 노트" @@ -775,6 +775,7 @@ _cw: _visibility: home: "덜머리" followers: "팔로워" + specified: "쪽지 서기" _postForm: _placeholders: e: "옇다 서 주이소" @@ -809,7 +810,7 @@ _notification: newNote: "새 걸" _types: follow: "팔로잉" - mention: "멘션" + mention: "받언 멘션" renote: "리노트" quote: "따오기" reaction: "반엉" @@ -824,6 +825,7 @@ _deck: antenna: "안테나" list: "리스트" mentions: "받언 멘션" + direct: "쪽지 서기" _webhookSettings: name: "이럼" _abuseReport: diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 8dc227e553..a06e1231b5 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -1370,6 +1370,10 @@ defaultImageCompressionLevel: "기본 이미지 압축 정도" defaultImageCompressionLevel_description: "낮추면 화질을 유지합니다만 파일 크기는 증가합니다.
높이면 파일 크기를 줄일 수 있습니다만 화질은 저하됩니다." inMinutes: "분" inDays: "일" +safeModeEnabled: "세이프 모드가 활성화돼있습니다" +pluginsAreDisabledBecauseSafeMode: "세이프 모드가 활성화돼있기에 플러그인은 전부 비활성화됩니다." +customCssIsDisabledBecauseSafeMode: "세이프 모드가 활성화돼있기에 커스텀 CSS는 적용되지 않습니다." +themeIsDefaultBecauseSafeMode: "세이프 모드가 활성화돼있는 동안에는 기본 테마가 사용됩니다. 세이프 모드를 끄면 원래대로 돌아옵니다." _order: newest: "최신 순" oldest: "오래된 순" @@ -1634,6 +1638,10 @@ _serverSettings: fanoutTimelineDbFallback: "데이터베이스를 예비로 사용하기" fanoutTimelineDbFallbackDescription: "활성화하면 타임라인의 캐시되어 있지 않은 부분에 대해 DB에 질의하여 정보를 가져옵니다. 비활성화하면 이를 실행하지 않음으로써 서버의 부하를 줄일 수 있지만, 타임라인에서 가져올 수 있는 게시물 범위가 한정됩니다." reactionsBufferingDescription: "활성화 한 경우, 리액션 작성 퍼포먼스가 대폭 향상되어 DB의 부하를 줄일 수 있으나, Redis의 메모리 사용량이 많아집니다." + remoteNotesCleaning: "리모트 서버 노트 자동 정리 " + remoteNotesCleaning_description: "더 이상 사용되지 않는 오래된 리모트 노트를 정기적으로 정리하여, 데이터 베이스의 사용량을 절약할 수 있습니다." + remoteNotesCleaningMaxProcessingDuration: "리모트 노트 자동 정리 최대 실행 시간" + remoteNotesCleaningExpiryDaysForEachNotes: "리모트 노트 저장 최소 일수" inquiryUrl: "문의처 URL" inquiryUrlDescription: "서버 운영자에게 보내는 문의 양식의 URL이나 운영자의 연락처 등이 적힌 웹 페이지의 URL을 설정합니다." openRegistration: "회원 가입을 활성화 하기" @@ -1652,6 +1660,8 @@ _serverSettings: userGeneratedContentsVisibilityForVisitor: "비이용자에 대한 유저 작성 콘텐츠의 공개 범위" userGeneratedContentsVisibilityForVisitor_description: "조정을 하기 힘든 부적절한 리모트 콘텐츠 등이 자신의 서버 경유로 의도치 않게 인터넷에 공개되는 문제의 방지 등에 도움을 줍니다." userGeneratedContentsVisibilityForVisitor_description2: "서버에서 받은 리모트 콘텐츠를 포함해 서버 내의 모든 콘텐츠를 무조건 인터넷에 공개하는 것에는 위험이 따릅니다. 특히, 분산형 특성에 대해 모르는 열람자에게는 리모트 콘텐츠여도 서버 내에서 작성된 콘텐츠라고 잘못 인식할 수 있기에 주의가 필요합니다." + restartServerSetupWizardConfirm_title: "서버의 초기 설정 위자드를 재시도하시겠습니까?" + restartServerSetupWizardConfirm_text: "현재 일부 설정은 리셋됩니다." _userGeneratedContentsVisibilityForVisitor: all: "모두 공개" localOnly: "로컬 콘텐츠만 공개하고 리모트 콘텐츠는 비공개" @@ -3062,6 +3072,7 @@ _bootErrors: otherOption1: "클라이언트 설정 및 캐시 삭제" otherOption2: "간편 클라이언트 실행" otherOption3: "복구 툴 실행" + otherOption4: "Misskey를 세이프 모드로 열기" _search: searchScopeAll: "전체" searchScopeLocal: "로컬" @@ -3098,6 +3109,8 @@ _serverSetupWizard: doYouConnectToFediverse_description1: "분산형 서버로 구성된 네트워크(Fediverse)에 접속하면 다른 서버와 서로 콘텐츠의 주고받기를 할 수 있습니다." doYouConnectToFediverse_description2: "Fediverse에 접속하는 것을 '연합'이라고도 부릅니다." youCanConfigureMoreFederationSettingsLater: "나중에 연합 가능한 서버의 지정 등 고급 설정을 할 수 있습니다." + remoteContentsCleaning: "리모트 콘텐츠 자동 정리" + remoteContentsCleaning_description: "연합 중인 서버가 있는 경우, 리모트 서버에서 대단히 많은 콘텐츠를 받아오게 됩니다. 자동 정리 기능을 활성화하면, 오래되고 서버에서 더 이상 조회되지 않는 콘텐츠를 자동으로 서버에서 삭제하여, 스토리지를 절약할 수 있습니다." adminInfo: "관리자 정보" adminInfo_description: "문의 접수를 위해 사용되는 관리자 정보를 설정합니다." adminInfo_mustBeFilled: "오픈 서버 혹은 연합이 켜져 있는 경우 반드시 입력해야 합니다." diff --git a/locales/lo-LA.yml b/locales/lo-LA.yml index 49270119b3..aec49a2965 100644 --- a/locales/lo-LA.yml +++ b/locales/lo-LA.yml @@ -433,6 +433,7 @@ _cw: _visibility: home: "ໜ້າຫຼັກ" followers: "ຜູ້ຕິດຕາມ" + specified: "ໂພສ Direct note" _profile: name: "ຊື່" username: "ຊື່ຜູ້ໃຊ້" @@ -470,6 +471,7 @@ _deck: list: "ລາຍການ" channel: "ຊ່ອງ" mentions: "ກ່າວເຖິງເຈົ້າ" + direct: "ໂພສ Direct note" _webhookSettings: name: "ຊື່" _abuseReport: diff --git a/locales/nl-NL.yml b/locales/nl-NL.yml index 62f31dcced..e4efbc7e39 100644 --- a/locales/nl-NL.yml +++ b/locales/nl-NL.yml @@ -1019,6 +1019,7 @@ _cw: _visibility: home: "Startpagina" followers: "Volgers" + specified: "Directe notities" _profile: name: "Naam" username: "Gebruikersnaam" @@ -1061,6 +1062,7 @@ _deck: list: "Lijsten" channel: "Kanalen" mentions: "Vermeldingen" + direct: "Directe notities" _webhookSettings: name: "Naam" active: "Ingeschakeld" diff --git a/locales/ro-RO.yml b/locales/ro-RO.yml index de3e17fce3..f07e4d8d2f 100644 --- a/locales/ro-RO.yml +++ b/locales/ro-RO.yml @@ -1302,6 +1302,7 @@ _cw: _visibility: home: "Acasă" followers: "Urmăritori" + specified: "Note directe" _postForm: replyPlaceholder: "Răspunde la această notă..." quotePlaceholder: "Citează aceasta nota..." @@ -1356,6 +1357,7 @@ _deck: list: "Liste" channel: "Canale" mentions: "Mențiuni" + direct: "Note directe" roleTimeline: "Cronologia rolului" _webhookSettings: name: "Nume" diff --git a/locales/sv-SE.yml b/locales/sv-SE.yml index 4d1708c7d1..95947607cb 100644 --- a/locales/sv-SE.yml +++ b/locales/sv-SE.yml @@ -646,6 +646,7 @@ _poll: _visibility: home: "Hem" followers: "Följare" + specified: "Direktnoter" _profile: name: "Namn" username: "Användarnamn" @@ -692,6 +693,7 @@ _deck: list: "Listor" channel: "kanal" mentions: "Omnämningar" + direct: "Direktnoter" _webhookSettings: name: "Namn" active: "Aktiverad" diff --git a/locales/th-TH.yml b/locales/th-TH.yml index 86b24ddc37..110c089b39 100644 --- a/locales/th-TH.yml +++ b/locales/th-TH.yml @@ -776,7 +776,7 @@ highlightSensitiveMedia: "ไฮไลท์สื่อที่มีเนื verificationEmailSent: "ได้ส่งอีเมลยืนยันแล้ว กรุณาเข้าลิงก์ที่ระบุในอีเมลเพื่อทำการตั้งค่าให้เสร็จสิ้น" notSet: "ไม่ได้ตั้งค่า" emailVerified: "อีเมลได้รับการยืนยันแล้ว" -noteFavoritesCount: "จำนวนโน้ตที่ชื่นชอบ" +noteFavoritesCount: "จำนวนโน้ตโปรด" pageLikesCount: "จำนวนเพจที่ถูกใจ" pageLikedCount: "จำนวนการกดถูกใจเพจที่ได้รับแล้ว" contact: "ติดต่อ" @@ -1433,7 +1433,7 @@ _settings: api: "API" webhook: "Webhook" serviceConnection: "การเชื่อมต่อกับบริการ" - serviceConnectionBanner: "สามารถจัดการและตั้งค่า Access Token และ Webhook เพื่อเชื่อมต่อกับแอปหรือบริการภายนอกได้" + serviceConnectionBanner: "สามารถจัดการและตั้งค่าโทเค็นการเข้าถึงและ Webhook เพื่อเชื่อมต่อกับแอปหรือบริการภายนอกได้" accountData: "ข้อมูลบัญชี" accountDataBanner: "สามารถจัดการข้อมูลบัญชีได้โดยส่งออกหรือนำเข้าไฟล์เก็บถาวร" muteAndBlockBanner: "สามารถตั้งค่าการซ่อนเนื้อหา และจำกัดการกระทำจากผู้ใช้เฉพาะรายได้" @@ -1634,6 +1634,10 @@ _serverSettings: fanoutTimelineDbFallback: "ฟอลแบ๊กกลับฐานข้อมูล" fanoutTimelineDbFallbackDescription: "เมื่อเปิดใช้งาน หากไม่ได้แคชไทม์ไลน์ ไทม์ไลน์จะฟอลแบ๊กไปยังฐานข้อมูลสำหรับการ query เพิ่มเติม การปิดใช้งานจะช่วยลดภาระของเซิร์ฟเวอร์ด้วยการกำจัดกระบวนฟอลแบ๊ก แต่มันก็จะจำกัดช่วงเวลาไทม์ไลน์ที่สามารถดึงข้อมูลได้" reactionsBufferingDescription: "เมื่อเปิดใช้งานฟังก์ชันนี้ก็จะช่วยลด latency ในการสร้างปฏิกิริยา แต่อาจจะส่งผลให้ memory footprint ของ Redis เพิ่มขึ้นนะ" + remoteNotesCleaning: "การล้างข้อมูลโพสต์จากระยะไกลโดยอัตโนมัติ" + remoteNotesCleaning_description: "เมื่อเปิดใช้งาน จะทำการล้างโพสต์จากระยะไกลเก่าที่ไม่ถูกอ้างอิง เป็นระยะ เพื่อลดการขยายตัวของฐานข้อมูล" + remoteNotesCleaningMaxProcessingDuration: "ระยะเวลาสูงสุดของการประมวลผลการล้างข้อมูล" + remoteNotesCleaningExpiryDaysForEachNotes: "จำนวนวันที่ต้องเก็บโน้ตไว้อย่างน้อย" inquiryUrl: "URL สำหรับการติดต่อสอบถาม" inquiryUrlDescription: "ระบุ URL ของหน้าเว็บที่มีแบบฟอร์มสำหรับติดต่อผู้ดูแลเซิร์ฟเวอร์ หรือข้อมูลการติดต่อของผู้ดูแลเซิร์ฟเวอร์" openRegistration: "เปิดให้สร้างบัญชีได้" @@ -1652,6 +1656,8 @@ _serverSettings: userGeneratedContentsVisibilityForVisitor: "ขอบเขตการเปิดเผยเนื้อหาที่ผู้ใช้สร้างต่อบุคคลที่ไม่ได้เข้าร่วม (แขก)" userGeneratedContentsVisibilityForVisitor_description: "ช่วยป้องกันปัญหาที่อาจเกิดขึ้นจากเนื้อหาระยะไกลที่ไม่เหมาะสม ซึ่งอาจถูกเผยแพร่ออกสู่อินเทอร์เน็ตโดยไม่ตั้งใจผ่านเซิร์ฟเวอร์ของตนเอง โดยเฉพาะในกรณีที่การดูแลควบคุมไม่ทั่วถึง" userGeneratedContentsVisibilityForVisitor_description2: "การเปิดเผยเนื้อหาทั้งหมดในเซิร์ฟเวอร์รวมทั้งเนื้อหาที่รับมาจากระยะไกลสู่สาธารณะบนอินเทอร์เน็ตโดยไม่มีข้อจำกัดใดๆ มีความเสี่ยงโดยเฉพาะอย่างยิ่งสำหรับผู้ชมที่ไม่เข้าใจลักษณะของระบบแบบกระจาย อาจทำให้เกิดความเข้าใจผิดคิดว่าเนื้อหาที่มาจากระยะไกลนั้นเป็นเนื้อหาที่สร้างขึ้นภายในเซิร์ฟเวอร์นี้ จึงควรใช้ความระมัดระวังอย่างมาก" + restartServerSetupWizardConfirm_title: "ต้องการเริ่มวิซาร์ดการตั้งค่าเซิร์ฟเวอร์ใหม่หรือไม่?" + restartServerSetupWizardConfirm_text: "การตั้งค่าบางส่วนในปัจจุบันจะถูกรีเซ็ต" _userGeneratedContentsVisibilityForVisitor: all: "ทั้งหมดสาธารณะ" localOnly: "เผยแพร่เป็นสาธารณะเฉพาะเนื้อหาท้องถิ่น เนื้อหาระยะไกลให้เป็นส่วนตัว" @@ -3098,6 +3104,8 @@ _serverSetupWizard: doYouConnectToFediverse_description1: "หากเชื่อมต่อกับเครือข่ายที่ประกอบด้วยเซิร์ฟเวอร์แบบกระจาย (Fediverse) จะสามารถแลกเปลี่ยนเนื้อหากับเซิร์ฟเวอร์อื่นๆ ได้" doYouConnectToFediverse_description2: "การเชื่อมต่อกับ Fediverse เรียกว่า “สหพันธ์”" youCanConfigureMoreFederationSettingsLater: "หลังจากนี้ยังสามารถตั้งค่าแบบขั้นสูง เช่น การกำหนดเซิร์ฟเวอร์ที่อนุญาตให้สหพันธ์ต่อกันได้เพิ่มเติม" + remoteContentsCleaning: "การล้างข้อมูลเนื้อหาที่ได้รับโดยอัตโนมัติ" + remoteContentsCleaning_description: "เมื่อมีการเชื่อมโยงสหพันธ์ จะได้รับเนื้อหาเป็นจำนวนมากอย่างต่อเนื่อง เมื่อเปิดใช้งานการล้างข้อมูลอัตโนมัติ จะทำการลบเนื้อหาเก่าที่ไม่ถูกอ้างอิง ไปจากเซิร์ฟเวอร์โดยอัตโนมัติ เพื่อประหยัดพื้นที่จัดเก็บข้อมูล" adminInfo: "ข้อมูลผู้ดูแลระบ" adminInfo_description: "ตั้งค่าข้อมูลผู้ดูแลระบบที่จะใช้รับคำถามและติดต่อ" adminInfo_mustBeFilled: "หากเปิดใช้เซิร์ฟเวอร์สาธารณะ หรือเปิดใช้งานสหพันธ์ จะต้องกรอกข้อมูลนี้" diff --git a/locales/tr-TR.yml b/locales/tr-TR.yml index 2f20c02105..fd4aed4a28 100644 --- a/locales/tr-TR.yml +++ b/locales/tr-TR.yml @@ -1,130 +1,145 @@ --- _lang_: "Türkçe" -headlineMisskey: "Notlarla bağlanmış bir ağ" -introMisskey: "Açık kaynaklı bir dağıtılmış mikroblog hizmeti olan Misskey'e hoş geldiniz.\nMisskey, neler olup bittiğini paylaşmak ve herkese sizden bahsetmek için \"notlar\" oluşturmanıza olanak tanıyan, açık kaynaklı, dağıtılmış bir mikroblog hizmetidir.\nHerkesin notlarına kendi tepkilerinizi hızlıca eklemek için \"Tepkiler\" özelliğini de kullanabilirsiniz👍.\nYeni bir dünyayı keşfedin🚀." -poweredByMisskeyDescription: "name}Açık kaynak bir platform\nMisskeyDünya'nın en sunucularında biri。" -monthAndDay: "{month}Ay {day}Gün" +headlineMisskey: "Notlarla birbirine bağlanan bir ağ" +introMisskey: "Hoş geldiniz! Misskey, açık kaynaklı, merkezi olmayan bir mikroblog hizmetidir.\nDüşüncelerinizi çevrenizdeki herkesle paylaşmak için “notlar” oluşturun. 📡\n“Tepkiler” ile herkesin notları hakkındaki duygularınızı hızlıca ifade edebilirsiniz. 👍\nYeni bir dünyayı keşfedelim! 🚀" +poweredByMisskeyDescription: "{name}, açık kaynak platformu Misskey (kısaca “Misskey örneği” olarak anılır) tarafından desteklenen hizmetlerden biridir." +monthAndDay: "{month}/{day}" search: "Arama" -notifications: "Bildirim" +reset: "Sıfırla" +notifications: "Bildirimler" username: "Kullanıcı Adı" password: "Şifre" -initialPasswordForSetup: "" -forgotPassword: "şifremi unuttum" -fetchingAsApObject: "從聯邦宇宙取得中..." -ok: "TAMAM" -gotIt: "Anladım" +initialPasswordForSetup: "Kurulum için ilk şifre" +initialPasswordIsIncorrect: "Kurulum için ilk parola yanlış" +initialPasswordForSetupDescription: "Misskey'i kendiniz kurduysanız, yapılandırma dosyasına girdiğiniz parolayı kullanın.\nMisskey barındırma hizmeti kullanıyorsanız, verilen parolayı kullanın.\nParola belirlemediyseniz, devam etmek için boş bırakın." +forgotPassword: "Şifremi unuttum" +fetchingAsApObject: "Fediverse'den getiriliyor..." +ok: "Tamam" +gotIt: "Anladım!" cancel: "İptal" -noThankYou: "Hayır, teşekkürler" -enterUsername: "Kullanıcı adınızı giriniz" -renotedBy: "{user} tarafından Renotelandı" -noNotes: "Notlar mevcut değil." -noNotifications: "Bildirim bulunmuyor" +noThankYou: "Şimdi değil" +enterUsername: "Kullanıcı adını girin" +renotedBy: "{user} tarafından renot edildi" +noNotes: "Not yok" +noNotifications: "Bildirim yok" instance: "Sunucu" -settings: "Ayarlar" +settings: "Ayarlarlar" notificationSettings: "Bildirim Ayarları" basicSettings: "Temel Ayarlar" otherSettings: "Diğer Ayarlar" -openInWindow: "Bir pencere ile aç" +openInWindow: "Pencerede aç" profile: "Profil" -timeline: "Zaman çizelgesi" -noAccountDescription: "Bu kullanıcı henüz biyografisini yazmadı" -login: "Giriş Yap " -loggingIn: "Oturum aç" +timeline: "Timeline" +noAccountDescription: "Bu kullanıcı henüz biyografisini yazmamış." +login: "Giriş Yap" +loggingIn: "Giriş yapılıyor" logout: "Çıkış Yap" -signup: "Kayıt Ol" -uploading: "Yükleniyor" +signup: "Kaydol" +uploading: "Yükleniyor..." save: "Kaydet" -users: "Kullanıcı" -addUser: "Kullanıcı Ekle" -favorite: "Favoriler" +users: "Kullanıcılar" +addUser: "Kullanıcı ekle" +favorite: "Favorilere ekle" favorites: "Favoriler" -unfavorite: "Favorilerden Kaldır" -favorited: "Favorilerime eklendi." -alreadyFavorited: "Zaten favorilerinizde kayıtlı." -cantFavorite: "Favorilere kayıt yapılamadı" -pin: "Sabitlenmiş" -unpin: "Sabitlemeyi kaldır" +unfavorite: "Favorilerden kaldır" +favorited: "Favorilere eklendi." +alreadyFavorited: "Zaten favorilere eklendi" +cantFavorite: "Favorilere ekleyemedim." +pin: "Profiline sabitle" +unpin: "Profilden sabitlemeyi kaldır" copyContent: "İçeriği kopyala" -copyLink: "Bağlantıyı Kopyala" -copyLinkRenote: "Turkish" +copyLink: "Linki kopyala" +copyRemoteLink: "Uzak linki kopyala" +copyLinkRenote: "Renote linkini kopyala" delete: "Sil" deleteAndEdit: "Sil ve yeniden düzenle" -deleteAndEditConfirm: "Bu notu silip yeniden düzenlemek istiyor musunuz? Bu nota ilişkin tüm Tepkiler, Yeniden Notlar ve Yanıtlar da silinecektir." +deleteAndEditConfirm: "Bu notu silip yeniden düzenlemek ister misiniz? Bu notla ilgili tüm Tepkiler, Yeniden Notlar ve Yanıtlar da silinecektir." addToList: "Listeye ekle" -addToAntenna: "Antene ekle" -sendMessage: "Mesaj Gönder" -copyRSS: "RSSKopyala" -copyUsername: "Kullanıcı Adını Kopyala" -copyUserId: "KullanıcıyıKopyala" -copyNoteId: "Kimlik notunu kopyala" -copyFileId: "Dosya ID'sini kopyala" -copyFolderId: "Klasör ID'sini kopyala" -copyProfileUrl: "Profil URL'sini kopyala" -searchUser: "Kullanıcıları ara" -reply: "yanıt" -loadMore: "Devamını yükle" -showMore: "Devamını yükle" +addToAntenna: "Anten'e ekle" +sendMessage: "Mesaj gönder" +copyRSS: "RSS kopyala" +copyUsername: "Kullanıcı adını kopyala" +copyUserId: "Kullanıcı ID'yi kopyala" +copyNoteId: "Not ID'yi kopyala" +copyFileId: "Dosya ID'yi kopyala" +copyFolderId: "Klasör ID'yi kopyala" +copyProfileUrl: "Profil URL kopyala" +searchUser: "Kullanıcı ara" +searchThisUsersNotes: "Bu kullanıcının notlarını ara" +reply: "Yanıtla" +loadMore: "Daha fazla yükle" +showMore: "Daha fazlasını göster" showLess: "Kapat" youGotNewFollower: "seni takip etti" receiveFollowRequest: "Takip isteği alındı" followRequestAccepted: "Takip isteği kabul edildi" mention: "Bahset" mentions: "Bahsetmeler" -directNotes: "Kişisel mesajlar" +directNotes: "Doğrudan notlar" importAndExport: "İçeri/Dışarı aktar" import: "İçeri aktar" export: "Dışa aktar" files: "Dosyalar" download: "İndir" -driveFileDeleteConfirm: "\"{name}\" dosyası silinsin mi? Dosya kullanıldığı tüm notlardan kaybolacaktır." -unfollowConfirm: "{name} takipten çıkarılsın mı?" -exportRequested: "Dışa aktarım talep ettiniz. Bu biraz zaman alabilir. İşlem bitince Sürücünüze eklenecektir." -importRequested: "Dışa aktarım talep ettiniz. Bu işlem biraz zaman alabilir." +driveFileDeleteConfirm: "“{name}” dosyasını silmek istediğinizden emin misiniz? Bu dosyaya ekli tüm notlar da silinecektir." +unfollowConfirm: "{name}'yi takipten çıkarmak istediğinizden emin misiniz?" +exportRequested: "Dışa aktarma işlemi talep ettiniz. Bu işlem biraz zaman alabilir. İşlem tamamlandığında Drive'ınıza eklenecektir." +importRequested: "İçe aktarma talebinde bulundunuz. Bu işlem biraz zaman alabilir." lists: "Listeler" -noLists: "Liste yok" -note: "not" -notes: "notlar" -following: "takipçi" -followers: "takipçi" -followsYou: "seni takip ediyor" +noLists: "Hiçbir listeniz yok." +note: "Not" +notes: "Notlar" +following: "Takip eden" +followers: "Takipçiler" +followsYou: "Sizi takip ediyor" createList: "Liste oluştur" -manageLists: "Yönetici Listeleri" -error: "hata" +manageLists: "Listeleri yönet" +error: "Hata" somethingHappened: "Bir hata oluştu" retry: "Tekrar dene" -pageLoadError: "Sayfa yüklenemedi." -pageLoadErrorDescription: "Bu genelde ağ veya tarayıcı ön belleği hatalarından olur. Lütfen ön belleği temizlemeyi veya birkaç dakika beklemeyi ve sayfayı yenilemeyi deneyin." -serverIsDead: "Sunucu yanıt vermiyor. Birkaç dakika sonra tekrar deneyin." -youShouldUpgradeClient: "Sayfayı görüntülemek için yenileyin." -enterListName: "Liste ismi" +pageLoadError: "Sayfa yüklenirken bir hata oluştu." +pageLoadErrorDescription: "Bu durum genellikle ağ hataları veya tarayıcının önbelleği nedeniyle oluşur. Önbelleği temizleyin ve bir süre bekledikten sonra tekrar deneyin." +serverIsDead: "Bu sunucu yanıt vermiyor. Lütfen bir süre bekleyin ve tekrar deneyin." +youShouldUpgradeClient: "Bu sayfayı görüntülemek için lütfen yenileyerek istemcinizi güncelleyin." +enterListName: "Listeye bir ad girin" privacy: "Gizlilik" -makeFollowManuallyApprove: "Takip istekleri elle onaylansın" +makeFollowManuallyApprove: "Takip istekleri onay gerektirir" defaultNoteVisibility: "Varsayılan görünürlük" -follow: "takipçi" -followRequest: "Takip isteği" +follow: "Takip et" +followRequest: "Takip isteği gönder" followRequests: "Takip istekleri" -unfollow: "takip etmeyi bırak" -followRequestPending: "Bekleyen Takip Etme Talebi" -enterEmoji: "Emoji Giriniz" -renote: "vazgeçme" -unrenote: "not alma" -renoted: "yeniden adlandırılmış" -cantRenote: "Ayrılamama" -cantReRenote: "not alabilirmiyim" -quote: "alıntı" -inChannelRenote: "Kanal içi Renote" -inChannelQuote: "Kanal içi Alıntı" -pinnedNote: "Sabitlenen" -pinned: "Sabitlenmiş" -you: "sen" -clickToShow: "Görüntülemek için tıkla" -sensitive: "Hassas içerik" +unfollow: "Takibi bırak" +followRequestPending: "Takip isteği beklemede" +enterEmoji: "Bir emoji girin" +renote: "Renote" +unrenote: "Renote'u kaldır" +renoted: "Renote edildi" +renotedToX: "{name} adına kayıtlıdır." +cantRenote: "Bu gönderi renote edilemez." +cantReRenote: "Bir renote yeniden renote edilemez." +quote: "Alıntı" +inChannelRenote: "Kanal içi renote" +inChannelQuote: "Kanal içi alıntı" +renoteToChannel: "Kanala not et" +renoteToOtherChannel: "Diğer kanala not edin\n" +pinnedNote: "Sabit not" +pinned: "Profiline sabitle" +you: "Sen" +clickToShow: "Göstermek için tıklayın" +sensitive: "Hassas" add: "Ekle" -reaction: "Tepkiler" -reactions: "Tepkiler" -reactionSettingDescription2: "Sıralamak için sürükleyin, silmek için tıklayın, eklemek için \"+\" tuşuna tıklayın." -rememberNoteVisibility: "Görünürlük ayarlarını hatırla" -attachCancel: "Eki sil" +reaction: "Tepki" +reactions: "Tepki" +emojiPicker: "Emoji seçici" +pinnedEmojisForReactionSettingDescription: "Tepki verirken sabitlenecek ve görüntülenecek emojileri ayarlayın." +pinnedEmojisSettingDescription: "Emoji seçiciyi görüntülerken sabitlenecek ve görüntülenecek emojileri ayarlayın" +emojiPickerDisplay: "Emoji seçici ekranı" +overwriteFromPinnedEmojisForReaction: "Tepki ayarlarından geçersiz kılma" +overwriteFromPinnedEmojis: "Genel ayarlardan geçersiz kılma" +reactionSettingDescription2: "Sıralamayı değiştirmek için sürükleyin, silmek için tıklayın, eklemek için “+” tuşuna basın." +rememberNoteVisibility: "Not görünürlük ayarlarını hatırla" +attachCancel: "Eki kaldır" +deleteFile: "Dosyayı sil" markAsSensitive: "Hassas içerik olarak işaretle" unmarkAsSensitive: "Hassas içerik işaretini kaldır" enterFileName: "Dosya ismini gir" @@ -145,6 +160,7 @@ editList: "Listeyi düzenle" selectChannel: "Kanal seç" selectAntenna: "Bir anten seç" editAntenna: "Anteni düzenle" +createAntenna: "Bir anten oluşturun" selectWidget: "Araç seç" editWidgets: "Araçları düzenle" editWidgetsExit: "Tamam" @@ -157,308 +173,3040 @@ addEmoji: "Emoji ekle" settingGuide: "Önerilen ayarlar" cacheRemoteFiles: "Uzak dosyalar ön belleğe alınsın" cacheRemoteFilesDescription: "Bu ayar açık olduğunda diğer sitelerin dosyaları doğrudan uzak sunucudan yüklenecektir. Bu ayarı kapatmak depolama kullanımını azaltacak ama küçük resimler oluşturulmadığından trafiği arttıracaktır." -youCanCleanRemoteFilesCache: "" +youCanCleanRemoteFilesCache: "Dosya yönetimi görünümünde 🗑️ düğmesine tıklayarak önbelleği temizleyebilirsiniz." cacheRemoteSensitiveFiles: "Hassas uzak dosyalar ön belleğe alınsın" cacheRemoteSensitiveFilesDescription: "Bu ayar kapalı olduğunda hassas uzak dosyalar ön belleğe alınmadan doğrudan uzak sunucudan yüklenecektir." flagAsBot: "Bot olarak işaretle" -flagAsBotDescription: "Bu seçeneği hesap bir program tarafından kontrol ediliyorsa işaretleyin. Bu, diğer geliştiricilerin sonsuz etkileşim zincirleri oluşturmasını engellemeye yardımcı olur ve Misskey'in iç sisteminin hesaba bir bot gibi davranmasını sağlar." +flagAsBotDescription: "Bu hesap bir program tarafından kontrol ediliyorsa bu seçeneği etkinleştirin. Etkinleştirildiğinde, diğer geliştiriciler için bir işaret görevi görerek diğer botlarla sonsuz etkileşim zincirlerini önleyecek ve Misskey'in iç sistemlerini bu hesabı bir bot olarak ele alacak şekilde ayarlayacaktır." flagAsCat: "Kedi hesabı" flagAsCatDescription: "Kedi hesabı" -flagShowTimelineReplies: "Zaman akışında notlara gelen cevapları göster" -flagShowTimelineRepliesDescription: "Açık olduğu durumda, zaman akışında kullanıcıların başkalarına verdiği cevaplar gözükür." +flagShowTimelineReplies: "Timeline'da notlara gelen cevapları göster" +flagShowTimelineRepliesDescription: "Açık olduğu durumda, Timeline'da kullanıcıların başkalarına verdiği cevaplar gözükür." autoAcceptFollowed: "Takip edilen hesapların takip isteklerini kabul et" addAccount: "Hesap ekle" reloadAccountsList: "Hesap listesini güncelle" loginFailed: "Giriş başarısız oldu" showOnRemote: "Uzak sunucuda görüntüle" +continueOnRemote: "Uzak bir sunucuda devam edin" +chooseServerOnMisskeyHub: "Misskey Hub'dan bir sunucu seçin." +specifyServerHost: "Doğrudan bir sunucu ana bilgisayarı belirtin" +inputHostName: "Alan adını girin" general: "Genel" wallpaper: "Duvar kağıdı" setWallpaper: "Duvar kağıdını ayarla" -removeWallpaper: "Duvar kağıdını sil" +removeWallpaper: "Duvar kağıdını kaldır" searchWith: "Arama: {q}" -youHaveNoLists: "Hiç listeniz yok" -followConfirm: "{name} takip edilsin mi?" -proxyAccount: "Vekil hesabı" -proxyAccountDescription: "Proxy hesabı, belirli koşullar altında kullanıcılar için uzaktan takipçi işlevi gören bir hesaptır. Örneğin, bir kullanıcı listeye bir uzak kullanıcı eklediğinde, o kullanıcıyı takip eden yerel bir kullanıcı yoksa uzak kullanıcının etkinliği örneğe teslim edilmeyecektir, dolayısıyla bunun yerine proxy hesabı takip edilecektir." -host: "Sağlayıcı" -selectUser: "Kullanıcı seç" -recipient: "Kime" -annotation: "Açıklamalar" +youHaveNoLists: "Hiçbir listeniz yok." +followConfirm: "{name}'i takip etmek istediğinizden emin misiniz?" +proxyAccount: "Proxy hesabı" +proxyAccountDescription: "Proxy hesabı, belirli koşullar altında kullanıcılar için uzaktan takipçi görevi gören bir hesaptır. Örneğin, bir kullanıcı listeye uzaktan bir kullanıcı eklediğinde, o kullanıcıyı takip eden yerel kullanıcı yoksa uzaktan kullanıcının etkinliği örneğe iletilmez, bunun yerine proxy hesabı takip eder." +host: "Host" +selectSelf: "Kendimi seç" +selectUser: "Bir kullanıcı seçin" +recipient: "Alıcı" +annotation: "Yorumlar" federation: "Federasyon" -instances: "Sunucu" -registeredAt: "Katılma tarihi" -latestRequestReceivedAt: "Alınan son talep" -latestStatus: "En son durum" +instances: "Sunucular" +registeredAt: "Kayıtlı" +latestRequestReceivedAt: "Son talep alındı" +latestStatus: "Son durum" storageUsage: "Depolama kullanımı" -charts: "Çizelgeler" +charts: "Grafikler" perHour: "Saatlik" perDay: "Günlük" -stopActivityDelivery: "Durum güncellemelerini gönderme" +stopActivityDelivery: "Etkinlik göndermeyi durdur" blockThisInstance: "Bu sunucuyu engelle" -silenceThisInstance: "" -operations: "İşlemler" -software: "Yazılımlar" +silenceThisInstance: "Bu sunucuyu sustur" +mediaSilenceThisInstance: "Medya bu sunucuyu sustursun" +operations: "Operasyonlar" +software: "Yazılım" +softwareName: "Yazılım" version: "Sürüm" -metadata: "Meta Verileri" -withNFiles: "{n} tane dosya" +metadata: "Meta veri" +withNFiles: "{n} dosya(lar)" monitor: "Monitör" jobQueue: "İşlem sırası" -cpuAndMemory: "İşlemci ve Hafıza" +cpuAndMemory: "CPU ve Bellek" network: "Ağ" disk: "Disk" instanceInfo: "Sunucu Bilgisi" statistics: "İstatistikler" -clearQueue: "Sırayı temizle" -clearQueueConfirmTitle: "Sıra silinsin mi?" -clearQueueConfirmText: "Sırada kalan hiçbir şey iletilmeyecek. Genelde bu işlem gerekli değildir." -clearCachedFiles: "Ön belleği temizle" -clearCachedFilesConfirm: "Ön belleğe alınmış tüm uzak sunucu dosyaları silinsin mi?" -blockedInstances: "Engellenen sunucular" -blockedInstancesDescription: "Engellemek istediğiniz sunucuların alan adlarını satır sonlarıyla ayırarak yazın. Yazılan sunucular bu sunucuyla iletişime geçemeyecek." -silencedInstances: "Turkısh" -silencedInstancesDescription: "" -muteAndBlock: "Susturma ve Engelleme" -mutedUsers: "Susturulan kullanıcılar" +clearQueue: "Kuyruğu temizle" +clearQueueConfirmTitle: "Kuyruğu silmek istediğinizden emin misiniz?" +clearQueueConfirmText: "Kuyrukta kalan teslim edilmemiş notlar birleştirilmeyecektir. Genellikle bu işlem gerekli değildir." +clearCachedFiles: "Clear cache" +clearCachedFilesConfirm: "Tüm önbelleğe alınmış uzak dosyaları silmek istediğinizden emin misiniz?" +blockedInstances: "Engellenen Sunucu" +blockedInstancesDescription: "Engellemek istediğiniz örneklerin ana bilgisayar adlarını satır sonlarıyla ayırarak listeleyin. Listelenen örnekler artık bu örnekle iletişim kuramayacaktır." +silencedInstances: "Susturulmuş sunucular" +silencedInstancesDescription: "Sessize almak istediğiniz sunucuların ana bilgisayar adlarını yeni bir satırla ayırarak listeleyin. Listelenen sunuculara ait tüm hesaplar sessize alınmış olarak kabul edilecek ve yalnızca takip isteklerinde bulunabilecek, takip edilmedikleri takdirde yerel hesapları etiketleyemeyeceklerdir. Bu, engellenen sunucuları etkilemeyecektir." +mediaSilencedInstances: "Medya susturulmuş sunucular" +mediaSilencedInstancesDescription: "Medya sessize almak istediğiniz sunucuların ana bilgisayar adlarını yeni bir satırla ayırarak listeleyin. Listelenen sunuculara ait tüm hesaplar hassas hesap olarak değerlendirilecek ve özel emojiler kullanılamayacaktır. Bu durum, engellenen sunucuları etkilemeyecektir." +federationAllowedHosts: "Federasyona izin verilen sunucular" +federationAllowedHostsDescription: "Federasyona izin vermek istediğiniz sunucuların ana bilgisayar adlarını satır sonlarıyla ayırın." +muteAndBlock: "Sessize Alma ve Engelleme" +mutedUsers: "Sessize alınan kullanıcılar" blockedUsers: "Engellenen kullanıcılar" noUsers: "Kullanıcı yok" editProfile: "Profili düzenle" noteDeleteConfirm: "Bu notu silmek istediğinizden emin misiniz?" -pinLimitExceeded: "Daha fazla not sabitlenemez" -done: "Tamamlandı" +pinLimitExceeded: "Artık daha fazla not sabitleyemezsiniz" +done: "Tamam" +processing: "İşleme..." preview: "Önizleme" default: "Varsayılan" defaultValueIs: "Varsayılan: {value}" -noCustomEmojis: "Emoji bulunamadı" -noJobs: "Hiç işlem yok" -federating: "Federe ediliyor" +noCustomEmojis: "Emoji yok" +noJobs: "Hiç iş yok" +federating: "Birleştirme" blocked: "Engellenmiş" suspended: "Askıya alınmış" all: "Tümü" subscribing: "Abonelik" publishing: "Paylaşım" -notResponding: "Cevap yok" -instanceFollowing: "Sunucuda takip edenler" +notResponding: "Yanıt vermiyor" +instanceFollowing: "Sunucuda takip" instanceFollowers: "Sunucu takipçileri" -instanceUsers: "Sunucu kullanıcıları" +instanceUsers: "Bu sunucunun kullanıcıları" changePassword: "Şifreyi değiştir" security: "Güvenlik" -retypedNotMatch: "Girişler uyuşmuyor." -currentPassword: "Geçerli şifre" +retypedNotMatch: "Girişler eşleşmiyor." +currentPassword: "Mevcut şifre" newPassword: "Yeni şifre" -newPasswordRetype: "Yeni şifre (tekrar)" -attachFile: "Dosya ekle" -more: "Daha!" -featured: "Öne Çıkan" +newPasswordRetype: "Yeni şifreyi tekrar girin" +attachFile: "Dosyaları ekle" +more: "Daha fazlası!" +featured: "Öne çıkan" usernameOrUserId: "Kullanıcı adı veya ID'si" noSuchUser: "Kullanıcı bulunamadı" lookup: "Sorgu" announcements: "Duyurular" -imageUrl: "Görsel URL'si" +imageUrl: "Görsel URL" remove: "Sil" removed: "Silindi" -removeAreYouSure: "\"{x}\" silmek istediğinizden emin misiniz?" -deleteAreYouSure: "\"{x}\" silmek istediğinizden emin misiniz?" -resetAreYouSure: "Sıfırlansın mı?" +removeAreYouSure: "“{x}” öğesini kaldırmak istediğinizden emin misiniz?" +deleteAreYouSure: "“{x}” öğesini silmek istediğinizden emin misiniz?" +resetAreYouSure: "Gerçekten sıfırlansın mı?" +areYouSure: "Emin misiniz?" saved: "Kaydedildi" upload: "Yükle" -keepOriginalUploading: "Orijinal görseli koru" -keepOriginalUploadingDescription: "Orijinal olarak yüklenen görüntüyü olduğu gibi kaydeder. Kapatılırsa, yükleme sırasında web'de görüntülenecek bir sürüm oluşturulur." -fromDrive: "Drive Dosyasından" -fromUrl: "Bağlantıdan" -uploadFromUrl: "Bağlantıdan yükle" -uploadFromUrlDescription: "Yüklemek istediğiniz dosyanın bağlantısı" -uploadFromUrlRequested: "Yükleme talep edildi" -uploadFromUrlMayTakeTime: "Yüklemenin tamamlanması biraz süre alabilir." +keepOriginalUploading: "Orijinal görüntüyü koru" +keepOriginalUploadingDescription: "Orijinal olarak yüklenen görüntüyü olduğu gibi kaydeder. Kapalıysa, yükleme sırasında web'de görüntülenecek bir sürüm oluşturulur." +fromDrive: "Sürücüden" +fromUrl: "URL'den" +uploadFromUrl: "Bir URL'den yükle" +uploadFromUrlDescription: "Yüklemek istediğiniz dosyanın URL'si" +uploadFromUrlRequested: "Yükleme istendi" +uploadFromUrlMayTakeTime: "Yükleme işleminin tamamlanması biraz zaman alabilir." +uploadNFiles: "{n} dosya yükle" explore: "Keşfet" -messageRead: "Okundu" -noMoreHistory: "Bundan öncesi yok" -nUsersRead: "{n} kişi okudu" -agreeTo: "Kabul Ediyorum: {0}" -agree: "Kabul Et" -agreeBelow: "Aşağıdakileri kabul ederim" +messageRead: "Oku" +noMoreHistory: "Daha fazla geçmiş bilgisi yoktur." +startChat: "Sohbete başla" +nUsersRead: "{n} tarafından okundu" +agreeTo: "{0}'ı kabul ediyorum." +agree: "Kabul ediyorum" +agreeBelow: "Aşağıdakileri kabul ediyorum" basicNotesBeforeCreateAccount: "Önemli notlar" -termsOfService: "Şartlar ve Koşullar" +termsOfService: "Hizmet Şartları" start: "Başla" home: "Ana sayfa" -remoteUserCaution: "Bu kullanıcı bir uzak sunucudan olduğu için alınan bilgiler tam olmayabilir." +remoteUserCaution: "Bu kullanıcı uzak bir örnekten geldiği için, gösterilen bilgiler eksik olabilir." activity: "Etkinlik" images: "Görseller" -image: "Görseller" +image: "Görsel" birthday: "Doğum günü" yearsOld: "{age} yaşında" -registeredDate: "Kayıt tarihi" +registeredDate: "Katılım tarihi" location: "Konum" theme: "Temalar" -themeForLightMode: "Aydınlık Tema" -themeForDarkMode: "Karanlık Tema" +themeForLightMode: "Aydınlık Mod'da kullanılacak tema" +themeForDarkMode: "Karanlık Mod'da kullanılacak tema" light: "Aydınlık" dark: "Karanlık" -lightThemes: "Aydınlık Temalar" -darkThemes: "Karanlık Temalar" -syncDeviceDarkMode: "Sistem Koyu Modu ile senkronize et" +lightThemes: "Aydınlık temalar" +darkThemes: "Karanlık temalar" +syncDeviceDarkMode: "Karanlık Modu cihaz ayarlarınızla senkronize edin" +switchDarkModeManuallyWhenSyncEnabledConfirm: "\"{x}\" açık. Senkronizasyonu kapatıp modları manuel olarak değiştirmek ister misiniz?" drive: "Sürücü" fileName: "Dosya adı" -selectFile: "Dosya seç" -selectFiles: "Dosya seç" -selectFolder: "Klasör seç" -selectFolders: "Klasör seç" +selectFile: "Bir dosya seçin" +selectFiles: "Dosyaları seçin" +selectFolder: "Bir klasör seçin" +selectFolders: "Klasörleri seçin" +fileNotSelected: "Hiçbir dosya seçilmedi" renameFile: "Dosyayı yeniden adlandır" folderName: "Klasör adı" -createFolder: "Klasör oluştur" -renameFolder: "Klasörü Yeniden Adlandır" -deleteFolder: "Klasörü sil" -addFile: "Dosya ekle" -emptyDrive: "Sürücü boş" +createFolder: "Bir klasör oluşturun" +renameFolder: "Bu klasörü yeniden adlandırın" +deleteFolder: "Bu klasörü sil" +folder: "Dosya" +addFile: "Bir dosya ekle" +showFile: "Dosyaları göster" +emptyDrive: "Sürücünüz boş" emptyFolder: "Bu klasör boş" -unableToDelete: "Silme mümkün değil" -inputNewFileName: "Yeni dosya ismini girin" -inputNewDescription: "Yeni bir başlık gir" -inputNewFolderName: "Yeni klasör ismini girin" -circularReferenceFolder: "Hedef klasör taşınan klasörün bir alt klasörü." -hasChildFilesOrFolders: "Klasör boş olmadığından silinemiyor" +unableToDelete: "Silinemiyor" +inputNewFileName: "Yeni bir dosya adı girin" +inputNewDescription: "Yeni alternatif metin girin" +inputNewFolderName: "Yeni bir klasör adı girin" +circularReferenceFolder: "Hedef klasör, taşımak istediğiniz klasörün bir alt klasörüdür." +hasChildFilesOrFolders: "Bu klasör boş olmadığı için silinemez." copyUrl: "URL'yi kopyala" rename: "Yeniden adlandır" avatar: "Avatar" banner: "Banner" -displayOfSensitiveMedia: "Hassas içerik gösterimi" -whenServerDisconnected: "Sunucu bağlantısı kesildiğinde" -disconnectedFromServer: "Sunucu bağlantısı koptu" +displayOfSensitiveMedia: "Hassas ortamların görüntülenmesi" +whenServerDisconnected: "Sunucu ile bağlantı kesildiğinde" +disconnectedFromServer: "Sunucu bağlantısı kesildi" reload: "Yenile" -doNothing: "Bir şey yapma" -reloadConfirm: "Zaman akışı yenilensin mi?" +doNothing: "Yoksay" +reloadConfirm: "Zaman çizelgesini yenilemek ister misiniz?" watch: "İzle" unwatch: "İzlemeyi bırak" accept: "Kabul et" reject: "Reddet" normal: "Normal" -instanceName: "Sunucu ismi" +instanceName: "Sunucu adı" instanceDescription: "Sunucu açıklaması" -maintainerName: "Yönetici ismi" -maintainerEmail: "Yöneticinin e-postası" -tosUrl: "Hizmet Koşulları Bağlantısı" -thisYear: "Bu yıl" -thisMonth: "Bu ay" +maintainerName: "Bakım sorumlusu" +maintainerEmail: "Bakım sorumlusu E-Posta adresi" +tosUrl: "Hizmet Şartları URL'si" +thisYear: "Yıl" +thisMonth: "Ay" today: "Bugün" -monthX: "{month} ay" +dayX: "{day}" +monthX: "{month}" +yearX: "{year}" pages: "Sayfalar" integration: "Entegrasyon" +connectService: "Bağlan" +disconnectService: "Bağlantıyı kes" +enableLocalTimeline: "Yerel Timeline'ı etkinleştir" +enableGlobalTimeline: "Küresel Timeline'ı etkinleştir" +disablingTimelinesInfo: "Yöneticiler ve Moderatörler, etkinleştirilmemiş olsalar bile her zaman tüm Timeline'a erişebilecekler." +registration: "Kaydol" +invite: "Davet et" +driveCapacityPerLocalAccount: "Yerel kullanıcı başına sürücü kapasitesi" +driveCapacityPerRemoteAccount: "Uzak kullanıcı başına sürücü kapasitesi" +inMb: "Megabayt cinsinden" +bannerUrl: "Banner görseli URL'si" +backgroundImageUrl: "Arka plan görseli URL'si" basicInfo: "Temel bilgiler" pinnedUsers: "Sabitlenmiş kullanıcılar" -pinnedNotes: "Sabitlenen" -manageAntennas: "Anten ayarları" +pinnedUsersDescription: "“Keşfet” sekmesinde sabitlenecek kullanıcı adlarını satır sonlarıyla ayırarak listeleyin." +pinnedPages: "Sabitlenmiş Sayfalar" +pinnedPagesDescription: "Bu örneğin üst sayfasına sabitlemek istediğiniz Sayfaların yollarını satır sonlarıyla ayırarak girin." +pinnedClipId: "Sabitlenecek klibin ID" +pinnedNotes: "Sabitlenmiş notlar" +hcaptcha: "hCaptcha" +enableHcaptcha: "hCaptcha'yı etkinleştir" +hcaptchaSiteKey: "Site anahtar" +hcaptchaSecretKey: "Gizli anahtar" +mcaptcha: "mCaptcha" +enableMcaptcha: "mCaptcha'yı etkinleştir" +mcaptchaSiteKey: "Site anahtarı" +mcaptchaSecretKey: "Gizli anahtar" +mcaptchaInstanceUrl: "mCaptcha sunucu URL'si" +recaptcha: "reCAPTCHA" +enableRecaptcha: "reCAPTCHA'yı etkinleştir" +recaptchaSiteKey: "Site anahtar" +recaptchaSecretKey: "Gizli anahtar" +turnstile: "Turnstile" +enableTurnstile: "Turnstile'yi etkinleştir" +turnstileSiteKey: "Site anahtar" +turnstileSecretKey: "Gizli anahtar" +avoidMultiCaptchaConfirm: "Birden fazla Captcha sistemi kullanmak, aralarında çakışmaya neden olabilir. Şu anda etkin olan diğer Captcha sistemlerini devre dışı bırakmak ister misiniz? Etkin kalmalarını istiyorsanız, iptal düğmesine basın." +antennas: "Antenler" +manageAntennas: "Antenleri Yönet" +name: "İsim" +antennaSource: "Anten kaynağı" +antennaKeywords: "Dinlenecek anahtar kelimeler" +antennaExcludeKeywords: "Hariç tutulacak anahtar kelimeler" +antennaExcludeBots: "Bot hesaplarını hariç tut" +antennaKeywordsDescription: "VE koşulu için boşluklarla, VEYA koşulu için satır sonlarıyla ayırın." +notifyAntenna: "Yeni notlar hakkında bildirimde bulunun" +withFileAntenna: "Sadece dosyalı notlar" +excludeNotesInSensitiveChannel: "Hassas kanallardan gelen notları hariç tutun" +enableServiceworker: "Tarayıcınız için Push Bildirimlerini Etkinleştirin" +antennaUsersDescription: "Satır başına bir kullanıcı adı listeleyin" +caseSensitive: "Harfe duyarlı" +withReplies: "Yanıtları ekle" +connectedTo: "Aşağıdaki hesap(lar) bağlı" +notesAndReplies: "Notlar ve yanıtlar" +withFiles: "Dosyalar dahil" +silence: "Sessize al" +silenceConfirm: "Bu kullanıcıyı susturmak istediğinizden emin misiniz?" +unsilence: "Sessize almayı geri al" +unsilenceConfirm: "Bu kullanıcının sessize alınmasını geri almak istediğinizden emin misiniz?" +popularUsers: "Popüler kullanıcılar" +recentlyUpdatedUsers: "Son zamanlarda aktif olan kullanıcılar" +recentlyRegisteredUsers: "Yeni katılan kullanıcılar" +recentlyDiscoveredUsers: "Yeni keşfedilen kullanıcılar" +exploreUsersCount: "{count} kullanıcı var" +exploreFediverse: "Fediverse'i keşfedin" +popularTags: "Popüler etiketler" userList: "Listeler" -resetPassword: "Şifre sıfırlama" -details: "Detaylar" -deck: "Güverte" -smtpHost: "Sağlayıcı" -smtpUser: "Kullanıcı Adı" +about: "Hakkında" +aboutMisskey: "Misskey Hakkında" +administrator: "Yönetici" +token: "Token" +2fa: "İki faktörlü kimlik doğrulama" +setupOf2fa: "İki faktörlü kimlik doğrulamayı ayarlayın" +totp: "Authenticator Uygulaması" +totpDescription: "Tek seferlik şifreleri girmek için bir kimlik doğrulama uygulaması kullanın" +moderator: "Moderatör" +moderation: "Moderasyon" +moderationNote: "Moderasyon notu" +moderationNoteDescription: "Moderatörler arasında paylaşılacak notları girebilirsiniz." +addModerationNote: "Moderasyon notu ekle" +moderationLogs: "Moderasyon günlükleri" +nUsersMentioned: "{n} kullanıcı tarafından bahsedildi" +securityKeyAndPasskey: "Güvenlik ve geçiş anahtarları" +securityKey: "Güvenlik anahtarı" +lastUsed: "Son kullanılan" +lastUsedAt: "Son kullanım: {t}" +unregister: "Kayıttan çık" +passwordLessLogin: "Şifresiz giriş" +passwordLessLoginDescription: "Yalnızca güvenlik anahtarı veya şifre anahtarı kullanarak şifresiz oturum açmaya izin verir." +resetPassword: "Şifreyi sıfırla" +newPasswordIs: "Yeni şifre \"{password}\"" +reduceUiAnimation: "UI animasyonlarını azaltın." +share: "Paylaş" +notFound: "Bulunamadı" +notFoundDescription: "Bu URL'ye karşılık gelen sayfa bulunamadı." +uploadFolder: "Yüklemeler için varsayılan klasör" +markAsReadAllNotifications: "Tüm bildirimleri okundu olarak işaretle" +markAsReadAllUnreadNotes: "Tüm notları okundu olarak işaretle" +markAsReadAllTalkMessages: "Tüm mesajları okundu olarak işaretle" +help: "Yardım" +inputMessageHere: "Mesajınızı buraya girin" +close: "Kapat" +invites: "Davetler" +members: "Üyeler" +transfer: "Transfer" +title: "Başlık" +text: "Metin" +enable: "Etkin" +next: "Sonraki" +retype: "Tekrar girin" +noteOf: "{user} tarafından not" +quoteAttached: "Alıntı" +quoteQuestion: "Alıntı olarak ekle?" +attachAsFileQuestion: "Panodaki metin uzun. Metin dosyası olarak eklemek ister misiniz?" +onlyOneFileCanBeAttached: "Bir mesaja yalnızca bir dosya ekleyebilirsiniz." +signinRequired: "Devam etmeden önce lütfen kayıt olun veya giriş yapın." +signinOrContinueOnRemote: "Devam etmek için sunucunuzu taşıyın veya bu sunucuya kaydolun / giriş yapın." +invitations: "Davetler" +invitationCode: "Davet kodu" +checking: "Kontrol ediliyor..." +available: "Mevcut" +unavailable: "Mevcut değil" +usernameInvalidFormat: "Büyük ve küçük harfler, rakamlar ve alt çizgi kullanabilirsiniz. (a~z、A~Z、0~9)" +tooShort: "Çok kısa" +tooLong: "Çok uzun" +weakPassword: "Zayıf şifre" +normalPassword: "Ortalama şifre" +strongPassword: "Güçlü şifre" +passwordMatched: "Eşleşti" +passwordNotMatched: "Eşleşmedi" +signinWith: "{x} ile giriş yapın" +signinFailed: "Giriş yapılamıyor. Girilen kullanıcı adı veya şifre yanlış." +or: "veya" +language: "Dil" +uiLanguage: "Kullanıcı arayüzü dili" +aboutX: "{x} hakkında" +emojiStyle: "Emoji stili" +native: "Yerli" +menuStyle: "Menü stili" +style: "Stil" +drawer: "Çekmece" +popup: "Pop-up" +showNoteActionsOnlyHover: "Not eylemlerini yalnızca üzerine gelindiğinde göster" +showReactionsCount: "Notlardaki tepki sayısını gör" +noHistory: "Geçmiş mevcut değil" +signinHistory: "Giriş geçmişi" +enableAdvancedMfm: "Gelişmiş MFM'yi etkinleştir" +enableAnimatedMfm: "Animasyonlu MFM'yi etkinleştir" +doing: "İşleniyor..." +category: "Kategori" +tags: "Takma adlar" +docSource: "Bu belgenin kaynağı" +createAccount: "Hesap oluştur" +existingAccount: "Mevcut hesap" +regenerate: "Yeniden oluştur" +fontSize: "Yazı tipi boyutu" +mediaListWithOneImageAppearance: "Tek bir resim içeren medya listelerinin yüksekliği" +limitTo: "{x} ile sınırlandır" +noFollowRequests: "Bekleyen takip istekleriniz yok." +openImageInNewTab: "Görüntüleri yeni sekmede aç" +dashboard: "Gösterge paneli" +local: "Yerel" +remote: "Uzaktan" +total: "Toplam" +weekOverWeekChanges: "Geçen haftadan bu yana yapılan değişiklikler" +dayOverDayChanges: "Dünkü değişiklikler" +appearance: "Görünüm" +clientSettings: "İstemci Ayarları" +accountSettings: "Hesap Ayarları" +promotion: "Tanıtım" +promote: "Tanıtıldı" +numberOfDays: "Gün sayısı" +hideThisNote: "Bu notu gizle" +showFeaturedNotesInTimeline: "Timeline'da öne çıkan notları göster" +objectStorage: "Nesne Depolama" +useObjectStorage: "Nesne depolamayı kullanın" +objectStorageBaseUrl: "Temel URL" +objectStorageBaseUrlDesc: "Referans olarak kullanılan URL. CDN veya Proxy kullanıyorsanız, bunların URL'sini belirtin.\nS3 için ‘https://.s3.amazonaws.com’ ve GCS veya eşdeğer hizmetler için ‘https://storage.googleapis.com/’ vb. kullanın." +objectStorageBucket: "Kova" +objectStorageBucketDesc: "Lütfen sağlayıcınızda kullanılan kova adını belirtin." +objectStoragePrefix: "Önek" +objectStoragePrefixDesc: "Dosyalar bu öneke sahip dizinler altında saklanacaktır." +objectStorageEndpoint: "Uç nokta" +objectStorageEndpointDesc: "AWS S3 kullanıyorsanız bu alanı boş bırakın, aksi takdirde kullandığınız hizmete bağlı olarak uç noktayı ‘’ veya ‘:’ olarak belirtin." +objectStorageRegion: "Bölge" +objectStorageRegionDesc: "'xx-east-1' gibi bir bölge belirtin. Hizmetiniz bölgeler arasında ayrım yapmıyorsa, ‘us-east-1’ girin. AWS yapılandırma dosyalarını veya ortam değişkenlerini kullanıyorsanız boş bırakın." +objectStorageUseSSL: "SSL kullanın" +objectStorageUseSSLDesc: "API bağlantıları için HTTPS kullanmayacaksanız bunu kapatın." +objectStorageUseProxy: "Proxy üzerinden bağlan" +objectStorageUseProxyDesc: "API bağlantıları için Proxy kullanmayacaksanız bunu kapatın." +objectStorageSetPublicRead: "Yükleme sırasında \"genel-okuma\" ayarını yapın" +s3ForcePathStyleDesc: "s3ForcePathStyle etkinleştirilirse, kova adı URL'nin ana bilgisayar adı yerine URL yoluna eklenmelidir. Kendi kendine barındırılan bir Minio örneği gibi hizmetleri kullanırken bu ayarı etkinleştirmeniz gerekebilir." +serverLogs: "Sunucu log kayıtları" +deleteAll: "Tümünü sil" +showFixedPostForm: "Gönderi formunu zaman çizelgesinin en üstünde görüntüle" +showFixedPostFormInChannel: "Gönderi formunu zaman çizelgesinin en üstünde görüntüle (Kanallar)" +withRepliesByDefaultForNewlyFollowed: "Yeni takip edilen kullanıcıların yanıtlarını varsayılan olarak zaman çizelgesine dahil et" +newNoteRecived: "Yeni notlar var" +newNote: "Yeni Not" +sounds: "Sesler" +sound: "Ses" +notificationSoundSettings: "Bildirim sesi ayarları" +listen: "Dinle" +none: "Hiçbiri" +showInPage: "Sayfada göster" +popout: "Açılır pencere" +volume: "Ses hacmi" +masterVolume: "Ana ses seviyesi" +notUseSound: "Sesi kapat" +useSoundOnlyWhenActive: "Misskey etkin olduğunda ses çıkarılır." +details: "Ayrıntılar" +renoteDetails: "Renote detayları" +chooseEmoji: "Bir emoji seçin" +unableToProcess: "İşlem tamamlanamadı." +recentUsed: "Son kullanılan" +install: "Yükle" +uninstall: "Kaldır" +installedApps: "Yetkili Uygulamalar" +nothing: "Burada görülecek bir şey yok." +installedDate: "Yetkili" +lastUsedDate: "En son kullanıldığı tarih" +state: "Durum" +sort: "Sıralama düzeni" +ascendingOrder: "Yükselme" +descendingOrder: "Alçalma" +scratchpad: "Not defteri" +scratchpadDescription: "Scratchpad, AiScript deneyleri için bir ortam sağlar. Misskey ile etkileşim halindeyken yazabilir, çalıştırabilir ve sonuçlarını kontrol edebilirsiniz." +uiInspector: "UI denetçisi" +uiInspectorDescription: "Bellekteki UI bileşeni sunucu listesini görebilirsiniz. UI bileşeni, Ui:C: işlevi tarafından oluşturulacaktır." +output: "Çıktı" +script: "Script" +disablePagesScript: "Sayfalarda AiScript'i devre dışı bırak" +updateRemoteUser: "Uzak kullanıcı bilgilerini güncelle" +unsetUserAvatar: "Avatar'ı kaldır" +unsetUserAvatarConfirm: "Avatarı silmek istediğinizden emin misiniz?" +unsetUserBanner: "Banner'ı kaldır" +unsetUserBannerConfirm: "Banner'ı kaldırmak istediğinizden emin misiniz?" +deleteAllFiles: "Tüm dosyaları sil" +deleteAllFilesConfirm: "Tüm dosyaları silmek istediğinizden emin misiniz?" +removeAllFollowing: "Takip ettiğiniz tüm kullanıcıları takipten çıkarın" +removeAllFollowingDescription: "Bu komutu çalıştırmak, {host} adresindeki tüm hesapları takipten çıkarır. Örneğin, örnek artık mevcut değilse bu komutu çalıştırın." +userSuspended: "Bu kullanıcı askıya alınmıştır." +userSilenced: "Bu kullanıcı susturuluyor." +yourAccountSuspendedTitle: "Bu hesap askıya alınmıştır." +yourAccountSuspendedDescription: "Bu hesap, sunucunun hizmet şartlarını veya benzerlerini ihlal ettiği için askıya alınmıştır. Daha ayrıntılı bir neden öğrenmek isterseniz yöneticiyle iletişime geçin. Lütfen yeni bir hesap oluşturmayın." +tokenRevoked: "Geçersiz jeton" +tokenRevokedDescription: "Bu jetonun süresi doldu. Lütfen tekrar giriş yapın." +accountDeleted: "Hesap silindi" +accountDeletedDescription: "Bu hesap silinmiştir." +menu: "Menü" +divider: "Bölücü" +addItem: "Öğe Ekle" +rearrange: "Yeniden düzenle" +relays: "Röleler" +addRelay: "Röle ekle" +inboxUrl: "Gelen Kutusu URL'si" +addedRelays: "Eklenen Röleler" +serviceworkerInfo: "Push bildirimleri için etkinleştirilmelidir." +deletedNote: "Silinen not" +invisibleNote: "Görünmez not" +enableInfiniteScroll: "Otomatik olarak daha fazlasını yükle" +visibility: "Görünürlük" +poll: "Anket" +useCw: "İçeriği gizle" +enablePlayer: "Video oynatıcıyı aç" +disablePlayer: "Video oynatıcıyı kapat" +expandTweet: "Notu genişlet" +themeEditor: "Tema düzenleyici" +description: "Açıklama" +describeFile: "Alternatif metin ekle" +enterFileDescription: "Alternatif metin girin" +author: "Yazar" +leaveConfirm: "Kaydedilmemiş değişiklikler var. Bunları silmek istiyor musunuz?" +manage: "Yönetim" +plugins: "Eklentiler" +preferencesBackups: "Tercih yedeklemeleri" +deck: "Deck" +undeck: "Güverteden Ayrıl" +useBlurEffectForModal: "Modaller için bulanıklaştırma efekti kullanın" +useFullReactionPicker: "Tam boy tepki seçiciyi kullanın" +width: "Genişlik" +height: "Yükseklik" +large: "Büyük" +medium: "Orta" +small: "Küçük" +generateAccessToken: "Erişim jetonu oluştur" +permission: "İzinler" +adminPermission: "Yönetici İzinleri" +enableAll: "Tümünü etkinleştir" +disableAll: "Tümünü devre dışı bırak" +tokenRequested: "Hesaba erişim izni ver" +pluginTokenRequestedDescription: "Bu eklenti, burada ayarlanan izinleri kullanabilecektir." +notificationType: "Bildirim türü" +edit: "Düzenle" +emailServer: "E-posta sunucusu" +enableEmail: "E-posta dağıtımını etkinleştir" +emailConfigInfo: "Kayıt sırasında veya şifrenizi unuttuğunuzda E-postanızı doğrulamak için kullanılır." +email: "E-Posta" +emailAddress: "E-Posta adresi" +smtpConfig: "SMTP Sunucu yapılandırması" +smtpHost: "Host" +smtpPort: "Port" +smtpUser: "Kullanıcı adı" smtpPass: "Şifre" +emptyToDisableSmtpAuth: "SMTP kimlik doğrulamasını devre dışı bırakmak için kullanıcı adı ve şifre alanlarını boş bırakın." +smtpSecure: "SMTP bağlantıları için örtük SSL/TLS kullanın" +smtpSecureInfo: "STARTTLS kullanırken bunu kapatın." +testEmail: "Test E-postası gönderimi" +wordMute: "Kelime sustur" +wordMuteDescription: "Belirtilen kelime veya kelime öbeğini içeren notları küçültün. Küçültülmüş notlar, üzerlerine tıklanarak görüntülenebilir." +hardWordMute: "Zorla kelime sustur" +showMutedWord: "Sessize alınan kelimeleri göster" +hardWordMuteDescription: "Belirtilen kelime veya kelime öbeğini içeren notları gizleyin. Kelime sessize alma özelliğinden farklı olarak, not tamamen görünmez hale gelir." +regexpError: "Düzenli ifade hatası" +regexpErrorDescription: "{tab} kelimesinin {line} satırındaki düzenli ifadede bir hata oluştu:" +instanceMute: "Sunucu Sessizleştirme" +userSaysSomething: "{name} bir şey söyledi." +userSaysSomethingAbout: "{name} “{word}” hakkında bir şey söyledi." +makeActive: "Etkinleştir" +display: "Ekran" +copy: "Kopyala" +copiedToClipboard: "Panoya kopyalandı" +metrics: "Metrikler" +overview: "Genel Bakış" +logs: "Günlükler" +delayed: "Gecikmeli" +database: "Veritabanı" +channel: "Kanallar" +create: "Oluştur" notificationSetting: "Bildirim ayarları" +notificationSettingDesc: "Görüntülemek istediğiniz bildirim türlerini seçin." +useGlobalSetting: "Genel ayarları kullan" +useGlobalSettingDesc: "Etkinleştirildiğinde, hesabınızın bildirim ayarları kullanılır. Devre dışı bırakıldığında, bireysel yapılandırmalar yapılabilir." +other: "Diğer" +regenerateLoginToken: "Giriş jetonunu yeniden oluştur" +regenerateLoginTokenDescription: "Giriş sırasında dahili olarak kullanılan jetonu yeniden oluşturur. Normalde bu işlem gerekli değildir. Yeniden oluşturulursa, tüm cihazlar oturumu kapatılır." +theKeywordWhenSearchingForCustomEmoji: "Bu, kendi emojilerini ararken kullanılan anahtar kelimedir." +setMultipleBySeparatingWithSpace: "Birden fazla girişi boşluklarla ayırın." +fileIdOrUrl: "Dosya ID veya URL" +behavior: "Davranış" +sample: "Örnek" +abuseReports: "Raporlar" +reportAbuse: "Rapor" +reportAbuseRenote: "Raporu yeniden gönder" +reportAbuseOf: "{name} raporu" +fillAbuseReportDescription: "Bu raporla ilgili ayrıntıları lütfen doldurun. Belirli bir notla ilgiliyse, lütfen URL'sini de ekleyin." +abuseReported: "Raporunuz gönderildi. Çok teşekkür ederiz." +reporter: "Raporlayan" +reporteeOrigin: "Bildirim Kaynağı" +reporterOrigin: "Bildirenin Kaynağı" +send: "Gönder" +openInNewTab: "Yeni sekmede aç" +openInSideView: "Yan görünümde aç" +defaultNavigationBehaviour: "Varsayılan gezinme davranışı" +editTheseSettingsMayBreakAccount: "Bu ayarları düzenlemek hesabınıza zarar verebilir." instanceTicker: "Notların sunucu bilgileri" +waitingFor: "{x} bekleniyor" +random: "Rastgele" +system: "Sistem" +switchUi: "UI değiştir" +desktop: "Masaüstü " +clip: "Klip" +createNew: "Yeni oluştur" +optional: "Opsiyonel" +createNewClip: "Klip oluştur" +unclip: "Klip kaldır" +confirmToUnclipAlreadyClippedNote: "Bu not zaten “{name}” klibinin bir parçasıdır. Bu klipten silmek ister misiniz?" +public: "Halka açık" +private: "Özel" +i18nInfo: "Misskey, gönüllüler tarafından çeşitli dillere çevrilmektedir. {link} adresinden yardımcı olabilirsiniz." +manageAccessTokens: "Manage access tokens" +accountInfo: "Erişim belirteçlerini yönetme" +notesCount: "Not sayısı" +repliesCount: "Gönderilen yanıt sayısı" +renotesCount: "Gönderilen renote sayısı" +repliedCount: "Alınan yanıt sayısı" +renotedCount: "Alınan renot sayısı" +followingCount: "Takip edilen hesap sayısı" +followersCount: "Takipçi sayısı" +sentReactionsCount: "Gönderilen tepki sayısı" +receivedReactionsCount: "Alınan tepki sayısı" +pollVotesCount: "Gönderilen anket oylarının sayısı" +pollVotedCount: "Alınan anket oylarının sayısı" +yes: "Evet" +no: "Hayır" +driveFilesCount: "Sürücü dosya sayısı" +driveUsage: "Sürücü alanı kullanımı" +noCrawle: "Tarayıcı indekslemesini reddet" noCrawleDescription: "Arama motorlarından profilinde, notlarında, sayfalarında vb. dolaşılmamasını ve dizine eklememesini talep et." -clearCache: "Ön belleği temizle" +lockedAccountInfo: "Notunuzun görünürlüğünü “Yalnızca takipçiler” olarak ayarlamadığınız sürece, takipçilerin manuel olarak onaylanmasını gerektirse bile notlarınız herkes tarafından görülebilir." +alwaysMarkSensitive: "Varsayılan olarak hassas olarak işaretle" +loadRawImages: "Küçük resimleri göstermek yerine orijinal resimleri yükle" +disableShowingAnimatedImages: "Animasyonlu görüntüleri oynatmayın" +highlightSensitiveMedia: "Hassas medyayı vurgulayın" +verificationEmailSent: "Doğrulama e-postası gönderildi. Doğrulamayı tamamlamak için e-postadaki bağlantıyı takip edin." +notSet: "Ayarlı değil" +emailVerified: "E-posta adresi doğrulanmıştır." +noteFavoritesCount: "Favori notların sayısı" +pageLikesCount: "Beğenilen Sayfa Sayısı" +pageLikedCount: "Alınan sayfa beğenileri sayısı" +contact: "Alınan Sayfa beğenileri sayısı" +useSystemFont: "Sistemin varsayılan yazı tipini kullanın" +clips: "Klipler" +experimentalFeatures: "Deneysel özellikler" +experimental: "Deneysel" +thisIsExperimentalFeature: "Bu deneysel bir özelliktir. İşlevselliği değişebilir ve amaçlandığı gibi çalışmayabilir." +developer: "Geliştirici" +makeExplorable: "Hesabı “Keşfet” bölümünde görünür hale getirin" +makeExplorableDescription: "Bunu kapatırsanız, hesabınız “Keşfet” bölümünde görünmez." +duplicate: "Çoğalt" +left: "Sol" +center: "Merkez" +wide: "Geniş" +narrow: "Dar" +reloadToApplySetting: "Bu ayar, sayfa yeniden yüklendikten sonra geçerli olacaktır. Şimdi yeniden yüklemek ister misiniz?" +needReloadToApply: "Bunun yansıtılması için yeniden yükleme yapılması gerekir." +needToRestartServerToApply: "Değişikliğin yansıtılması için Misskey'in yeniden başlatılması gerekir." +showTitlebar: "Başlık çubuğunu göster" +clearCache: "Clear cache" onlineUsersCount: "{n} kullanıcı çevrim içi" +nUsers: "{n} Kullanıcı" +nNotes: "{n} Not" +sendErrorReports: "Hata raporları gönder" +sendErrorReportsDescription: "Etkinleştirildiğinde, bir sorun oluştuğunda ayrıntılı hata bilgileri Misskey ile paylaşılacak ve bu da Misskey'in kalitesinin iyileştirilmesine yardımcı olacaktır.\nBu bilgiler arasında işletim sisteminizin sürümü, kullandığınız tarayıcı, Misskey'deki faaliyetleriniz vb. yer alacaktır." +myTheme: "Benim temam" +backgroundColor: "Arka plan rengi" +accentColor: "Vurgu rengi" +textColor: "Metin rengi" +saveAs: "Farklı kaydet..." +advanced: "Gelişmiş" +advancedSettings: "Gelişmiş ayarlar" +value: "Değer" +createdAt: "Oluşturuldu" +updatedAt: "Güncellendi" +saveConfirm: "Değişiklikleri kaydetmek ister misiniz?" +deleteConfirm: "Gerçekten silmek istiyor musunuz?" +invalidValue: "Geçersiz değer." +registry: "Kayıt Defteri" +closeAccount: "Hesabı kapat" +currentVersion: "Şu anki sürüm" +latestVersion: "En yeni sürüm" +youAreRunningUpToDateClient: "Müşteri yazılımınızın en yeni sürümünü kullanıyorsunuz." +newVersionOfClientAvailable: "İstemcinin daha yeni bir sürümü var." +usageAmount: "Kullanım" +capacity: "Kapasite" +inUse: "Kullanılmış" +editCode: "Kodu düzenle" +apply: "Uygula" +receiveAnnouncementFromInstance: "Bu sunucudan bildirimler alın" +emailNotification: "E-posta bildirimleri" +publish: "Yayınla" +inChannelSearch: "Kanalda ara" +useReactionPickerForContextMenu: "Sağ tıklama ile tepki seçiciyi aç" +typingUsers: "{users} yazıyor..." +jumpToSpecifiedDate: "Belirli bir tarihe atla" +showingPastTimeline: "Şu anda eski bir Timeline görüntüleniyor." +clear: "Geri dön" +markAllAsRead: "Tümünü okundu olarak işaretle" +goBack: "Geri" +unlikeConfirm: "Gerçekten beğenini kaldırmak mı istiyorsun?" +fullView: "Tam görünüm" +quitFullView: "Tam ekranı kapat" +addDescription: "Açıklama ekle" +userPagePinTip: "Bireysel notların menüsünden “Profiline sabitle” seçeneğini seçerek notları burada görüntüleyebilirsiniz." +notSpecifiedMentionWarning: "Bu notta, alıcılar arasında yer almayan kullanıcılar hakkında bilgiler bulunmaktadır." +info: "Hakkında" +userInfo: "Kullanıcı bilgileri" +unknown: "Bilinmiyor" +onlineStatus: "Çevrimiçi durumu" +hideOnlineStatus: "Çevrimiçi durumunu gizle" +hideOnlineStatusDescription: "Çevrimiçi durumunuzu gizlemek, arama gibi bazı özelliklerin kullanışlılığını azaltır." +online: "Çevrimiçi" +active: "Aktif" +offline: "Çevrimdışı" +notRecommended: "Tavsiye edilmez" +botProtection: "Bot Koruması" +instanceBlocking: "Blocked/Silenced Instances" +selectAccount: "Hesap seç" +switchAccount: "Hesap değiştir" +enabled: "Aktif" +disabled: "Devre Dışı" +quickAction: "Hızlı eylemler" user: "Kullanıcı" +administration: "Yönetim" +accounts: "Hesaplar" +switch: "Anahtar" +noMaintainerInformationWarning: "Bakımcı bilgileri yapılandırılmamıştır." +noInquiryUrlWarning: "Sorgu URL'si ayarlanmadı" +noBotProtectionWarning: "Bot koruması yapılandırılmamıştır." +configure: "Yeniden Yapılandır" +postToGallery: "Yeni galeri gönderisi oluştur" +postToHashtag: "Bu hashtag'e gönder" +gallery: "Galeri" +recentPosts: "Son gönderiler" +popularPosts: "Popüler gönderiler" +shareWithNote: "Notla paylaş" +ads: "Reklamlar" +expiration: "Son tarih" +startingperiod: "Başla" +memo: "Hatırlatıcı" +priority: "Öncelik" +high: "Yüksek" +middle: "Orta" +low: "Düşük" +emailNotConfiguredWarning: "E-posta adresi ayarlanmamış." +ratio: "Oran" +previewNoteText: "Önizlemeyi göster" +customCss: "Özel CSS" +customCssWarn: "Bu ayar, yalnızca ne işe yaradığını biliyorsanız kullanılmalıdır. Yanlış değerler girilmesi, istemcinin normal şekilde çalışmamasına neden olabilir." global: "Küresel" squareAvatars: "Kare avatarlar" +sent: "Gönderilen" +received: "Alınan" +searchResult: "Arama sonuçları" +hashtags: "Hashtag'ler" +troubleshooting: "Sorun Giderme" +useBlurEffect: "UI'da bulanıklık efektleri kullanın" +learnMore: "Daha fazla bilgi edinin" +misskeyUpdated: "Misskey güncellendi!" +whatIsNew: "Değişiklikleri göster" +translate: "Çevir" +translatedFrom: "{x}'ten çevrilmiştir." +accountDeletionInProgress: "Hesap silme işlemi şu anda devam ediyor." +usernameInfo: "Bu sunucudaki diğer hesaplardan hesabınızı ayıran bir isim. Alfabe (a~z, A~Z), rakamlar (0~9) veya alt çizgi (_) kullanabilirsiniz. Kullanıcı adları daha sonra değiştirilemez." +aiChanMode: "Ai Modu" +devMode: "Geliştirici modu" +keepCw: "İçerik uyarılarını sakla" +pubSub: "Yayın/Abonelik Hesapları" +lastCommunication: "Son iletişim" +resolved: "Çözülmüş" +unresolved: "Çözülmemiş" +breakFollow: "Takipçiyi kaldır" +breakFollowConfirm: "Bu takipçiyi gerçekten silmek istiyor musun?" +itsOn: "Etkin" +itsOff: "Devre Dışı" +on: "Açık" +off: "Kapalı" +emailRequiredForSignup: "Kayıt için E-posta adresi gereklidir." +unread: "Okunmamış" +filter: "Filtre" +controlPanel: "Kontrol Paneli" +manageAccounts: "Hesapları Yönet" +makeReactionsPublic: "Tepki geçmişini herkese açık olarak ayarla" +makeReactionsPublicDescription: "Bu, geçmişteki tüm tepkilerinizin listesini herkese açık hale getirecektir." +classic: "Klasik" +muteThread: "Konuyu sessize al" +unmuteThread: "Konuyu sessizden çıkar" +followingVisibility: "Takip edilenlerin görünürlüğü" +followersVisibility: "Takipçilerin görünürlüğü" +continueThread: "Konunun devamını görüntüle" +deleteAccountConfirm: "Bu, hesabınızı geri dönüşü olmayan bir şekilde silecektir. Devam etmek istiyor musunuz?" +incorrectPassword: "Yanlış şifre." +incorrectTotp: "Tek kullanımlık şifre yanlış veya süresi dolmuş." +voteConfirm: "\"{choice}\" için oyunuzu onaylıyor musunuz?" +hide: "Gizle" +useDrawerReactionPickerForMobile: "Mobil cihazlarda tepki seçiciyi çekmece olarak göster" +welcomeBackWithName: "Hoş geldin, {name}" +clickToFinishEmailVerification: "E-posta doğrulamasını tamamlamak için lütfen [{ok}] düğmesine tıklayın." +overridedDeviceKind: "Cihaz türü" +smartphone: "Akıllı telefon" +tablet: "Tablet" +auto: "Otomatik" +themeColor: "Örnek Ticker Rengi" +size: "Boyut" +numberOfColumn: "Sütun sayısı" searchByGoogle: "Arama" +instanceDefaultLightTheme: "Sunucu genelinde varsayılan açık tema" +instanceDefaultDarkTheme: "Sunucu genelinde varsayılan koyu tema" +instanceDefaultThemeDescription: "Tema kodunu nesne biçiminde girin." +mutePeriod: "Sessiz kalma süresi" +period: "Zaman sınırı" +indefinitely: "Kalıcı olarak" +tenMinutes: "10 dakika" +oneHour: "1 saat" +oneDay: "1 gün" +oneWeek: "1 hafta" +oneMonth: "1 ay" +threeMonths: "3 ay" +oneYear: "1 yıl" +threeDays: "3 gün" +reflectMayTakeTime: "Bunun yansıtılması biraz zaman alabilir." +failedToFetchAccountInformation: "Hesap bilgileri alınamadı" +rateLimitExceeded: "Hız sınırı aşıldı" +cropImage: "Görüntüyü kırp" +cropImageAsk: "Bu görüntüyü kırpmak ister misiniz?" +cropYes: "Kırp" +cropNo: "Olduğu gibi kullanın" file: "Dosyalar" +recentNHours: "Son {n} saat" +recentNDays: "Son {n} gün" +noEmailServerWarning: "E-posta sunucusu yapılandırılmamış." +thereIsUnresolvedAbuseReportWarning: "Çözülmemiş raporlar var." +recommended: "Önerilen" +check: "Kontrol" +driveCapOverrideLabel: "Bu kullanıcının sürücü kapasitesini değiştirin" +driveCapOverrideCaption: "Kapasiteyi varsayılan değere sıfırlamak için 0 veya daha düşük bir değer girin." +requireAdminForView: "Bunu görüntülemek için yönetici hesabıyla oturum açmanız gerekir." +isSystemAccount: "Sistem tarafından oluşturulan ve otomatik olarak işletilen bir hesap." +typeToConfirm: "Onaylamak için lütfen {x} girin." +deleteAccount: "Hesabı sil" +document: "Dokümantasyon" +numberOfPageCache: "Önbelleğe alınmış sayfa sayısı" +numberOfPageCacheDescription: "Bu sayıyı artırmak, kullanıcının cihazında daha fazla bellek kullanımı nedeniyle daha fazla yük oluşturmakla birlikte, kullanıcının rahatlığını artıracaktır." +logoutConfirm: "Çıkmak istediğinizden emin misiniz?" +logoutWillClearClientData: "Oturumu kapatmak, tarayıcıdan istemcinin ayarlarını siler. Tekrar oturum açtığınızda ayarları geri yükleyebilmek için, ayarlarınızın otomatik yedeklenmesini etkinleştirmeniz gerekir." +lastActiveDate: "Son kullanımı" +statusbar: "Durum çubuğu" +pleaseSelect: "Bir seçenek seçin" +reverse: "Tersine" +colored: "Renkli" +refreshInterval: "Güncelleme aralığı" +label: "Etiket" +type: "Tür" +speed: "Hız" +slow: "Yavaş" +fast: "Hızlı" +sensitiveMediaDetection: "Hassas ortamların tespiti" +localOnly: "Yalnızca yerel" +remoteOnly: "Sadece uzaktan" +failedToUpload: "Yükleme başarısız" +cannotUploadBecauseInappropriate: "Bu dosya, dosyanın bazı kısımlarının uygunsuz olabileceği tespit edildiği için yüklenemiyor." +cannotUploadBecauseNoFreeSpace: "Sürücü kapasitesi yetersiz olduğu için yükleme başarısız oldu." +cannotUploadBecauseExceedsFileSizeLimit: "Bu dosya, dosya boyutu sınırını aştığı için yüklenemiyor." +cannotUploadBecauseUnallowedFileType: "Yetkisiz dosya türü nedeniyle yükleme yapılamıyor." +beta: "Beta" +enableAutoSensitive: "Otomatik olarak hassas olarak işaretleme" +enableAutoSensitiveDescription: "Mümkün olduğunda, Makine Öğrenimi yoluyla hassas ortamların otomatik olarak algılanmasını ve işaretlenmesini sağlar. Bu seçenek devre dışı bırakılmış olsa bile, örnek genelinde etkinleştirilebilir." +activeEmailValidationDescription: "E-posta adreslerinin daha sıkı bir şekilde doğrulanmasını sağlar. Bu, tek kullanımlık adreslerin kontrol edilmesini ve adresin gerçekten iletişim kurulabilir olup olmadığının kontrol edilmesini içerir. İşaretlenmediğinde, yalnızca e-postanın biçimi doğrulanır." +navbar: "Gezinti çubuğu" +shuffle: "Karıştır" +account: "Hesap" +move: "Taşı" pushNotification: "Push bildirimleri" subscribePushNotification: "Push bildirimlerini etkinleştir" unsubscribePushNotification: "Push bildirimlerini kapat" pushNotificationAlreadySubscribed: "Push bildirimleri zaten açık" pushNotificationNotSupported: "Push bildirimleri sunucu veya tarayıcı tarafından desteklenmiyor" +sendPushNotificationReadMessage: "Okunduktan sonra push bildirimlerini silin" +sendPushNotificationReadMessageCaption: "Bu, cihazınızın güç tüketimini artırabilir." +windowMaximize: "Maksimize et" +windowMinimize: "Minimize et" +windowRestore: "Geri yükle" +caption: "Alternatif metin" +loggedInAsBot: "Şu anda bot olarak oturum açmış durumdasınız." +tools: "Araçlar" +cannotLoad: "Yüklenemiyor" +numberOfProfileView: "Profil görüntülemeleri" +like: "Beğen" +unlike: "Beğenme" +numberOfLikes: "Beğeniler" +show: "Göster" +neverShow: "Bir daha gösterme" +remindMeLater: "Belki daha sonra" +didYouLikeMisskey: "Misskey'i sevdiniz mi?" +pleaseDonate: "{host} ücretsiz yazılım Misskey kullanmaktadır. Misskey'in geliştirilmesinin devam edebilmesi için bağışlarınızı çok takdir ederiz!" +correspondingSourceIsAvailable: "İlgili kaynak kodu {anchor} adresinde mevcuttur." +roles: "Roller" +role: "Rol" noRole: "Rol bulunamadı" +normalUser: "Normal kullanıcı" +undefined: "Tanımlanmamış" +assign: "Atama" +unassign: "Atamayı kaldır" color: "Renk" +manageCustomEmojis: "Özel Emojileri Yönet" +manageAvatarDecorations: "Avatar süslemelerini yönet" +youCannotCreateAnymore: "Oluşturma sınırına ulaştınız." +cannotPerformTemporary: "Geçici olarak kullanılamıyor" +cannotPerformTemporaryDescription: "Bu işlem, yürütme sınırını aştığı için geçici olarak gerçekleştirilememektedir. Lütfen bir süre bekleyin ve tekrar deneyin." +invalidParamError: "Geçersiz parametreler" +invalidParamErrorDescription: "İstek parametreleri geçersiz. Bu durum genellikle bir hata nedeniyle oluşur, ancak boyut sınırlarını aşan girdiler veya benzer nedenlerden de kaynaklanabilir." +permissionDeniedError: "İşlem reddedildi" +permissionDeniedErrorDescription: "Bu hesap bu işlemi gerçekleştirmek için gerekli izne sahip değildir." +preset: "Ön ayar" +selectFromPresets: "Ön ayarlardan seçim yapın" +achievements: "Başarılar" +gotInvalidResponseError: "Geçersiz sunucu yanıtı" +gotInvalidResponseErrorDescription: "Sunucu erişilemez durumda olabilir veya bakım çalışması yapılmaktadır. Lütfen daha sonra tekrar deneyin." +thisPostMayBeAnnoying: "Bu not başkalarını rahatsız edebilir." +thisPostMayBeAnnoyingHome: "Ana zaman çizelgesine gönder" +thisPostMayBeAnnoyingCancel: "İptal" +thisPostMayBeAnnoyingIgnore: "Yine de gönder" +collapseRenotes: "Zaten gördüğünüz notları daraltın" +collapseRenotesDescription: "Daha önce tepki verdiğiniz veya yeniden not aldığınız notları daraltın." +internalServerError: "İç Sunucu Hatası" +internalServerErrorDescription: "Sunucu beklenmedik bir hatayla karşılaştı." +copyErrorInfo: "Hata ayrıntılarını kopyala" +joinThisServer: "Bu örnekte kaydolun" +exploreOtherServers: "Başka bir örnek arayın" +letsLookAtTimeline: "Timeline'a bir göz atın" +disableFederationConfirm: "Federasyonu gerçekten devre dışı bırakmak mı?" +disableFederationConfirmWarn: "Federasyondan ayrılsa bile, aksi belirtilmedikçe gönderiler herkese açık olmaya devam edecektir. Genellikle bunu yapmanız gerekmez." +disableFederationOk: "Devre Dışı" +invitationRequiredToRegister: "Bu etkinlik davetle katılımlıdır. Geçerli bir davet kodu girerek kaydolmanız gerekir." +emailNotSupported: "Bu örnek, E-Posta göndermeyi desteklemiyor." +postToTheChannel: "Kanalına gönder" +cannotBeChangedLater: "Bu daha sonra değiştirilemez." +reactionAcceptance: "Tepki Kabulü" +likeOnly: "Sadece beğeniler" +likeOnlyForRemote: "Tüm (Yalnızca uzak örnekler için beğeniler)" +nonSensitiveOnly: "Hassas olmayanlar için" +nonSensitiveOnlyForLocalLikeOnlyForRemote: "Yalnızca hassas olmayanlar (Yalnızca uzaktan beğeniler)" +rolesAssignedToMe: "Bana atanan roller" +resetPasswordConfirm: "Şifrenizi gerçekten sıfırlamak istiyor musunuz?" +sensitiveWords: "Hassas kelimeler" +sensitiveWordsDescription: "Yapılandırılan kelimelerden herhangi birini içeren tüm notların görünürlüğü otomatik olarak “Ana Sayfa” olarak ayarlanacaktır. Satır sonları ile ayırarak birden fazla not listeleyebilirsiniz." +sensitiveWordsDescription2: "Boşluk kullanmak AND ifadeleri oluşturur ve anahtar kelimeleri eğik çizgi ile çevrelemek bunları düzenli ifadeye dönüştürür." +prohibitedWords: "Yasaklanmış kelimeler" +prohibitedWordsDescription: "Belirlenen kelime(ler)i içeren bir not göndermeye çalışıldığında hata verir. Birden fazla kelime, yeni satırla ayrılmış olarak ayarlanabilir." +prohibitedWordsDescription2: "Boşluk kullanmak AND ifadeleri oluşturur ve anahtar kelimeleri eğik çizgi ile çevrelemek bunları düzenli ifadeye dönüştürür." +hiddenTags: "Gizli hashtag'ler" +hiddenTagsDescription: "Trend listesinde gösterilmeyecek etiketleri seçin.\nSatırlarla birden fazla etiket kaydedilebilir." +notesSearchNotAvailable: "Not arama özelliği kullanılamıyor." +license: "Lisans" +unfavoriteConfirm: "Gerçekten favorilerden kaldırmak istiyor musunuz?" +myClips: "Kliplerim" +drivecleaner: "Sürücü Temizleyici" +retryAllQueuesNow: "Tüm kuyrukları yeniden çalıştırmayı deneyin" +retryAllQueuesConfirmTitle: "Gerçekten hepsini tekrar denemek istiyor musunuz?" +retryAllQueuesConfirmText: "Bu, sunucu yükünü geçici olarak artıracaktır." +enableChartsForRemoteUser: "Uzak kullanıcı veri grafikleri oluşturun" +enableChartsForFederatedInstances: "Uzak örnek veri grafikleri oluşturun" +enableStatsForFederatedInstances: "Uzak sunucu istatistiklerini alın" +showClipButtonInNoteFooter: "Not eylem menüsüne “Klip” ekle" +reactionsDisplaySize: "Tepki ekran boyutu" +limitWidthOfReaction: "Tepkilerin maksimum genişliğini sınırlayın ve bunları küçültülmüş boyutta görüntüleyin." +noteIdOrUrl: "Not ID veya URL" +video: "Video" +videos: "Videolar" +audio: "Ses" +audioFiles: "Ses Dosyası" +dataSaver: "Veri Tasarrufu" +accountMigration: "Hesap Taşıma" +accountMoved: "Bu kullanıcı yeni bir hesaba taşındı:" +accountMovedShort: "Bu hesap taşınmıştır." +operationForbidden: "İşlem yasak" +forceShowAds: "Her zaman reklamları göster" addMemo: "Kısa not ekle" +editMemo: "Kısa not düzenle" +reactionsList: "Tepkiler" +renotesList: "Renote'lar" +notificationDisplay: "Bildirimler" +leftTop: "Sol üst" +rightTop: "Sağ üst" +leftBottom: "Sol alt" +rightBottom: "Sağ alt" +stackAxis: "Yığınlama yönü" +vertical: "Dikey" +horizontal: "Yatay" +position: "Pozisyon" +serverRules: "Sunucu kuralları" +pleaseConfirmBelowBeforeSignup: "Bu sunucuya kaydolmak için aşağıdakileri gözden geçirip kabul etmelisiniz:" +pleaseAgreeAllToContinue: "Devam etmek için yukarıdaki tüm alanları kabul etmelisiniz." +continue: "Devam et" +preservedUsernames: "Rezerve edilmiş kullanıcı adları" +preservedUsernamesDescription: "Rezervasyon yapmak için kullanıcı adlarını satır sonlarıyla ayırarak listeleyin. Bu kullanıcı adları normal hesap oluşturma sırasında kullanılamaz hale gelir, ancak yöneticiler tarafından manuel olarak hesap oluşturmak için kullanılabilir. Bu kullanıcı adlarını kullanan mevcut hesaplar etkilenmez." +createNoteFromTheFile: "Bu dosyadan not oluşturun" +archive: "Arşiv" +archived: "Arşivle" +unarchive: "Arşivden çıkar" +channelArchiveConfirmTitle: "Gerçekten {name} arşivlemek mi istiyorsunuz?" +channelArchiveConfirmDescription: "Arşivlenmiş bir kanal artık kanal listesinde veya arama sonuçlarında görünmeyecektir. Ayrıca, bu kanala yeni gönderiler eklenemeyecektir." +thisChannelArchived: "Bu kanal arşivlenmiştir." +displayOfNote: "Not ekranı" +initialAccountSetting: "Profil ayarları" +youFollowing: "Takip edildi" +preventAiLearning: "Makine Öğreniminde (Üretken Ai) kullanımını reddet" +preventAiLearningDescription: "Tarayıcılardan, makine öğrenimi (Tahminsel / Üretken Ai) veri kümelerinde yayınlanan metin veya görsel materyalleri vb. kullanmamalarını talep eder. Bu, ilgili içeriğe “noai” HTML-Response bayrağı eklenerek gerçekleştirilir. Ancak, bu bayrakla tam bir önleme sağlanamaz, çünkü bu bayrak basitçe göz ardı edilebilir." +options: "Seçenekler" +specifyUser: "Belirli kullanıcı" +lookupConfirm: "Yukarı bakmak ister misiniz?" +openTagPageConfirm: "Bir hashtag sayfası açmak ister misiniz?" +specifyHost: "Belirli ana bilgisayar" +failedToPreviewUrl: "Önizleme yapılamadı" +update: "Güncelle" +rolesThatCanBeUsedThisEmojiAsReaction: "Bu emojiyi tepki olarak kullanabileceğiniz roller" +rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "Herhangi bir rol belirtilmezse, herkes bu emojiyi tepki olarak kullanabilir." +rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn: "Bu roller herkese açık olmalıdır." +cancelReactionConfirm: "Tepkinizi gerçekten silmek istiyor musunuz?" +changeReactionConfirm: "Tepkinizi gerçekten değiştirmek istiyor musunuz?" +later: "Daha sonra" +goToMisskey: "Misskey'e" +additionalEmojiDictionary: "Ek emoji sözlükleri" +installed: "Yüklendi" +branding: "Markalaşma" +enableServerMachineStats: "Sunucu donanım istatistiklerini yayınla" +enableIdenticonGeneration: "Kullanıcı identicon oluşturmayı etkinleştir" +turnOffToImprovePerformance: "Devre dışı bırakma, daha yüksek performansa yol açabilir." +createInviteCode: "Davet Kodu oluştur" +createWithOptions: "Seçeneklerle oluştur" +createCount: "Davet sayısı" +inviteCodeCreated: "Davet oluşturuldu" +inviteLimitExceeded: "Oluşturulabilecek davetiyelerin maksimum sayısına ulaştınız." +createLimitRemaining: "{limit} Davet limiti kaldı" +inviteLimitResetCycle: "Bu limit {time} tarihinde {limit} değerine sıfırlanacaktır." +expirationDate: "Son kullanma tarihi" +noExpirationDate: "Son kullanma tarihi yok" +inviteCodeUsedAt: "Kullanılan davet kodu" +registeredUserUsingInviteCode: "Kullanılan davet" +waitingForMailAuth: "E-Posta doğrulama beklemede" +inviteCodeCreator: "Davet oluşturuldu" +usedAt: "Kullanıldığı yer" +unused: "Kullanılmamış" +used: "Kullanılmış" +expired: "Süresi dolmuş" +doYouAgree: "Katılıyor musunuz?" +beSureToReadThisAsItIsImportant: "Lütfen bu önemli bilgileri okuyun." +iHaveReadXCarefullyAndAgree: "“{x}” metnini okudum ve kabul ediyorum." +dialog: "Diyalog" icon: "Avatar" -replies: "yanıt" -renotes: "vazgeçme" +forYou: "Senin için" +currentAnnouncements: "Güncel duyurular" +pastAnnouncements: "Geçmiş duyurular" +youHaveUnreadAnnouncements: "Okunmamış duyurular var." +useSecurityKey: "Güvenlik anahtarınızı veya şifrenizi kullanmak için lütfen tarayıcınızın veya cihazınızın talimatlarını izleyin." +replies: "Yanıtla" +renotes: "Renote'lar" +loadReplies: "Yanıtları göster" +loadConversation: "Konuşmayı göster" +pinnedList: "Sabitlenmiş liste" +keepScreenOn: "Ekranı açık tut" +verifiedLink: "Bağlantı sahipliği doğrulanmıştır." +notifyNotes: "Yeni notlar hakkında bildirimde bulun" +unnotifyNotes: "Yeni notlar hakkında bildirim almayı durdur" +authentication: "Kimlik doğrulama" +authenticationRequiredToContinue: "Devam etmek için lütfen kimlik doğrulaması yapın." +dateAndTime: "Zaman damgası" +showRenotes: "Renot'ları göster" +edited: "Düzenlendi" +notificationRecieveConfig: "Bildirim Ayarları" +mutualFollow: "Karşılıklı takip" +followingOrFollower: "Takip eden veya takipçi" +fileAttachedOnly: "Yalnızca dosya içeren notlar" +showRepliesToOthersInTimeline: "Timeline'da diğer kişilere verilen yanıtları göster" +hideRepliesToOthersInTimeline: "Timeline'dan diğer kişilerin yanıtlarını gizle" +showRepliesToOthersInTimelineAll: "Timeline'da takip ettiğiniz herkesin diğerlerine verdiği yanıtları göster" +hideRepliesToOthersInTimelineAll: "Timeline'de takip ettiğiniz herkesten diğer kişilere verilen yanıtları gizleyin" +confirmShowRepliesAll: "Bu işlem geri alınamaz. Takip ettiğiniz herkesin yanıtlarını zaman çizelgenizde diğer kullanıcılara göstermek istiyor musunuz?" +confirmHideRepliesAll: "Bu işlem geri alınamaz. Şu anda takip ettiğiniz tüm kullanıcıların yanıtlarını zaman tünelinde gerçekten göstermeyecek misiniz?" +externalServices: "Dış Hizmetler" +sourceCode: "Kaynak kodu" +sourceCodeIsNotYetProvided: "Kaynak kodu henüz mevcut değildir. Bu sorunu gidermek için yöneticiyle iletişime geçin." +repositoryUrl: "Depo URL'si" +repositoryUrlDescription: "Misskey'i olduğu gibi kullanıyorsanız (kaynak kodunda herhangi bir değişiklik yapmadan), https://github.com/misskey-dev/misskey adresini girin." +repositoryUrlOrTarballRequired: "Bir depo yayınlamadıysanız, bunun yerine bir tarball sağlamalısınız. Daha fazla bilgi için .config/example.yml dosyasına bakın." +feedback: "Feedback" +feedbackUrl: "Geri Bildirim URL'si" +impressum: "Yayıncı Bilgileri" +impressumUrl: "Yayıncı Bilgileri URL'si" +impressumDescription: "Almanya gibi bazı ülkelerde, ticari web sitelerinde işletmeci iletişim bilgilerinin (Yayıncı) yer alması yasal olarak zorunludur." +privacyPolicy: "Gizlilik Politikası" +privacyPolicyUrl: "Gizlilik Politikası URL'si" +tosAndPrivacyPolicy: "Hizmet Şartları ve Gizlilik Politikası" +avatarDecorations: "Avatar süslemeleri" +attach: "Ek" +detach: "Kaldır" +detachAll: "Tümünü Kaldır" +angle: "Açı" +flip: "Çevir" +showAvatarDecorations: "Avatar süslemelerini göster" +releaseToRefresh: "Yenilemek için serbest bırak" +refreshing: "Yenileniyor..." +pullDownToRefresh: "Yenilemek için aşağı çekin" +useGroupedNotifications: "Gruplandırılmış bildirimleri göster" +signupPendingError: "E-posta adresini doğrulamada bir sorun oluştu. Bağlantının süresi dolmuş olabilir." +cwNotationRequired: "“İçeriği gizle” seçeneği etkinleştirilirse, bir açıklama sağlanmalıdır." +doReaction: "Tepki ekle" +code: "Kod" +reloadRequiredToApplySettings: "Ayarları uygulamak için yeniden yükleme gereklidir." +remainingN: "Kalan: {n}" +overwriteContentConfirm: "Mevcut içeriği üzerine yazmak istediğinizden emin misiniz?" +seasonalScreenEffect: "Mevsimsel Ekran Efekti" +decorate: "Süsle" +addMfmFunction: "MFM ekle" +enableQuickAddMfmFunction: "Gelişmiş MFM seçiciyi göster" +bubbleGame: "Kabarcık Oyunu" +sfx: "Ses Efektleri" +soundWillBePlayed: "Ses çalınacaktır" +showReplay: "Tekrarı izle" +replay: "Tekrar oynat" +replaying: "Tekrar gösteriliyor" +endReplay: "Tekrardan çık" +copyReplayData: "Tekrar oynatma verilerini kopyala" +ranking: "Sıralama" +lastNDays: "Son {n} gün" +backToTitle: "Başlığa geri dön" +hemisphere: "Yaşadığınız yer" +withSensitive: "Hassas dosyalara notlar ekleyin" +userSaysSomethingSensitive: "{name} tarafından gönderilen mesaj hassas içerik barındırmaktadır." +enableHorizontalSwipe: "Kaydırarak sekmeler arasında geçiş yapın" +loading: "Yükleniyor" +surrender: "İptal" +gameRetry: "Tekrar dene" +notUsePleaseLeaveBlank: "Kullanılmıyorsa boş bırakın." +useTotp: "Tek Kullanımlık Şifreyi Girin" +useBackupCode: "Yedek kodları kullanın" +launchApp: "Uygulamayı başlatın" +useNativeUIForVideoAudioPlayer: "Video ve ses oynatımı için tarayıcı kullanıcı arayüzünü kullan" +keepOriginalFilename: "Orijinal dosya adını koru" +keepOriginalFilenameDescription: "Bu ayarı kapatırsanız, dosya yüklediğinizde dosya adları otomatik olarak rastgele bir dizeyle değiştirilecektir." +noDescription: "Açıklama yok" +alwaysConfirmFollow: "Takip ederken her zaman onaylayın" +inquiry: "İletişim" +tryAgain: "Lütfen daha sonra tekrar deneyin." +confirmWhenRevealingSensitiveMedia: "Confirm when revealing sensitive media" +sensitiveMediaRevealConfirm: "Bu hassas bir medya olabilir. Açıklamakta emin misiniz?" +createdLists: "Oluşturulan listeler" +createdAntennas: "Oluşturulan antenler" +fromX: "{x}'den" +genEmbedCode: "Gömme kodu oluştur" +noteOfThisUser: "Bu kullanıcının notları" +clipNoteLimitExceeded: "Bu klibe daha fazla not eklenemez." +performance: "Başarım" +modified: "Değiştirilmiş" +discard: "At" +thereAreNChanges: "{n} değişiklik var." +signinWithPasskey: "Geçiş Anahtarı ile giriş yapın" +unknownWebAuthnKey: "Bilinmeyen Geçiş Anahtarı" +passkeyVerificationFailed: "Geçiş Anahtarı doğrulama başarısız oldu." +passkeyVerificationSucceededButPasswordlessLoginDisabled: "Geçiş anahtarı doğrulaması başarılı oldu ancak şifresiz oturum açma devre dışıdır." +messageToFollower: "Takipçilere mesaj" +target: "Hedef" +testCaptchaWarning: "Bu işlev CAPTCHA testi amacıyla tasarlanmıştır.\nÜretim ortamında kullanmayın." +prohibitedWordsForNameOfUser: "Kullanıcı adları için yasaklanmış kelimeler" +prohibitedWordsForNameOfUserDescription: "Bu listedeki dizilerden herhangi biri kullanıcının adında yer alıyorsa, ad reddedilecektir. Moderatör ayrıcalıklarına sahip kullanıcılar bu kısıtlamadan etkilenmez." +yourNameContainsProhibitedWords: "Adınız yasaklanmış kelimeler içeriyor" +yourNameContainsProhibitedWordsDescription: "Bu adı kullanmak istiyorsanız, lütfen sunucu yöneticinizle iletişime geçin." +thisContentsAreMarkedAsSigninRequiredByAuthor: "Yazar tarafından görüntülemek için oturum açma gerektirir." +lockdown: "Karantina" +pleaseSelectAccount: "Hesap seçin" +availableRoles: "Mevcut roller" +acknowledgeNotesAndEnable: "Önlemleri anladıktan sonra açın." +federationSpecified: "Bu sunucu, beyaz liste federasyonunda çalıştırılmaktadır. Yönetici tarafından belirlenen sunucular dışında diğer sunucularla etkileşim kurmak yasaktır." +federationDisabled: "Bu sunucuda federasyon devre dışıdır. Diğer sunuculardaki kullanıcılarla etkileşim kuramazsınız." +draft: "Taslaklar" +confirmOnReact: "Tepki verirken onaylayın" +reactAreYouSure: "“{emoji}” tepkisini eklemek ister misiniz?" +markAsSensitiveConfirm: "Bu medyayı hassas olarak ayarlamak ister misiniz?" +unmarkAsSensitiveConfirm: "Bu medya için hassas işaretini kaldırmak ister misiniz?" +preferences: "Tercihler" +accessibility: "Erişilebilirlik" +preferencesProfile: "Tercihler profili" +copyPreferenceId: "Tercih ID kopyala" +resetToDefaultValue: "Varsayılana dön" +overrideByAccount: "Hesap tarafından geçersiz kılma" +untitled: "İsimsiz" +noName: "İsim yok" +skip: "Atla" +restore: "Geri yükle" +syncBetweenDevices: "Cihazlar arasında senkronizasyon" +preferenceSyncConflictTitle: "Yapılandırılan değer sunucuda mevcuttur." +preferenceSyncConflictText: "Senkronizasyon etkin ayarlar, değerlerini sunucuya kaydeder. Ancak, sunucuda mevcut değerler bulunmaktadır. Hangi değerleri üzerine yazmak istersiniz?" +preferenceSyncConflictChoiceMerge: "Birleştir" +preferenceSyncConflictChoiceServer: "Sunucuda yapılandırılan değer" +preferenceSyncConflictChoiceDevice: "Cihazda yapılandırılan değer" +preferenceSyncConflictChoiceCancel: "Senkronizasyonu etkinleştirmeyi iptal et" +paste: "Yapıştır" +emojiPalette: "Emoji paleti" +postForm: "Gönderim formu" +textCount: "Karakter sayısı" +information: "Hakkında" +chat: "Sohbet" +migrateOldSettings: "Eski istemci ayarlarını taşıma" +migrateOldSettings_description: "Bu işlem otomatik olarak yapılmalıdır, ancak herhangi bir nedenle geçiş başarısız olursa, geçiş işlemini manuel olarak kendiniz başlatabilirsiniz. Mevcut yapılandırma bilgileri üzerine yazılacaktır." +compress: "Sıkıştır" +right: "Sağ" +bottom: "Alt" +top: "Üst" +embed: "Göm" +settingsMigrating: "Ayarlar taşınıyor, lütfen bir dakika bekleyin... (Daha sonra Ayarlar→Diğerler→Eski ayarları taşı seçeneğine giderek manuel olarak da taşıyabilirsiniz)" +readonly: "Sadece okuma" +goToDeck: "Güverteye Dön" +federationJobs: "Federasyon İşleri" +driveAboutTip: "Drive'da, geçmişte yüklediğiniz dosyaların bir listesi görüntülenir.
\nBu dosyaları notlara eklerken yeniden kullanabilir veya daha sonra paylaşmak üzere önceden yükleyebilirsiniz.
\nBir dosyayı silerken dikkatli olun, çünkü kullanıldığı her yerde (notlar, sayfalar, avatarlar, afişler vb.) mevcut olmayacaktır.
\nAyrıca dosyalarınızı düzenlemek için klasörler oluşturabilirsiniz." +scrollToClose: "Kaydırarak kapatın" +advice: "Tavsiye" +realtimeMode: "Gerçek zamanlı mod" +turnItOn: "Aç" +turnItOff: "Kapat" +emojiMute: "Emoji ses kapat" +emojiUnmute: "Emoji ses aç" +muteX: "Sessiz {x}" +unmuteX: "Sesi aç {x}" +abort: "İptal" +tip: "İpuçları & Püf Noktaları" +redisplayAllTips: "Tüm “İpuçları & Püf Noktaları” tekrar göster" +hideAllTips: "Tüm “İpuçları & Püf Noktaları” gizle" +defaultImageCompressionLevel: "Varsayılan görüntü sıkıştırma düzeyi" +defaultImageCompressionLevel_description: "Düşük seviye görüntü kalitesini korur ancak dosya boyutunu artırır.
Yüksek seviye dosya boyutunu azaltır ancak görüntü kalitesini düşürür." +inMinutes: "Dakika(lar)" +inDays: "Gün(ler)" +safeModeEnabled: "Güvenli mod etkinleştirildi" +pluginsAreDisabledBecauseSafeMode: "Güvenli mod etkinleştirildiği için tüm eklentiler devre dışı bırakılmıştır." +customCssIsDisabledBecauseSafeMode: "Güvenli mod etkin olduğu için özel CSS uygulanmıyor." +themeIsDefaultBecauseSafeMode: "Güvenli mod etkinken, varsayılan tema kullanılır. Güvenli modu devre dışı bırakmak bu değişiklikleri geri alır." +_order: + newest: "Önce yeni" + oldest: "Önce eski" _chat: - home: "Ana sayfa" + noMessagesYet: "Henüz mesaj yok" + newMessage: "Yeni mesaj" + individualChat: "Özel Sohbet" + individualChat_description: "Başka bir kişiyle özel sohbet edin." + roomChat: "Sohbet Odası" + roomChat_description: "Birden fazla kişinin katılabileceği bir sohbet odası.\nÖzel sohbetlere izin vermeyen kişileri de davet edebilirsin, ancak davetini kabul etmeleri gerekir." + createRoom: "Oda Oluştur" + inviteUserToChat: "Kullanıcıları sohbete davet edin" + yourRooms: "Oluşturulan odalar" + joiningRooms: "Katıldığı odalar" + invitations: "Davet" + noInvitations: "Davet yok" + history: "Tarih" + noHistory: "Geçmiş bilgisi mevcut değil" + noRooms: "Oda bulunamadı" + inviteUser: "Kullanıcıları Davet Et" + sentInvitations: "Gönderilen Davetler" + join: "Katıl" + ignore: "Yoksay" + leave: "Odadan çık" + members: "Üyeler" + searchMessages: "Mesajları ara" + home: "Ana Sayfa" + send: "Gönder" + newline: "Yeni satır" + muteThisRoom: "Sessiz oda" + deleteRoom: "Odayı sil" + chatNotAvailableForThisAccountOrServer: "Bu sunucuda veya bu hesapta sohbet özelliği etkin değildir." + chatIsReadOnlyForThisAccountOrServer: "Bu sunucuda veya bu hesapta sohbet okunur modundadır. Yeni mesaj yazamaz veya sohbet odası oluşturamaz/katılamazsınız." + chatNotAvailableInOtherAccount: "Sohbet işlevi diğer kullanıcı için devre dışı bırakılmıştır." + cannotChatWithTheUser: "Bu kullanıcıyla sohbet başlatılamıyor." + cannotChatWithTheUser_description: "Sohbet kullanılamıyor veya karşı taraf sohbeti etkinleştirmedi." + youAreNotAMemberOfThisRoomButInvited: "Bu odanın katılımcısı değilsiniz, ancak bir davet aldınız. Lütfen daveti kabul ederek katılın." + doYouAcceptInvitation: "Daveti kabul ediyor musunuz?" + chatWithThisUser: "Kullanıcıyla sohbet et" + thisUserAllowsChatOnlyFromFollowers: "Bu kullanıcı yalnızca takipçilerinden gelen sohbetleri kabul eder." + thisUserAllowsChatOnlyFromFollowing: "Bu kullanıcı, yalnızca takip ettiği kullanıcılardan gelen sohbetleri kabul eder." + thisUserAllowsChatOnlyFromMutualFollowing: "Bu kullanıcı, yalnızca karşılıklı takip eden kullanıcıların sohbetlerini kabul eder." + thisUserNotAllowedChatAnyone: "Bu kullanıcı kimseyle sohbet etmiyor." + chatAllowedUsers: "Sohbet etmesine izin verilecek kişiler" + chatAllowedUsers_note: "Bu ayardan bağımsız olarak, sohbet mesajı gönderdiğiniz herkesle sohbet edebilirsiniz." + _chatAllowedUsers: + everyone: "Herkes" + followers: "Sadece takipçileriniz" + following: "Only users you are following" + mutual: "Sadece takip ettiğiniz kullanıcılar" + none: "Kimse" +_emojiPalette: + palettes: "Palet" + enableSyncBetweenDevicesForPalettes: "Cihazlar arasında palet senkronizasyonunu etkinleştir" + paletteForMain: "Ana palet" + paletteForReaction: "Reaksiyon paleti" +_settings: + driveBanner: "Sürücüyü yönetebilir ve yapılandırabilir, kullanımı kontrol edebilir ve dosya yükleme ayarlarını yapılandırabilirsiniz." + pluginBanner: "Eklentilerle istemci özelliklerini genişletebilirsiniz. Eklentileri yükleyebilir, ayrı ayrı yapılandırabilir ve yönetebilirsiniz." + notificationsBanner: "Sunucudan gelen bildirimlerin türlerini ve kapsamını ve push bildirimlerini yapılandırabilirsiniz." + api: "API" + webhook: "Webhook" + serviceConnection: "Hizmet entegrasyonu" + serviceConnectionBanner: "Dış uygulamalar veya hizmetlerle entegrasyon sağlamak için erişim belirteçlerini ve Webhook'ları yönetin ve yapılandırın." + accountData: "Hesap verileri" + accountDataBanner: "Hesap verilerini yönetmek için dışa ve içe aktarma." + muteAndBlockBanner: "İçeriği gizlemek ve belirli kullanıcıların eylemlerini kısıtlamak için ayarları yapılandırabilir ve yönetebilirsiniz." + accessibilityBanner: "Müşterinin görsellerini ve davranışını kişiselleştirebilir ve kullanımı optimize etmek için ayarları yapılandırabilirsiniz." + privacyBanner: "Hesap gizliliği ile ilgili ayarları, örneğin içerik görünürlüğü, bulunabilirlik ve takip onayı gibi ayarları yapılandırabilirsiniz." + securityBanner: "Şifre, oturum açma yöntemleri, kimlik doğrulama uygulamaları ve Passkeys gibi hesap güvenliği ile ilgili ayarları yapılandırabilirsiniz." + preferencesBanner: "İstediğiniz şekilde istemcinin genel davranışını yapılandırabilirsiniz." + appearanceBanner: "İstemcinin görünüm ve ekran ayarlarını tercihlerinize göre yapılandırabilirsiniz." + soundsBanner: "İstemcide oynatma için ses ayarlarını yapılandırabilirsiniz." + timelineAndNote: "Timeline ve not" + makeEveryTextElementsSelectable: "Tüm metin öğelerini seçilebilir hale getirin" + makeEveryTextElementsSelectable_description: "Bunu etkinleştirmek bazı durumlarda kullanılabilirliği azaltabilir." + useStickyIcons: "Kaydırma sırasında simgeleri takip et" + enableHighQualityImagePlaceholders: "Yüksek kaliteli görüntüler için yer tutucuları göster" + uiAnimations: "UI Animasyonları" + showNavbarSubButtons: "Navigasyon çubuğunda alt düğmeleri göster" + ifOn: "Açıkken" + ifOff: "Kapalıyken" + enableSyncThemesBetweenDevices: "Yüklü temaları cihazlar arasında senkronize edin" + enablePullToRefresh: "Yenilemek için çekin" + enablePullToRefresh_description: "Fareyi kullanırken, kaydırma tekerleğini basılı tutarken sürükleyin." + realtimeMode_description: "Sunucu ile bağlantı kurar ve içeriği gerçek zamanlı olarak günceller. Bu, trafik ve bellek tüketimini artırabilir." + contentsUpdateFrequency: "İçerik erişim sıklığı" + contentsUpdateFrequency_description: "Değer ne kadar yüksek olursa içerik o kadar sık güncellenir, ancak bu durum performansı düşürür ve trafik ile bellek tüketimini artırır." + contentsUpdateFrequency_description2: "Gerçek zamanlı mod açık olduğunda, bu ayardan bağımsız olarak içerik gerçek zamanlı olarak güncellenir." + showUrlPreview: "URL önizlemesini göster" + showAvailableReactionsFirstInNote: "Mevcut tepkileri en üstte göster." + _chat: + showSenderName: "Gönderenin adını göster" + sendOnEnter: "Enter tuşuna basarak gönderin" +_preferencesProfile: + profileName: "Profil adı" + profileNameDescription: "Bu cihazı tanımlayan bir ad belirleyin." + profileNameDescription2: "Örnek: “Ana bilgisayar”, “Akıllı telefon”" + manageProfiles: "Profilleri Yönet" +_preferencesBackup: + autoBackup: "Otomatik yedekleme" + restoreFromBackup: "Yedeklemeden geri yükle" + noBackupsFoundTitle: "Yedekleme bulunamadı" + noBackupsFoundDescription: "Otomatik olarak oluşturulan yedekleme bulunamadı, ancak manuel olarak bir yedekleme dosyası kaydettiyseniz, bunu içe aktarabilir ve geri yükleyebilirsiniz." + selectBackupToRestore: "Geri yüklemek için bir yedekleme seçin" + youNeedToNameYourProfileToEnableAutoBackup: "Otomatik yedeklemeyi etkinleştirmek için bir profil adı ayarlanmalıdır." + autoPreferencesBackupIsNotEnabledForThisDevice: "Bu cihazda ayarların otomatik yedeklemesi etkinleştirilmemiştir." + backupFound: "Ayarların yedeği bulundu" +_accountSettings: + requireSigninToViewContents: "İçeriği görüntülemek için oturum açmanız gerekir." + requireSigninToViewContentsDescription1: "Oluşturduğunuz tüm notları ve diğer içeriği görüntülemek için oturum açmanız gerekir. Bu, tarayıcıların bilgilerinizi toplamasına engel olacaktır." + requireSigninToViewContentsDescription2: "İçerik, URL önizlemelerinde (OGP), web sayfalarına gömülü olarak veya not alıntıları desteklemeyen sunucularda görüntülenmeyecektir." + requireSigninToViewContentsDescription3: "Bu kısıtlamalar, diğer uzak sunuculardan gelen birleştirilmiş içerik için geçerli olmayabilir." + makeNotesFollowersOnlyBefore: "Geçmiş notların yalnızca takipçilere gösterilmesini sağlayın" + makeNotesFollowersOnlyBeforeDescription: "Bu özellik etkinleştirildiğinde, yalnızca takipçiler belirlenen tarih ve saatten sonra veya belirlenen süre boyunca görünür olan notları görebilir. Bu özellik devre dışı bırakıldığında, notun yayın durumu da geri yüklenir." + makeNotesHiddenBefore: "Geçmiş notları gizli yap" + makeNotesHiddenBeforeDescription: "Bu özellik etkinleştirildiğinde, belirlenen tarih ve saatten geçmiş olan veya yalnızca sizin görebildiğiniz notlar. Bu özellik devre dışı bırakıldığında, notun yayın durumu da geri yüklenecektir." + mayNotEffectForFederatedNotes: "Uzak sunucuya bağlı notlar etkilenmeyebilir." + mayNotEffectSomeSituations: "Bu kısıtlamalar basitleştirilmiştir. Uzaktaki bir sunucuda görüntüleme veya moderasyon sırasında gibi bazı durumlarda geçerli olmayabilir." + notesHavePassedSpecifiedPeriod: "Belirtilen sürenin geçtiğini unutmayın." + notesOlderThanSpecifiedDateAndTime: "Belirtilen tarih ve saatten önceki notlar" +_abuseUserReport: + forward: "İleri" + forwardDescription: "Raporu, anonim bir sistem hesabı olarak uzak bir sunucuya iletin." + resolve: "Çözüm" + accept: "Kabul et" + reject: "Reddet" + resolveTutorial: "Raporun içeriği meşruysa, “Kabul Et” seçeneğini seçerek sorunu çözülmüş olarak işaretleyin.\nRaporun içeriği meşru değilse, “Reddet” seçeneğini seçerek raporu yok sayın." _delivery: - stop: "Askıya alınmış" + status: "Teslimat durumu" + stop: "Askıya al" + resume: "Teslimat özgeçmişi" _type: none: "Paylaşım" + manuallySuspended: "Manuel olarak askıya alınmış" + goneSuspended: "Sunucu, sunucunun silinmesi nedeniyle askıya alınmıştır." + autoSuspendedForNotResponding: "Sunucu yanıt vermediği için askıya alınmıştır." + softwareSuspended: "Bu yazılım artık dağıtılmadığı için askıya alınmıştır." +_bubbleGame: + howToPlay: "Nasıl oynanır" + hold: "Tut" + _score: + score: "Skor" + scoreYen: "Kazanılan para miktarı" + highScore: "Yüksek puan" + maxChain: "Maksimum zincir sayısı" + yen: "{yen} Yen" + estimatedQty: "{qty} Adet" + scoreSweets: "{onigiriQtyWithUnit} Onigiri" + _howToPlay: + section1: "Konumu ayarlayın ve nesneyi kutuya bırakın." + section2: "Aynı türden iki nesne birbirine dokunduğunda, farklı bir nesneye dönüşür ve puan kazanırsınız." + section3: "Kutu dolduğunda oyun biter. Kutuyu doldurmadan nesneleri birleştirerek yüksek puan almaya çalışın!" +_announcement: + forExistingUsers: "Sadece mevcut kullanıcılar" + forExistingUsersDescription: "Bu duyuru, etkinleştirildiğinde yalnızca yayınlandığı anda mevcut olan kullanıcılara gösterilecektir. Devre dışı bırakıldığında, yayınlandıktan sonra yeni kaydolan kullanıcılar da bu duyuruyu görecektir." + needConfirmationToRead: "Ayrı okuma onayı gerektirir" + needConfirmationToReadDescription: "Etkinleştirildiğinde, bu duyuruyu okundu olarak işaretlemek için ayrı bir onay mesajı görüntülenir. Bu duyuru, “Tümünü okundu olarak işaretle” işlevinden de hariç tutulur." + end: "Arşiv duyurusu" + tooManyActiveAnnouncementDescription: "Çok fazla aktif duyuru olması kullanıcı deneyimini kötüleştirebilir. Artık geçerliliğini yitirmiş duyuruları arşivlemeyi düşünün." + readConfirmTitle: "Okundu olarak işaretle?" + readConfirmText: "Bu, “{title}” içeriğini okundu olarak işaretleyecektir." + shouldNotBeUsedToPresentPermanentInfo: "Duyuruları, uzun vadede geçerli olacak bilgiler için değil, güncel ve zaman sınırlı bilgileri yayınlamak için kullanmak en iyisidir." + dialogAnnouncementUxWarn: "Aynı anda iki veya daha fazla diyalog tarzı bildirim olması, kullanıcı deneyimini önemli ölçüde etkileyebilir, bu nedenle lütfen bunları dikkatli kullanın." + silence: "Bildirim yok" + silenceDescription: "Bu seçeneği etkinleştirdiğinizde, bu duyurunun bildirimi atlanacak ve kullanıcı bunu okumak zorunda kalmayacaktır." +_initialAccountSetting: + accountCreated: "Hesabınız başarıyla oluşturuldu!" + letsStartAccountSetup: "Öncelikle, profilinizi oluşturalım." + letsFillYourProfile: "Öncelikle profilinizi oluşturalım." + profileSetting: "Profil ayarları" + privacySetting: "Gizlilik ayarları" + theseSettingsCanEditLater: "Bu ayarları daha sonra istediğiniz zaman değiştirebilirsiniz." + youCanEditMoreSettingsInSettingsPageLater: "“Ayarlar” sayfasından yapılandırabileceğiniz daha birçok ayar bulunmaktadır. Daha sonra mutlaka ziyaret edin." + followUsers: "İlgilendiğiniz bazı kullanıcıları takip ederek zaman akışınızı oluşturmaya çalışın." + pushNotificationDescription: "Push bildirimlerini etkinleştirdiğinizde, {name} adresinden gelen bildirimleri doğrudan cihazınıza alabilirsiniz." + initialAccountSettingCompleted: "Profil kurulumu tamamlandı!" + haveFun: "{name}'in keyfini çıkarın!" + youCanContinueTutorial: "{name} (Misskey) kullanımına ilişkin bir eğiticiye geçebilir veya buradan kurulumu sonlandırıp hemen kullanmaya başlayabilirsiniz." + startTutorial: "Öğreticiye başla" + skipAreYouSure: "Profil kurulumunu gerçekten atlamak mı istiyorsunuz?" + laterAreYouSure: "Profil ayarlarını gerçekten daha sonra mı yapacaksınız?" +_initialTutorial: + launchTutorial: "Öğreticiyi izle" + title: "Öğretici" + wellDone: "Tebrikler!" + skipAreYouSure: "Öğreticiyi kapatmak mı istiyorsunuz?" + _landing: + title: "Öğreticiye hoş geldiniz" + description: "Burada, Misskey'i kullanmanın temellerini ve özelliklerini öğrenebilirsiniz." + _note: + title: "Not nedir?" + description: "Misskey'deki gönderiler “Notlar” olarak adlandırılır. Notlar zaman çizelgesinde kronolojik olarak düzenlenir ve gerçek zamanlı olarak güncellenir." + reply: "Bir mesaja yanıt vermek için bu düğmeye tıklayın. Yanıtlara yanıt vermek de mümkündür, böylece konuşma bir konu başlığı gibi devam eder." + renote: "Bu notu kendi zaman çizelgenizde paylaşabilirsiniz. Ayrıca yorumlarınızla birlikte alıntı da yapabilirsiniz." + reaction: "Not'a tepkiler ekleyebilirsiniz. Daha fazla ayrıntı bir sonraki sayfada açıklanacaktır." + menu: "Not ayrıntılarını görüntüleyebilir, bağlantıları kopyalayabilir ve çeşitli diğer işlemleri gerçekleştirebilirsiniz." + _reaction: + title: "Reaksiyonlar nedir?" + description: "Notlara çeşitli emojilerle tepki verilebilir. Tepkiler, sadece bir ‘beğeni’ ile ifade edilemeyen nüansları ifade etmenizi sağlar." + letsTryReacting: "Notun üzerindeki ‘+’ düğmesine tıklayarak tepkiler eklenebilir. Bu örnek nota tepki verin!" + reactToContinue: "Devam etmek için bir tepki ekleyin." + reactNotification: "Birisi notunuza tepki verdiğinde gerçek zamanlı bildirimler alacaksınız." + reactDone: "“-” düğmesine basarak bir tepkiyi geri alabilirsiniz." + _timeline: + title: "Timeline Kavramı" + description1: "Misskey, kullanıma göre birden fazla Timeline sunar (bazı Timeline'lar sunucunun politikalarına bağlı olarak kullanılamayabilir)." + home: "Takip ettiğiniz hesapların notlarını görüntüleyebilirsiniz." + local: "Bu sunucudaki tüm kullanıcıların notlarını görüntüleyebilirsiniz." + social: "Ev ve Yerel Timeline'dan notlar görüntülenecektir." + global: "Bağlı tüm sunuculardan gelen notları görüntüleyebilirsiniz." + description2: "Ekranın üst kısmındaki Timeline'lar arasında istediğiniz zaman geçiş yapabilirsiniz." + description3: "Ayrıca, Liste Timeline'ı ve Kanal Timeline'ı da bulunmaktadır. Daha fazla ayrıntı için lütfen {link} adresine bakın." + _postNote: + title: "Not Yayınlama Ayarları" + description1: "Misskey'de not yayınlarken çeşitli seçenekler mevcuttur. Yayınlama formu şu şekildedir." + _visibility: + description: "Notunuzu kimlerin görüntüleyebileceğini sınırlayabilirsiniz." + public: "Notunuz tüm kullanıcılar tarafından görülebilir olacaktır." + home: "Yalnızca Ana zaman akışında herkese açık. Profilinizi ziyaret edenler, takipçileriniz ve yeniden notlar aracılığıyla bunu görebilirler." + followers: "Sadece takipçiler tarafından görülebilir. Sadece takipçiler görebilir, başkaları göremez ve başkaları tarafından yeniden not edilemez." + direct: "Yalnızca belirli kullanıcılar tarafından görülebilir ve alıcıya bildirim gönderilir. Doğrudan mesajlaşma yerine alternatif olarak kullanılabilir." + doNotSendConfidencialOnDirect1: "Hassas bilgileri gönderirken dikkatli olun!" + doNotSendConfidencialOnDirect2: "Sunucu yöneticileri yazdıklarınızı görebilir. Güvenilir olmayan sunuculardaki kullanıcılara doğrudan not gönderirken hassas bilgilere dikkat edin." + localOnly: "Bu bayrakla yayınlamak, notu diğer sunuculara aktarmaz. Diğer sunuculardaki kullanıcılar, yukarıdaki görüntüleme ayarlarından bağımsız olarak bu notları doğrudan görüntüleyemezler." + _cw: + title: "İçerik Uyarısı" + description: "Gövde yerine, “yorumlar” alanına yazılan içerik görüntülenecektir. “Devamını oku” düğmesine basıldığında gövde görüntülenecektir." + _exampleNote: + cw: "Bu kesinlikle sizi acıktıracak!" + note: "Az önce çikolata kaplı bir donut yedim 🍩😋" + useCases: "Bu, sunucu kurallarına uyulurken, gerekli notlar için veya spoiler veya hassas metinlerin kendi kendine kısıtlanması için kullanılır." + _howToMakeAttachmentsSensitive: + title: "Ekleri Hassas Olarak İşaretleme" + description: "Sunucu kuralları gereği gerekli olan veya bozulmaması gereken ekler için “hassas” bayrağı ekleyin." + tryThisFile: "Bu forma ekli resmi hassas olarak işaretlemeyi deneyin!" + _exampleNote: + note: "Oops, natto kapağını açarken berbat ettim..." + method: "Bir eki hassas olarak işaretlemek için, dosya küçük resmini tıklayın, menüyü açın ve “Hassas Olarak İşaretle” seçeneğini tıklayın." + sensitiveSucceeded: "Dosya eklerken, lütfen sunucu kurallarına uygun olarak hassasiyet ayarlarını yapın." + doItToContinue: "Devam etmek için ek dosyayı hassas olarak işaretleyin." + _done: + title: "Eğitimi tamamladınız! 🎉" + description: "Burada tanıtılan işlevler sadece küçük bir kısmıdır. Misskey'i kullanma konusunda daha ayrıntılı bilgi için lütfen şu kaynağa bakın: {link}." +_timelineDescription: + home: "Ana Timeline'da, takip ettiğiniz hesapların notlarını görebilirsiniz." + local: "Yerel Timeline'de, bu sunucudaki tüm kullanıcıların notlarını görebilirsiniz." + social: "Sosyal Timeline, Ana Sayfa ve Yerel Timeline'dan gelen notları görüntüler." + global: "Global Timeline'da, bağlı tüm sunuculardan gelen notları görebilirsiniz." +_serverRules: + description: "Kayıt öncesinde gösterilecek bir dizi kural. Hizmet Şartlarının özetini belirlemeniz önerilir." +_serverSettings: + iconUrl: "Simge URL'si" + appIconDescription: " {host} bir uygulama olarak görüntülendiğinde kullanılacak simgeyi belirtir." + appIconUsageExample: "Örneğin, PWA olarak veya bir telefonda ana ekran yer imi olarak görüntülendiğinde" + appIconStyleRecommendation: "Simge kare veya daire şeklinde kırpılabileceğinden, içeriğin etrafında renkli kenar boşluğu bulunan bir simge kullanılması önerilir." + appIconResolutionMustBe: "Minimum çözünürlük {resolution}'tür." + manifestJsonOverride: "manifest.json Geçersiz Kılma" + shortName: "Kısa ad" + shortNameDescription: "Resmi adın uzun olması durumunda görüntülenebilen, örneğin adının kısaltması." + fanoutTimelineDescription: "Etkinleştirildiğinde Timeline alma performansını büyük ölçüde artırır ve veritabanı yükünü azaltır. Bunun karşılığında Redis'in bellek kullanımı artacaktır. Sunucu belleği düşükse veya sunucu kararsızsa bunu devre dışı bırakmayı düşünün." + fanoutTimelineDbFallback: "Veritabanına geri dön" + fanoutTimelineDbFallbackDescription: "Etkinleştirildiğinde, Timeline önbelleğe alınmamışsa ek sorgular için veritabanına geri döner. Bu özelliği devre dışı bırakmak, geri dönüş sürecini ortadan kaldırarak sunucu yükünü daha da azaltır, ancak alınabilecek zaman çizelgelerinin aralığını sınırlar." + reactionsBufferingDescription: "Etkinleştirildiğinde, reaksiyon oluşturma sırasında performans büyük ölçüde artacak ve veritabanı üzerindeki yük azalacaktır. Ancak, Redis bellek kullanımı artacaktır." + remoteNotesCleaning: "Uzak notların otomatik olarak temizlenmesi" + remoteNotesCleaning_description: "Etkinleştirildiğinde, kullanılmayan ve güncelliğini yitirmiş uzak notlar, veritabanının şişmesini önlemek için periyodik olarak temizlenecektir." + remoteNotesCleaningMaxProcessingDuration: "Maksimum temizleme işlem süresi" + remoteNotesCleaningExpiryDaysForEachNotes: "Notları saklamak için minimum gün sayısı" + inquiryUrl: "Sorgu URL'si" + inquiryUrlDescription: "Sorgu formu için sunucu yöneticisine bir URL veya iletişim bilgileri için bir web sayfası belirtin." + openRegistration: "Hesap oluşturmayı açık hale getirin" + openRegistrationWarning: "Kayıt açma işlemi riskler içerir. Sunucuyu sürekli olarak izleyen ve herhangi bir sorun durumunda hemen müdahale edebilen bir sisteminiz varsa, bu işlemi etkinleştirmeniz önerilir." + thisSettingWillAutomaticallyOffWhenModeratorsInactive: "Bir süre boyunca moderatör etkinliği algılanmazsa, spam'ı önlemek için bu ayar otomatik olarak kapatılır." + deliverSuspendedSoftware: "Askıya Alınan Yazılım" + deliverSuspendedSoftwareDescription: "Güvenlik açığı veya diğer nedenlerle sunucunun yazılımının belirli bir isim ve sürüm aralığı için teslimatı durdurabilirsiniz. Bu sürüm bilgileri sunucu tarafından sağlanır ve güvenilirliği garanti edilmez. Sürümü belirtmek için semver aralığı belirtilebilir, ancak >= 2024.3.1 belirtildiğinde 2024.3.1-custom.0 gibi özel sürümler dahil edilmez, bu nedenle >= 2024.3.1-0 gibi ön sürüm belirtimi kullanılması önerilir." + singleUserMode: "Tek kullanıcı modu" + singleUserMode_description: "Bu sunucunun tek kullanıcısıysanız, bu modu etkinleştirerek performansını optimize edebilirsiniz." + signToActivityPubGet: "ActivityPub GET isteklerini imzalayın" + signToActivityPubGet_description: "Normalde bu özellik etkinleştirilmiş olmalıdır. Bu özelliği devre dışı bırakmak federasyonla ilgili sorunları iyileştirebilir, ancak diğer yandan bazı diğer sunuculara yönelik federasyonu devre dışı bırakabilir." + proxyRemoteFiles: "Proxy uzak dosyalar" + proxyRemoteFiles_description: "Etkinleştirildiğinde, sunucu uzak dosyaları proxy olarak kullanır ve sunar. Bu, resim küçük resimleri oluşturmak ve kullanıcı gizliliğini korumak için kullanışlıdır." + allowExternalApRedirect: "ActivityPub aracılığıyla yapılan sorgular için yönlendirmelere izin ver" + allowExternalApRedirect_description: "Etkinleştirildiğinde, diğer sunucular bu sunucu aracılığıyla üçüncü taraf içeriğini sorgulayabilir, ancak bu durum içerik sahteciliğine yol açabilir." + userGeneratedContentsVisibilityForVisitor: "Kullanıcılar tarafından oluşturulan içeriğin misafirlere görünürlüğü" + userGeneratedContentsVisibilityForVisitor_description: "Bu, uygunsuz ve iyi denetlenmemiş uzaktaki içeriğin kendi sunucunuz aracılığıyla istemeden internette yayınlanmasını önlemek için yararlıdır." + userGeneratedContentsVisibilityForVisitor_description2: "Sunucu tarafından alınan uzak içerik dahil olmak üzere sunucudaki tüm içeriği koşulsuz olarak İnternet'e yayınlamak risklidir. Bu, içeriğin dağıtılmış yapısından haberdar olmayan misafirler için özellikle önemlidir, çünkü onlar yanlışlıkla uzak içeriğin bile sunucudaki kullanıcılar tarafından oluşturulan içerik olduğunu düşünebilirler." + restartServerSetupWizardConfirm_title: "Sunucu kurulum sihirbazını yeniden başlatmak ister misiniz?" + restartServerSetupWizardConfirm_text: "Bazı mevcut ayarlar sıfırlanacaktır." + _userGeneratedContentsVisibilityForVisitor: + all: "Her şey halka açıktır." + localOnly: "Yalnızca yerel içerik yayınlanır, uzak içerik gizli tutulur." + none: "Her şey gizlidir." +_accountMigration: + moveFrom: "Başka bir hesabı bu hesaba taşıyın" + moveFromSub: "Başka bir hesaba takma ad oluşturun" + moveFromLabel: "Orijinal Hesap #{n}" + moveFromDescription: "Bu hesaptan taşınacak hesap için bir takma ad oluşturmalısınız.\nTaşınacak hesabı aşağıdaki biçimde girin: @username@server.example.com\nTakma adı silmek için alanı boş bırakın (önerilmez)." + moveTo: "Bu hesabı başka bir hesaba taşıyın" + moveToLabel: "Taşınacak hesap:" + moveCannotBeUndone: "Hesap taşıma işlemi geri alınamaz." + moveAccountDescription: "Bu işlem, hesabınızı farklı bir hesaba taşıyacaktır.\n・Bu hesabın takipçileri otomatik olarak yeni hesaba taşınacaktır.\n・Bu hesap, şu anda takip ettiği tüm kullanıcıları takipten çıkaracaktır.\n・Bu hesapta yeni notlar vb. oluşturamayacaksınız.\n\nTakipçilerin taşınması otomatik olarak gerçekleşirken, takip ettiğiniz kullanıcıların listesini taşımak için bazı adımları manuel olarak hazırlamanız gerekir. Bunu yapmak için, ayarlar menüsünden takipçilerinizi dışa aktarın ve daha sonra yeni hesaba içe aktarın. Aynı prosedür, listelerinizin yanı sıra sessize aldığınız ve engellediğiniz kullanıcılar için de geçerlidir.\n\n(Bu açıklama Misskey v13.12.0 ve sonraki sürümler için geçerlidir. Mastodon gibi diğer ActivityPub yazılımları farklı şekilde çalışabilir.)" + moveAccountHowTo: "Geçiş yapmak için, önce taşınacak hesapta bu hesap için bir takma ad oluşturun.\nTakma adı oluşturduktan sonra, taşınacak hesabı aşağıdaki biçimde girin: @username@server.example.com" + startMigration: "Taşın" + migrationConfirm: "Bu hesabı {account} hesabına gerçekten taşımak istiyor musunuz? Bu işlem başlatıldıktan sonra durdurulamaz veya geri alınamaz ve bu hesabı artık orijinal haliyle kullanamazsınız." + movedAndCannotBeUndone: "\nBu hesap taşınmıştır.\nTaşıma işlemi geri alınamaz." + postMigrationNote: "Bu hesap, geçiş işlemi tamamlandıktan 24 saat sonra şu anda takip ettiği tüm hesapları takipten çıkaracaktır.\nHem takipçi sayısı hem de takip edilenler sayısı sıfır olacaktır. Takipçilerinizin bu hesabın yalnızca takipçilere açık gönderilerini görememesi durumunu önlemek için, takipçileriniz bu hesabı takip etmeye devam edecektir." + movedTo: "Yeni hesap:" +_achievements: + earnedAt: "Şurada açıldı" + _types: + _notes1: + title: "msky'ımı kuruyorum" + description: "İlk notunuzu yayınlayın" + flavor: "Misskey ile iyi vakit geçirin!" + _notes10: + title: "Bazı notlar" + description: "10 not gönder" + _notes100: + title: "Çok sayıda not" + description: "100 notu yayınla" + _notes500: + title: "Notlarla kaplı" + description: "500 notu yayınla" + _notes1000: + title: "Notlardan oluşan bir dağ" + description: "1.000 not yayınla" + _notes5000: + title: "Taşan notlar" + description: "5.000 not yayınla" + _notes10000: + title: "Süper not" + description: "10.000 not yayınla" + _notes20000: + title: "Daha... fazla... not... lazım..." + description: "20.000 not yayınla" + _notes30000: + title: "Notlar notlar notlar!" + description: "30.000 not yayınla" + _notes40000: + title: "Not fabrikası" + description: "40.000 not yayınla" + _notes50000: + title: "Notların gezegeni" + description: "50.000 not yayınla" + _notes60000: + title: "Not kuasar" + description: "60.000 not yayınla" + _notes70000: + title: "Not kara deliği" + description: "70.000 not yayınla" + _notes80000: + title: "Not galaksisi" + description: "80.000 not yayınla" + _notes90000: + title: "Not evreni" + description: "90.000 not yayınla" + _notes100000: + title: "TÜM NOTLARINIZ BİZE AİTTİR" + description: "100.000 yayınlanmış not" + flavor: "Gerçekten söyleyecek çok şeyin var." + _login3: + title: "Başlangıç I" + description: "Log in for a total of 3 days" + flavor: "Toplam 3 gün boyunca oturum açın" + _login7: + title: "Başlangıç II" + description: "Toplam 7 gün boyunca oturum açın" + flavor: "Henüz işlerin nasıl yürüdüğünü anladığını hissediyor musun?" + _login15: + title: "Başlangıç III" + description: "Toplam 15 gün boyunca oturum açın" + _login30: + title: "Misskist I" + description: "Toplam 30 gün boyunca oturum açın" + _login60: + title: "Misskist II" + description: "Toplam 60 gün boyunca oturum açın" + _login100: + title: "Misskist III" + description: "Toplam 100 gün boyunca oturum açın" + flavor: "Şiddetli Misskist" + _login200: + title: "Düzenli I" + description: "Toplam 200 gün boyunca oturum açın." + _login300: + title: "Düzenli II" + description: "Toplam 300 gün boyunca oturum açın" + _login400: + title: "Düzenli III" + description: "Toplam 400 gün boyunca oturum açın" + _login500: + title: "Uzman I" + description: "Toplam 500 gün boyunca oturum açın" + flavor: "Arkadaşlar, sık sık not almayı sevdiğim söylenir." + _login600: + title: "Uzman II" + description: "Toplam 600 gün boyunca oturum açın" + _login700: + title: "Uzman III" + description: "Toplam 700 gün boyunca oturum açın" + _login800: + title: "Notların Ustası I" + description: "Toplam 800 gün boyunca oturum açın" + _login900: + title: "Notların Ustası II" + description: "Toplam 900 gün boyunca oturum açın" + _login1000: + title: "Notların Ustası III" + description: "Toplam 1.000 gün boyunca oturum açın." + flavor: "Misskey'i kullandığınız için teşekkür ederiz!" + _noteClipped1: + title: "Kesinlikle... kesmeliyim..." + description: "İlk notunuzu ekleyin" + _noteFavorited1: + title: "Yıldız gözlemcisi" + description: "İlk notunu favorilerine ekle" + _myNoteFavorited1: + title: "Yıldızları Arayış" + description: "Başka birinin notlarınızdan birini favorilerine eklemesini sağlayın" + _profileFilled: + title: "İyi hazırlanmış" + description: "Profilinizi oluşturun" + _markedAsCat: + title: "Ben bir kediyim." + description: "Hesabınızı kedi olarak işaretleyin" + flavor: "Sana daha sonra bir isim vereceğim." + _following1: + title: "İlk kullanıcınızı takip edin" + description: "Bir kullanıcıyı takip et" + _following10: + title: "Devam et... devam et..." + description: "10 kullanıcıyı takip et" + _following50: + title: "Bir sürü arkadaş" + description: "50 hesabı takip et" + _following100: + title: "100 Arkadaş" + description: "100 hesabı takip et" + _following300: + title: "Arkadaş yüklemesi" + description: "300 hesabı takip et" + _followers1: + title: "İlk takipçi" + description: "1 takipçi kazanın" + _followers10: + title: "Beni takip edin!" + description: "10 takipçi kazanın" + _followers50: + title: "Kalabalıklar halinde gelmek" + description: "50 takipçi kazanın" + _followers100: + title: "Popüler" + description: "100 takipçi kazanın" + _followers300: + title: "Lütfen tek sıra halinde dizilin." + description: "300 takipçi kazanın" + _followers500: + title: "Radyo Kulesi" + description: "500 takipçi kazanın" + _followers1000: + title: "Etkileyici" + description: "1.000 takipçi kazanın" + _collectAchievements30: + title: "Başarı Koleksiyoncusu" + description: "30 başarı kazan" + _viewAchievements3min: + title: "Beğeniler Başarılar" + description: "Likes Achievements" + _iLoveMisskey: + title: "Misskey'i seviyorum" + description: "“I ❤ #Misskey” yazısını paylaş" + flavor: "Misskey geliştirme ekibi desteğiniz için çok teşekkür eder!" + _foundTreasure: + title: "Hazine Avı" + description: "Gizli hazineyi buldunuz." + _client30min: + title: "Kısa mola" + description: "Misskey'i en az 30 dakika açık tutun." + _client60min: + title: "Misskey'de “Miss” yok" + description: "Misskey'i en az 60 dakika açık tutun." + _noteDeletedWithin1min: + title: "Nevermind" + description: "Boş ver" + _postedAtLateNight: + title: "Gececi" + description: "Gece geç saatlerde bir not yayınlayın" + flavor: "Yatma vakti geldi." + _postedAt0min0sec: + title: "Konuşan Saat" + description: "00:00'da bir not yayınlayın." + flavor: "Tık tık tık, güm!" + _selfQuote: + title: "Öz Referans" + description: "Kendi notunuzu alıntı yapın" + _htl20npm: + title: "Akış Zaman Çizelgesi" + description: "Ev zaman çizelgenizin hızı 20 npm'yi (dakika başına not sayısı) aşıyor mu?" + _viewInstanceChart: + title: "Analist" + description: "Sunucunuzun grafiklerini görüntüleyin" + _outputHelloWorldOnScratchpad: + title: "Merhaba, dünya!" + description: "Scratchpad'de “hello world” yazdırın." + _open3windows: + title: "Çoklu Pencere" + description: "Aynı anda en az 3 pencere açık olsun." + _driveFolderCircularReference: + title: "Döngüsel Referans" + description: "Drive'da yinelemeli olarak iç içe geçmiş bir klasör oluşturmaya çalışın." + _reactWithoutRead: + title: "Gerçekten okudun mu?" + description: "100 karakterden uzun bir notun yayınlanmasından itibaren 3 saniye içinde yanıt verin." + _clickedClickHere: + title: "Buraya tıklayın" + description: "Buraya tıkladınız" + _justPlainLucky: + title: "Sadece Şanslı" + description: "Her 10 saniyede bir %0,005 olasılıkla elde edilme şansı vardır." + _setNameToSyuilo: + title: "Tanrı Kompleksi" + description: "Adınızı “syuilo” olarak ayarlayın." + _passedSinceAccountCreated1: + title: "Birinci Yıl Dönümü" + description: "Hesabınızın oluşturulmasından bu yana bir yıl geçti." + _passedSinceAccountCreated2: + title: "İki Yıllık Yıldönümü" + description: "Hesabınızın oluşturulmasından bu yana iki yıl geçti." + _passedSinceAccountCreated3: + title: "Üçüncü Yıl Dönümü" + description: "Hesabınızın oluşturulmasından bu yana üç yıl geçti." + _loggedInOnBirthday: + title: "Doğum günün kutlu olsun" + description: "Doğum gününüzde giriş yapın" + _loggedInOnNewYearsDay: + title: "Yeni yılınız kutlu olsun!" + description: "Yılın ilk gününde oturum açıldı" + flavor: "Bu örnekte bir başka harika yıla" + _cookieClicked: + title: "Çerezleri tıklayarak oynanan bir oyun" + description: "Çerezi tıkladı" + flavor: "Wait, are you on the correct website?" + _brainDiver: + title: "Brain Diver" + description: "Brain Diver bağlantısını paylaşın" + flavor: "Misskey-Misskey La-Tu-Ma" + _smashTestNotificationButton: + title: "Test taşması" + description: "Bildirim testini çok kısa bir süre içinde tekrar tekrar tetikleyin." + _tutorialCompleted: + title: "Misskey Temel Kurs Diploması" + description: "Eğitim tamamlandı" + _bubbleGameExplodingHead: + title: "🤯" + description: "Kabarcık oyunundaki en büyük nesne" + _bubbleGameDoubleExplodingHead: + title: "Çift🤯" + description: "Aynı anda balon oyunundaki en büyük iki nesne" + flavor: "Öğle yemeği kutunuzu şöyle doldurabilirsiniz 🤯 🤯 biraz." +_role: + new: "Yeni rol" + edit: "Rolü düzenle" + name: "Rol adı" + description: "Rol tanımı" + permission: "Rol izinleri" + descriptionOfPermission: "Moderators temel moderasyon işlemlerini gerçekleştirebilir.\nAdministrators örneğin tüm ayarlarını değiştirebilir." + assignTarget: "Görev türü" + descriptionOfAssignTarget: "Bu rolün parçası olan ve olmayan kişileri manuel olarak değiştirmek için manuel.\nKullanıcıların bir koşula bağlı olarak bu role otomatik olarak atanmasını ve bu rolden çıkarılmasını sağlamak için koşullu." + manual: "Kılavuz" + manualRoles: "Manuel roller" + conditional: "Koşullu" + conditionalRoles: "Koşullu roller" + condition: "Durum" + isConditionalRole: "Bu, koşullu bir roldür." + isPublic: "Kamu rolü" + descriptionOfIsPublic: "Bu rol, atanan kullanıcıların profillerinde görüntülenecektir." + options: "Seçenekler" + policies: "Politikalar" + baseRole: "Rol şablonu" + useBaseValue: "Rol şablonu değerini kullan" + chooseRoleToAssign: "Atamak istediğiniz rolü seçin" + iconUrl: "Simge URL'si" + asBadge: "Rozet olarak göster" + descriptionOfAsBadge: "This role's icon will be displayed next to the username of users with this role if turned on." + isExplorable: "Rolü keşfedilebilir hale getirin" + descriptionOfIsExplorable: "Bu rolün zaman çizelgesi ve bu role sahip kullanıcıların listesi, etkinleştirilirse kamuya açık hale getirilecektir." + displayOrder: "Pozisyon" + descriptionOfDisplayOrder: "Sayı ne kadar yüksekse, UI pozisyonu da o kadar yüksek olur." + preserveAssignmentOnMoveAccount: "Geçiş sırasında rol atamalarını koruyun" + preserveAssignmentOnMoveAccount_description: "Etkinleştirildiğinde, bu rol, bu role sahip bir hesap taşındığında hedef hesaba aktarılacaktır." + canEditMembersByModerator: "Moderatörlerin bu rol için üye listesini düzenlemesine izin ver" + descriptionOfCanEditMembersByModerator: "Etkinleştirildiğinde, moderatörler ve yöneticiler bu role kullanıcıları atayabilir ve atamalarını kaldırabilir. Devre dışı bırakıldığında, yalnızca yöneticiler kullanıcıları atayabilir." + priority: "Öncelik" + _priority: + low: "Düşük" + middle: "Orta" + high: "Yüksek" + _options: + gtlAvailable: "Küresel zaman çizelgesini görüntüleyebilir" + ltlAvailable: "Yerel zaman çizelgesini görüntüleyebilir" + canPublicNote: "Halka açık notlar gönderebilir" + mentionMax: "Bir notta maksimum bahsetme sayısı" + canInvite: "Örnek davet kodları oluşturabilir" + inviteLimit: "Davet sınırı" + inviteLimitCycle: "Davet sınırı bekleme süresi" + inviteExpirationTime: "Davet süresi dolma aralığı" + canManageCustomEmojis: "Özel emojileri yönetebilir" + canManageAvatarDecorations: "Avatar süslemelerini yönet" + driveCapacity: "Sürücü kapasitesi" + maxFileSize: "Yükleyebileceğiniz maksimum dosya boyutu" + alwaysMarkNsfw: "Dosyaları her zaman NSFW olarak işaretleyin" + canUpdateBioMedia: "Bir simge veya banner görüntüsünü düzenleyebilir" + pinMax: "Sabitlenmiş notların maksimum sayısı" + antennaMax: "Maksimum anten sayısı" + wordMuteMax: "Kelime sessizlerinde izin verilen maksimum karakter sayısı" + webhookMax: "Maksimum Webhook sayısı" + clipMax: "Maksimum klip sayısı" + noteEachClipsMax: "Bir klip içindeki maksimum nota sayısı" + userListMax: "Maksimum kullanıcı listesi sayısı" + userEachUserListsMax: "Kullanıcı listesindeki maksimum kullanıcı sayısı" + rateLimitFactor: "Hız Sınırı" + descriptionOfRateLimitFactor: "Daha düşük oran sınırları daha az kısıtlayıcıdır, daha yüksek olanlar ise daha kısıtlayıcıdır." + canHideAds: "Reklamları gizleyebilir" + canSearchNotes: "Not arama kullanımı" + canUseTranslator: "Çevirmen kullanımı" + avatarDecorationLimit: "Uygulanabilecek maksimum avatar süsleme sayısı" + canImportAntennas: "Antenlerin içe aktarılmasına izin ver" + canImportBlocking: "Engellemeyi içe aktarmaya izin ver" + canImportFollowing: "Aşağıdakilerin içe aktarılmasına izin ver" + canImportMuting: "Sessize alma özelliğini içe aktarmaya izin ver" + canImportUserLists: "Listelerin içe aktarılmasına izin ver" + chatAvailability: "Sohbeti İzin Ver" + uploadableFileTypes: "Yüklenebilir dosya türleri" + uploadableFileTypes_caption: "İzin verilen MIME/dosya türlerini belirtir. Birden fazla MIME türü, yeni bir satırla ayırarak belirtilebilir ve joker karakterler yıldız işareti (*) ile belirtilebilir. (örneğin, image/*)" + uploadableFileTypes_caption2: "Bazı dosya türleri algılanamayabilir. Bu tür dosyalara izin vermek için, spesifikasyona {x} ekleyin." + noteDraftLimit: "Sunucu notlarının olası taslak sayısı" + watermarkAvailable: "Filigran işlevinin kullanılabilirliği" + _condition: + roleAssignedTo: "Manuel rollere atanmış" + isLocal: "Yerel kullanıcı" + isRemote: "Uzak kullanıcı" + isCat: "Kedi Kullanıcıları" + isBot: "Bot Kullanıcıları" + isSuspended: "Askıya alınmış kullanıcı" + isLocked: "Özel hesaplar" + isExplorable: "“Hesabı bulunabilir hale getir” özelliğini etkili bir şekilde kullanan kullanıcı" + createdLessThan: "Hesap oluşturulduktan sonra X'ten az zaman geçti." + createdMoreThan: "Hesap oluşturulmasından bu yana X'ten fazla zaman geçti." + followersLessThanOrEq: "X veya daha az takipçisi var" + followersMoreThanOrEq: "X veya daha fazla takipçisi var" + followingLessThanOrEq: "X veya daha az sayıda hesabı takip ediyor" + followingMoreThanOrEq: "X veya daha fazla hesabı takip ediyor" + notesLessThanOrEq: "Gönderi sayısı şundan az/eşit" + notesMoreThanOrEq: "Gönderi sayısı şundan büyük/eşit" + and: "Koşul-AND" + or: "Koşul-QR" + not: "Koşul-NOT" +_sensitiveMediaDetection: + description: "Makine öğrenimi yoluyla hassas medyayı otomatik olarak tanıyarak sunucu moderasyonunun yükünü azaltır. Bu, sunucu üzerindeki yükü biraz artıracaktır." + sensitivity: "Algılama hassasiyeti" + sensitivityDescription: "Hassasiyeti azaltmak, yanlış algılamaların (yanlış pozitifler) azalmasına neden olurken, hassasiyeti artırmak ise algılamaların kaçırılmasının (yanlış negatifler) azalmasına neden olur." + setSensitiveFlagAutomatically: "Hassas olarak işaretle" + setSensitiveFlagAutomaticallyDescription: "Bu seçenek kapatılsa bile, dahili algılama sonuçları korunacaktır." + analyzeVideos: "Videoların analizini etkinleştir" + analyzeVideosDescription: "Görüntülerin yanı sıra videoları da analiz eder. Bu, sunucu üzerindeki yükü biraz artıracaktır." +_emailUnavailable: + used: "Bu E-Posta adresi zaten kullanılıyor." + format: "Bu E-Posta adresinin biçimi geçersizdir." + disposable: "Tek kullanımlık E-Posta adresleri kullanılamaz." + mx: "Bu E-Posta sunucusu geçersizdir." + smtp: "Bu E-Posta sunucusu yanıt vermiyor." + banned: "Bu E-Posta adresiyle kayıt olamazsınız." +_ffVisibility: + public: "Bu e-posta adresiyle kayıt olamazsınız." + followers: "Sadece takipçiler tarafından görülebilir" + private: "Özel" +_signup: + almostThere: "Neredeyse vardık" + emailAddressInfo: "Lütfen E-Posta adresinizi girin. Bu adres kamuya açık hale getirilmeyecektir." + emailSent: "Onay e-postası E-Posta adresinize ({email}) gönderilmiştir. Hesap oluşturma işlemini tamamlamak için e-postadaki bağlantıya tıklayın." _accountDelete: - started: "Silme işlemi başlatıldı" + accountDelete: "Hesabı sil" + mayTakeTime: "Hesap silme işlemi kaynak yoğun bir işlem olduğundan, oluşturduğunuz içerik miktarına ve yüklediğiniz dosya sayısına bağlı olarak tamamlanması biraz zaman alabilir." + sendEmail: "Hesap silme işlemi tamamlandıktan sonra, bu hesaba kayıtlı E-Posta adresine bir e-posta gönderilecektir." + requestAccountDelete: "Hesap silme talebi" + started: "Silme işlemi başlatıldı." + inProgress: "Silme işlemi şu anda devam ediyor." +_ad: + back: "Geri" + reduceFrequencyOfThisAd: "Bu reklamı daha az göster" + hide: "Gizle" + timezoneinfo: "Haftanın günü, sunucunun saat diliminden belirlenir." + adsSettings: "Reklam ayarları" + notesPerOneAd: "Gerçek zamanlı güncelleme reklam yerleşim aralığı (Reklam başına notlar)" + setZeroToDisable: "Bu değeri 0 olarak ayarlayarak gerçek zamanlı güncelleme reklamlarını devre dışı bırakın." + adsTooClose: "Mevcut reklam aralığı çok düşük olduğu için kullanıcı deneyimini önemli ölçüde kötüleştirebilir." +_forgotPassword: + enterEmail: "Kayıt olurken kullandığınız E-Posta adresini girin. Şifrenizi sıfırlayabileceğiniz bir bağlantı bu adrese gönderilecektir." + ifNoEmail: "Kayıt sırasında E-Posta kullanmadıysanız, lütfen bunun yerine örnek yöneticisiyle iletişime geçin." + contactAdmin: "This instance does not support using email addresses, please contact the instance administrator to reset your password instead." +_gallery: + my: "Benim Galerim" + liked: "Beğenilen Gönderiler" + like: "Beğen" + unlike: "Benzerlerini kaldır" _email: _follow: - title: "seni takip etti" + title: "Yeni bir takipçin var." + _receiveFollowRequest: + title: "Bir takip isteği aldınız." +_plugin: + install: "Eklentileri yükle takip isteği aldınız" + installWarn: "Güvenilir olmayan eklentileri yüklemeyiniz." + manage: "Eklentileri yönet" + viewSource: "Kaynak görüntüle" + viewLog: "Günlüğü göster" +_preferencesBackups: + list: "Created backups" + saveNew: "Yeni yedeklemeyi kaydet" + loadFile: "Dosyadan yükle" + apply: "Bu cihaza başvur" + save: "Değişiklikleri kaydet" + inputName: "Lütfen bu yedekleme için bir ad girin." + cannotSave: "Kaydetme başarısız oldu" + nameAlreadyExists: "“{name}” adlı bir yedekleme zaten mevcut. Lütfen farklı bir ad girin." + applyConfirm: "Bu cihaza “{name}” yedeklemesini gerçekten uygulamak istiyor musunuz? Bu cihazın mevcut ayarları üzerine yazılacaktır." + saveConfirm: "Yedeklemeyi {name} olarak kaydedin?" + deleteConfirm: "{name} yedeklemesini silmek ister misiniz?" + renameConfirm: "Bu yedeğin adını “{old}” den “{new}” ye değiştirmek ister misiniz?" + noBackups: "Yedekleme mevcut değildir. “Yeni yedekleme oluştur” seçeneğini kullanarak bu sunucudaki istemci ayarlarınızı yedekleyebilirsiniz." + createdAt: "Oluşturulma tarihi: {date} {time}" + updatedAt: "Güncelleme tarihi: {date} {time}" + cannotLoad: "Yükleme başarısız" + invalidFile: "Geçersiz dosya biçimi" +_registry: + scope: "Kapsam" + key: "Anahtar" + keys: "Anahtarlar" + domain: "Alan adı" + createKey: "Anahtar oluştur" +_aboutMisskey: + about: "Misskey, 2014 yılından beri syuilo tarafından geliştirilen açık kaynaklı bir yazılımdır." + contributors: "Başlıca katkıda bulunanlar" + allContributors: "Tüm katkıda bulunanlar" + source: "Kaynak kodu" + original: "Orijinal" + thisIsModifiedVersion: "{name} orijinal Misskey'in değiştirilmiş bir sürümünü kullanır." + translation: "Misskey'i çevir" + donate: "Misskey'e bağış yapın" + morePatrons: "Burada adı geçmeyen diğer birçok yardımseverin desteğine de teşekkür ederiz. Teşekkürler! 🥰" + patrons: "Müşteriler" + projectMembers: "Proje üyeleri" +_displayOfSensitiveMedia: + respect: "Hassas olarak işaretlenmiş medyayı gizle" + ignore: "Hassas olarak işaretlenmiş medya görüntüleme" + force: "Hide all media" +_instanceTicker: + none: "Asla gösterme" + remote: "Uzak kullanıcılar için göster" + always: "Her zaman göster" +_serverDisconnectedBehavior: + reload: "Otomatik olarak yeniden yükle" + dialog: "Otomatik olarak yeniden yükle" + quiet: "Göze batmayan uyarı göster" +_channel: + create: "Kanal oluştur" + edit: "Kanalı düzenle" + setBanner: "Afiş ayarla" + removeBanner: "Afişi kaldır" + featured: "Trend olan" + owned: "Sahip olunan" + following: "Takip edildi" + usersCount: "{n} Katılımcılar" + notesCount: "{n} Notlar" + nameAndDescription: "Adı ve açıklaması" + nameOnly: "Sadece isim" + allowRenoteToExternal: "Kanal dışında yeniden not alma ve alıntı yapmaya izin ver" +_menuDisplay: + sideFull: "Yan" + sideIcon: "Yan (Simgeler)" + top: "En üst" + hide: "Gizle" +_wordMute: + muteWords: "Sessiz kelimeler" + muteWordsDescription: "AND koşulu için boşluklarla, OR koşulu için satır sonlarıyla ayırın." + muteWordsDescription2: "Surround keywords with slashes to use regular expressions." +_instanceMute: + instanceMuteDescription: "Bu, listelenen sunuculardan gelen tüm notları/yeniden notları sessize alır, sessize alınan bir sunucudan bir kullanıcıya yanıt veren kullanıcıların notları da dahil olmak üzere." + instanceMuteDescription2: "Yeni satırlarla ayırın" + title: "Listelenen sunuculardan notları gizler." + heading: "Sessize alınacak sunucuların listesi" _theme: + explore: "Temaları Keşfedin" + install: "Bir tema yükleyin" + manage: "Temaları yönet" + code: "Tema kodu" + copyThemeCode: "Tema kodunu kopyala" + description: "Açıklama" + installed: "{name} kuruldu" + installedThemes: "Yüklü temalar" + builtinThemes: "Yerleşik temalar" + instanceTheme: "Sunucu teması" + alreadyInstalled: "Bu tema zaten yüklenmiştir." + invalid: "Bu temanın biçimi geçersizdir." + make: "Bir tema oluşturun" + base: "Base" + addConstant: "Sabit ekle" + constant: "Sabit" + defaultValue: "Varsayılan değer" color: "Renk" + refProp: "Bir özelliği referans al" + refConst: "Sabiti referans al" + key: "Anahtar" + func: "İşlevler" + funcKind: "İşlev türü" + argument: "Tartışma" + basedProp: "Referans verilen mülk" + alpha: "Opaklık" + darken: "Koyulaştır" + lighten: "Hafiflet" + inputConstantName: "Bu sabit için bir ad girin" + importInfo: "Buraya tema kodunu girerseniz, onu tema düzenleyicisine aktarabilirsiniz." + deleteConstantConfirm: "{const} sabitini gerçekten silmek istiyor musunuz?" keys: - mention: "Bahset" - renote: "vazgeçme" + accent: "Aksan" + bg: "Arka plan" + fg: "Metin" + focus: "Odak" + indicator: "Gösterge" + panel: "Panel" + shadow: "Gölge" + header: "Başlık" + navBg: "Kenar çubuğu arka planı" + navFg: "Kenar çubuğu metni" + navActive: "Kenar çubuğu metni (Etkin)" + navIndicator: "Kenar çubuğu göstergesi" + link: "Link" + hashtag: "Hashtag" + mention: "Bahsetmeler" + mentionMe: "Bahsetmeler (Ben)" + renote: "Renote" + modalBg: "Modal arka plan" + divider: "Bölücü" + scrollbarHandle: "Kaydırma çubuğu" + scrollbarHandleHover: "Kaydırma çubuğu (Fareyi üzerine getir)" + dateLabelFg: "Tarih etiketi metni" + infoBg: "Bilgi arka planı" + infoFg: "Bilgi metni" + infoWarnBg: "Uyarı arka planı" + infoWarnFg: "Uyarı metni" + toastBg: "Bildirim arka planı" + toastFg: "Bildirim metni" + buttonBg: "Düğme arka planı" + buttonHoverBg: "Button background (Hover)" + inputBorder: "Giriş alanı kenarlığı" + badge: "Rozet" + messageBg: "Sohbet arka planı" + fgHighlighted: "Vurgulanan Metin" _sfx: - note: "notlar" - notification: "Bildirim" + note: "Yeni not" + noteMy: "Kendi notu" + notification: "Bildirimler" + reaction: "Reaksiyon seçimi hakkında" + chatMessage: "Sohbet Mesajları" +_soundSettings: + driveFile: "Drive'da bir ses dosyası kullanın." + driveFileWarn: "Drive'dan bir ses dosyası seçin." + driveFileTypeWarn: "Bu dosya desteklenmiyor" + driveFileTypeWarnDescription: "Bir ses dosyası seçin" + driveFileDurationWarn: "Ses kaydı çok uzun." + driveFileDurationWarnDescription: "Uzun sesli mesajlar Misskey'in kullanımını engelleyebilir. Devam etmek istiyor musunuz?" + driveFileError: "Ses yüklenemedi. Lütfen ayarları değiştirin." +_ago: + future: "Gelecekte" + justNow: "Şu anda" + secondsAgo: "{n} saniye önce" + minutesAgo: "{n} dakika önce" + hoursAgo: "{n} saat önce" + daysAgo: "{n} gün önce" + weeksAgo: "{n} hafta önce" + monthsAgo: "{n} ay önce" + yearsAgo: "{n} yıl önce" + invalid: "Yok" +_timeIn: + seconds: "{n} saniye içinde" + minutes: "{n} dakika içinde" + hours: "{n} saat içinde" + days: "{n} gün içinde" + weeks: "{n} hafta içinde" + months: "{n} ay içinde" + years: "{n} yıl içinde" +_time: + second: "Saniye(ler)" + minute: "Dakika(lar)" + hour: "Saat(ler)" + day: "Gün(ler)" _2fa: - renewTOTPCancel: "Hayır, teşekkürler" + alreadyRegistered: "2 faktörlü kimlik doğrulama cihazını zaten kaydettiniz." + registerTOTP: "Kimlik doğrulama uygulamasını kaydet" + step1: "Öncelikle, cihazınıza bir kimlik doğrulama uygulaması (örneğin {a} veya {b}) yükleyin." + step2: "Ardından, bu ekranda görüntülenen QR kodunu tarayın." + step2Uri: "Masaüstü programı kullanıyorsanız aşağıdaki URI'yi girin" + step3Title: "Doğrulama kodunu girin" + step3: "Uygulamanız tarafından sağlanan kimlik doğrulama kodunu (token) girerek kurulumu tamamlayın." + setupCompleted: "Kurulum tamamlandı" + step4: "Bundan sonra, gelecekteki tüm oturum açma girişimlerinde bu tür bir oturum açma jetonu istenecektir." + securityKeyNotSupported: "Tarayıcınız güvenlik anahtarlarını desteklemiyor." + registerTOTPBeforeKey: "Güvenlik veya geçiş anahtarını kaydetmek için bir kimlik doğrulama uygulaması kurun." + securityKeyInfo: "Parmak izi veya PIN kimlik doğrulamasının yanı sıra, hesabınızı daha da güvenli hale getirmek için FIDO2'yi destekleyen donanım güvenlik anahtarları aracılığıyla kimlik doğrulama da ayarlayabilirsiniz." + registerSecurityKey: "Güvenlik veya geçiş anahtarını kaydedin" + securityKeyName: "Bir anahtar adı girin" + tapSecurityKey: "Güvenlik veya geçiş anahtarını kaydetmek için lütfen tarayıcınızı takip edin." + removeKey: "Güvenlik anahtarını kaldır" + removeKeyConfirm: "{name} anahtarını gerçekten silmek istiyor musunuz?" + whyTOTPOnlyRenew: "Güvenlik anahtarı kayıtlı olduğu sürece kimlik doğrulama uygulaması kaldırılamaz." + renewTOTP: "Kimlik doğrulama uygulamasını yeniden yapılandırın" + renewTOTPConfirm: "Bu, önceki uygulamanızdaki doğrulama kodlarının çalışmamasına neden olacaktır." + renewTOTPOk: "Yeniden yapılandır" + renewTOTPCancel: "İptal" + checkBackupCodesBeforeCloseThisWizard: "Bu pencereyi kapatmadan önce, lütfen aşağıdaki yedek kodları not edin." + backupCodes: "Yedek kodlar" + backupCodesDescription: "İki faktörlü kimlik doğrulama uygulamasını kullanamaz hale gelmeniz durumunda, bu kodları kullanarak hesabınıza erişebilirsiniz. Her kod yalnızca bir kez kullanılabilir. Lütfen bu kodları güvenli bir yerde saklayın." + backupCodeUsedWarning: "Yedek kod kullanıldı. Artık kullanamıyorsanız, lütfen iki faktörlü kimlik doğrulamayı mümkün olan en kısa sürede yeniden yapılandırın." + backupCodesExhaustedWarning: "Tüm yedek kodlar kullanıldı. İki faktörlü kimlik doğrulama uygulamanıza erişiminizi kaybederseniz, bu hesaba erişemezsiniz. Lütfen iki faktörlü kimlik doğrulamayı yeniden yapılandırın." + moreDetailedGuideHere: "İşte ayrıntılı kılavuz" _permissions: - "read:blocks": "Engellenen hesapları gör" - "write:blocks": "Engellenen hesap listesini düzenle" + "read:account": "Hesap bilgilerinizi görüntüleyin" + "write:account": "Hesap bilgilerinizi düzenleyin" + "read:blocks": "Engellenen kullanıcıların listesini görüntüleyin" + "write:blocks": "Engellenen kullanıcılar listenizi düzenleyin" + "read:drive": "Drive dosyalarınıza ve klasörlerinize erişin" + "write:drive": "Drive dosyalarınızı ve klasörlerinizi düzenleyin veya silin" + "read:favorites": "Favoriler listenizi görüntüleyin" + "write:favorites": "Favoriler listenizi düzenleyin" + "read:following": "Takip ettiğiniz kişilerle ilgili bilgileri görüntüleyin" + "write:following": "Diğer hesapları takip et veya takipten çıkar" + "read:messaging": "Sohbetlerinizi görüntüleyin" + "write:messaging": "Sohbet mesajlarını oluşturun veya silin" + "read:mutes": "Sessize alınan kullanıcıların listesini görüntüleyin" + "write:mutes": "Sessize alınan kullanıcıların listesini düzenleyin" + "write:notes": "Notlar oluşturun veya silin" + "read:notifications": "Bildirimlerinizi görüntüleyin" + "write:notifications": "Bildirimlerinizi yönetin" + "read:reactions": "Tepkilerinizi görüntüleyin" + "write:reactions": "Tepkilerinizi düzenleyin" + "write:votes": "Ankete oy verin" + "read:pages": "Sayfalarınızı görüntüleyin" + "write:pages": "Sayfalarınızı düzenleyin veya silin" + "read:page-likes": "Beğenilen sayfaların listesini görüntüle" + "write:page-likes": "Beğenilen sayfaların listesini düzenle" + "read:user-groups": "Kullanıcı gruplarınızı görüntüleyin" + "write:user-groups": "Kullanıcı gruplarınızı düzenleyin veya silin" + "read:channels": "Kanallarınızı görüntüleyin" + "write:channels": "Kanallarınızı düzenleyin" + "read:gallery": "Galeriyi görüntüle" + "write:gallery": "Galeri düzenle" + "read:gallery-likes": "Beğendiğiniz galeri gönderilerinin listesini görüntüleyin" + "write:gallery-likes": "Beğendiğiniz galeri gönderilerinin listesini düzenleyin" + "read:flash": "Oynat" + "write:flash": "Oyunları Düzenle" + "read:flash-likes": "Beğenilen Oyunların listesini görüntüle" + "write:flash-likes": "Beğenilen Oyunlar listesini düzenle" + "read:admin:abuse-user-reports": "Kullanıcı raporlarını görüntüle" + "write:admin:delete-account": "Kullanıcı hesabını sil" + "write:admin:delete-all-files-of-a-user": "Bir kullanıcının tüm dosyalarını sil" + "read:admin:index-stats": "Veritabanı dizin istatistiklerini görüntüle" + "read:admin:table-stats": "Veritabanı tablosu istatistiklerini görüntüle" + "read:admin:user-ips": "Kullanıcı IP adreslerini görüntüleyin" + "read:admin:meta": "Sunucu meta verilerini görüntüle" + "write:admin:reset-password": "Kullanıcı şifresini sıfırla" + "write:admin:resolve-abuse-user-report": "Kullanıcı raporunu çözme" + "write:admin:send-email": "E-Posta gönder" + "read:admin:server-info": "Sunucu bilgilerini görüntüle" + "read:admin:show-moderation-log": "Moderasyon günlüğünü görüntüle" + "read:admin:show-user": "Özel kullanıcı bilgilerini görüntüle" + "write:admin:suspend-user": "Kullanıcıyı askıya al" + "write:admin:unset-user-avatar": "Kullanıcı avatarını kaldır" + "write:admin:unset-user-banner": "Kullanıcı afişini kaldır" + "write:admin:unsuspend-user": "Kullanıcı askıya alma işlemini kaldır" + "write:admin:meta": "Sunucu meta verilerini yönetme" + "write:admin:user-note": "Moderasyon notunu yönet" + "write:admin:roles": "Rolleri yönet" + "read:admin:roles": "Rolü görüntüle" + "write:admin:relays": "Röleleri yönetme" + "read:admin:relays": "Röleleri görüntüle" + "write:admin:invite-codes": "Davet kodlarını yönet" + "read:admin:invite-codes": "Davet kodlarını görüntüle" + "write:admin:announcements": "Duyuruları yönet" + "read:admin:announcements": "Duyuruları görüntüle" + "write:admin:avatar-decorations": "Avatar süslemelerini yönetebilir" + "read:admin:avatar-decorations": "Avatar süslemelerini görüntüle" + "write:admin:federation": "Federasyon verilerini yönetme" + "write:admin:account": "Kullanıcı hesabını yönet" + "read:admin:account": "Kullanıcı hesabını görüntüle" + "write:admin:emoji": "Emoji'leri yönet" + "read:admin:emoji": "Emojiyi görüntüle" + "write:admin:queue": "İş kuyruğunu yönet" + "read:admin:queue": "İş kuyruğu bilgilerini görüntüle" + "write:admin:promo": "Promosyon notlarını yönet" + "write:admin:drive": "Kullanıcı sürücüsünü yönet" + "read:admin:drive": "Kullanıcı sürücü bilgilerini görüntüle" + "read:admin:stream": "Yönetici için WebSocket API'sını kullanın" + "write:admin:ad": "Reklamları yönet" + "read:admin:ad": "Reklamları görüntüle" + "write:invite-codes": "Davet kodları oluşturun" + "read:invite-codes": "Davet kodlarını alın" + "write:clip-favorite": "Favorilere eklenen klipleri yönet" + "read:clip-favorite": "Favorilere eklenen klipleri görüntüle" + "read:federation": "Federasyon verilerini alın" + "write:report-abuse": "İhlali bildir" + "write:chat": "Sohbet mesajlarını oluşturun veya silin" + "read:chat": "Sohbeti Gözat" +_auth: + shareAccessTitle: "Uygulama izinlerinin verilmesi" + shareAccess: "“{name}”nin bu hesaba erişmesine izin vermek ister misiniz?" + shareAccessAsk: "Bu uygulamanın hesabınıza erişmesine izin vermek istediğinizden emin misiniz?" + permission: "{name} aşağıdaki izinleri talep etmektedir." + permissionAsk: "Bu uygulama aşağıdaki izinleri talep etmektedir" + pleaseGoBack: "Lütfen uygulamaya geri dönün." + callback: "Uygulamaya geri dönmek" + accepted: "Erişim izni verildi" + denied: "Erişim reddedildi" + scopeUser: "Aşağıdaki kullanıcı olarak çalıştırın" + pleaseLogin: "Uygulamaları yetkilendirmek için lütfen giriş yapın." + byClickingYouWillBeRedirectedToThisUrl: "Erişim izni verildiğinde, otomatik olarak aşağıdaki URL'ye yönlendirileceksiniz." +_antennaSources: + all: "Tüm notlar" + homeTimeline: "Takip edilen kullanıcıların notları" + users: "Belirli kullanıcılardan gelen notlar" + userList: "Belirtilen kullanıcı listesinden notlar" + userBlacklist: "Bir veya daha fazla belirli kullanıcıya ait olanlar hariç tüm notlar" +_weekday: + sunday: "Pazar" + monday: "Pazartesi" + tuesday: "Salı" + wednesday: "Çarşamba" + thursday: "Perşembe" + friday: "Cuma" + saturday: "Cumartesi" _widgets: profile: "Profil" instanceInfo: "Sunucu Bilgisi" - notifications: "Bildirim" - timeline: "Zaman çizelgesi" + memo: "Yapışkan notlar" + notifications: "Bildirimler" + timeline: "Timeline" calendar: "Takvim" + trends: "Trend olan" clock: "Saat" + rss: "RSS okuyucu" + rssTicker: "RSS-Ticker" activity: "Etkinlik" + photos: "Fotoğraflar" + digitalClock: "Dijital saat" + unixClock: "UNIX saati" federation: "Federasyon" - jobQueue: "İşlem sırası" + instanceCloud: "Bulut sunucu" + postForm: "Gönderim formu" + slideshow: "Slayt gösterisi" + button: "Düğme" + onlineUsers: "Çevrimiçi kullanıcılar" + jobQueue: "İş Kuyruğu" + serverMetric: "Sunucu ölçümleri" + aiscript: "AiScript konsolu" + aiscriptApp: "AiScript Uygulaması" + aichan: "Ai" + userList: "Kullanıcı listesi" _userList: - chooseList: "Bir liste seç" + chooseList: "Bir liste seçin" + clicker: "Tıklayıcı" + birthdayFollowings: "Bugünün Doğum Günleri" + chat: "Sohbet" _cw: - show: "Devamını yükle" + hide: "Gizle" + show: "İçeriği göster" + chars: "{count} karakter" + files: "{count} dosya(lar)" _poll: - vote: "Oy kullan" + noOnlyOneChoice: "En az iki seçenek gereklidir." + choiceN: "Seçim {n}" + noMore: "Daha fazla seçenek ekleyemezsiniz." + canMultipleVote: "Birden fazla seçenek seçilmesine izin ver" + expiration: "Anketi sonlandır" + infinite: "Asla" + at: "Şurada bitir..." + after: "Sonrasında bitir..." + deadlineDate: "Bitiş tarihi" + deadlineTime: "Zaman" + duration: "Süre" + votesCount: "{n} oy" + totalVotes: "Toplam {n} oy" + vote: "Oy ver" + showResult: "Sonuçları görüntüle" + voted: "Oylandı" + closed: "Sona erdi" + remainingDays: "{d} gün {h} saat kaldı" + remainingHours: "{h} saat {m} dakika kaldı" + remainingMinutes: "{m} dakika {s} saniye kaldı" + remainingSeconds: "{s} saniye kaldı" _visibility: - publicDescription: "Herkese açık" + public: "Halka açık" + publicDescription: "Notunuz tüm kullanıcılar tarafından görülebilir olacaktır." home: "Ana sayfa" - followers: "takipçi" + homeDescription: "Yalnızca ana zaman çizelgesine gönder" + followers: "Takipçiler" + followersDescription: "Sadece takipçilerinize görünür hale getirin" + specified: "Doğrudan" + specifiedDescription: "Yalnızca belirli kullanıcılar için görünür hale getir" + disableFederation: "Federasyon olmadan" + disableFederationDescription: "Diğer sunuculara aktarma" +_postForm: + quitInspiteOfThereAreUnuploadedFilesConfirm: "Yüklenmemiş dosyalar var, bunları silip formu kapatmak ister misiniz?" + uploaderTip: "Dosya henüz yüklenmemiştir. Dosya menüsünden dosyayı yeniden adlandırabilir, görüntüleri kırpabilir, filigran ekleyebilir ve dosyayı sıkıştırabilir veya sıkıştırmayı kaldırabilirsiniz. Notu yayınladığınızda dosyalar otomatik olarak yüklenir." + replyPlaceholder: "Bu notu yanıtla..." + quotePlaceholder: "Bu notu alıntı yap..." + channelPlaceholder: "Bir kanala gönder..." + _placeholders: + a: "Ne yapıyorsun?" + b: "Çevrenizde neler oluyor?" + c: "Aklında ne var?" + d: "Ne söylemek istiyorsun?" + e: "Yazmaya başlayın..." + f: "Yazmanızı bekliyoruz..." _profile: - username: "Kullanıcı Adı" + name: "Ad" + username: "Kullanıcı adı" + description: "Biyografi" + youCanIncludeHashtags: "Biyografinize hashtag'ler de ekleyebilirsiniz." + metadata: "Ek Bilgiler" + metadataEdit: "Ek bilgileri düzenle" + metadataDescription: "Bunları kullanarak profilinizde ek bilgi alanları görüntüleyebilirsiniz." + metadataLabel: "Etiket" + metadataContent: "İçerik" + changeAvatar: "Avatarı değiştir" + changeBanner: "Change banner" + verifiedLinkDescription: "Buraya profilinize bağlantı içeren bir URL girerek, alanın yanında bir sahiplik doğrulama simgesi görüntülenebilir." + avatarDecorationMax: "En fazla {max} dekorasyon ekleyebilirsiniz." + followedMessage: "Takip edildiğinizde gönderilen mesaj" + followedMessageDescription: "Aboneleriniz sizi takip ettiklerinde görüntülenmesini istediğiniz kısa bir mesaj ayarlayabilirsiniz." + followedMessageDescriptionForLockedAccount: "Takip isteklerinin onay gerektirdiğini ayarladıysanız, bir takip isteğini kabul ettiğinizde bu mesaj görüntülenir." _exportOrImport: - followingList: "takipçi" - muteList: "Gizle" - blockingList: "engelle" - userLists: "Listeler" + allNotes: "Tüm notlar" + favoritedNotes: "Favori notlar" + clips: "Klip" + followingList: "Takip edilen kullanıcılar" + muteList: "Sessize alınan kullanıcılar" + blockingList: "Engellenen kullanıcılar" + userLists: "Kullanıcı listeleri" + excludeMutingUsers: "Sessize alınan kullanıcıları hariç tut" + excludeInactiveUsers: "Etkin olmayan kullanıcıları hariç tut" + withReplies: "İçe aktarılan kullanıcıların yanıtlarını zaman çizelgesine dahil edin" _charts: federation: "Federasyon" + apRequest: "Talepler" + usersIncDec: "Kullanıcı sayısındaki fark" + usersTotal: "Toplam kullanıcı sayısı" + activeUsers: "Aktif kullanıcılar" + notesIncDec: "Not sayısındaki fark" + localNotesIncDec: "Yerel notaların sayısındaki fark" + remoteNotesIncDec: "Uzak notların sayısındaki fark" + notesTotal: "Toplam not sayısı" + filesIncDec: "Dosya sayısındaki fark" + filesTotal: "Toplam dosya sayısı" + storageUsageIncDec: "Depolama kullanımı farkı" + storageUsageTotal: "Total storage usage" +_instanceCharts: + requests: "Talepler" + users: "Kullanıcı sayısındaki fark" + usersTotal: "Kümülatif kullanıcı sayısı" + notes: "Not sayısındaki fark" + notesTotal: "Kümülatif not sayısı" + ff: "Takip edilen kullanıcı sayısı / takipçi sayısı farkı" + ffTotal: "Takip edilen kullanıcıların / takipçilerin toplam sayısı" + cacheSize: "Önbellek boyutundaki fark" + cacheSizeTotal: "Kümülatif önbellek boyutu" + files: "Dosya sayısındaki fark" + filesTotal: "Toplam dosya sayısı" _timelines: - home: "Ana sayfa" + home: "Ana Sayfa" + local: "Yerel" + social: "Sosyal" global: "Küresel" +_play: + new: "Oyun Oluştur" + edit: "Düzenle Oynat" + created: "Oyun oluşturuldu" + updated: "Düzenlenmiş oynat" + deleted: "Oyun silindi" + pageSetting: "Oyun ayarları" + editThisPage: "Bu Oyunu Düzenle" + viewSource: "Kaynak görüntüle" + my: "Oyunlarım" + liked: "Beğenilen Oyunlar" + featured: "Popüler" + title: "Başlık" + script: "Senaryo" + summary: "Açıklama" + visibilityDescription: "Özel olarak ayarlamak, profilinizde görünmeyeceği anlamına gelir, ancak URL'ye sahip olan herkes yine de erişebilir." _pages: + newPage: "Yeni bir Sayfa oluşturun" + editPage: "Bu sayfayı düzenle" + readPage: "Bu Sayfanın Kaynağını Görüntüleme" + pageSetting: "Sayfa ayarları" + nameAlreadyExists: "Belirtilen Sayfa URL'si zaten mevcut." + invalidNameTitle: "Belirtilen Sayfa URL'si geçersiz" + invalidNameText: "Sayfa başlığının boş olmadığından emin olun." + editThisPage: "Bu sayfayı düzenle" + viewSource: "Kaynak görüntüle" + viewPage: "Sayfalarınızı görüntüleyin" + like: "Beğen" + unlike: "Benzerlerini kaldır" + my: "Benzerlerini kaldır" + liked: "Beğenilen Sayfalar" + featured: "Popüler" + inspector: "Müfettiş" + contents: "İçindekiler" + content: "Sayfa bloğu" + variables: "Değişkenler" + title: "Başlık" + url: "Sayfa URL'si" + summary: "Sayfa özeti" + alignCenter: "Merkez öğeleri" + hideTitleWhenPinned: "Profiline sabitlendiğinde sayfa başlığını gizle" + font: "Yazı tipi" + fontSerif: "Serif" + fontSansSerif: "Sans Serif" + eyeCatchingImageSet: "Küçük resmi ayarla" + eyeCatchingImageRemove: "Küçük resmi sil" + chooseBlock: "Blok ekle" + enterSectionTitle: "Bölüm başlığını girin" + selectType: "Bir tür seçin" + contentBlocks: "İçerik" + inputBlocks: "Giriş" + specialBlocks: "Özel" blocks: + text: "Metin" + textarea: "Metin alanı" + section: "Bölüm" image: "Görseller" + button: "Düğme" + dynamic: "Dinamik Bloklar" + dynamicDescription: "Bu blok kaldırılmıştır. Bundan sonra lütfen {play} kullanın." + note: "Gömülü not" + _note: + id: "Not Kimliği" + idDescription: "Alternatif olarak notun URL'sini buraya yapıştırabilirsiniz." + detailed: "Ayrıntılı görünüm" +_relayStatus: + requesting: "Beklemede" + accepted: "Accepted" + rejected: "Reddedildi" _notification: + fileUploaded: "Dosya başarıyla yüklendi" + youGotMention: "{name} sizden bahsetti." + youGotReply: "{name} size yanıt verdi" + youGotQuote: "{name} sizden alıntı yaptı" + youRenoted: "{name}'den Renote" youWereFollowed: "seni takip etti" + youReceivedFollowRequest: "Bir takip isteği aldınız." + yourFollowRequestAccepted: "Takip isteğiniz kabul edildi." + pollEnded: "Anket sonuçları açıklandı." + newNote: "Yeni not" unreadAntennaNote: "{name} anteni" + roleAssigned: "Verilen rol" + chatRoomInvitationReceived: "Sohbet odasına davet edildiniz." + emptyPushNotificationMessage: "Push bildirimleri güncellendi" + achievementEarned: "Achievement unlocked" + testNotification: "Test bildirimi" + checkNotificationBehavior: "Bildirim görünümünü kontrol edin" + sendTestNotification: "Test bildirimi gönder" + notificationWillBeDisplayedLikeThis: "Bildirimler şöyle görünür" + reactedBySomeUsers: "{n} kullanıcı tepki gösterdi" + likedBySomeUsers: "{n} kullanıcı notunuzu beğendi." + renotedBySomeUsers: "{n} kullanıcıdan gelen hatırlatma" + followedBySomeUsers: "{n} kullanıcı tarafından takip ediliyor" + flushNotification: "Bildirimleri temizle" + exportOfXCompleted: "{x} ihracatı tamamlandı." + login: "Birisi oturum açtı" + createToken: "Bir erişim jetonu oluşturuldu." + createTokenDescription: "Eğer bilmiyorsanız, “{text}” aracılığıyla erişim jetonunu silin." _types: - follow: "takipçi" - mention: "Bahset" - renote: "vazgeçme" - quote: "alıntı" - reaction: "Tepkiler" - receiveFollowRequest: "Takip isteği alındı" - followRequestAccepted: "Takip isteği kabul edildi" - login: "Giriş Yap " + all: "Tümü" + note: "Yeni notlar" + follow: "Yeni takipçiler" + mention: "Bahsetmeler" + reply: "Yanıtlar" + renote: "Renote" + quote: "Alıntılar" + reaction: "Tepki" + pollEnded: "Anketler sona eriyor" + receiveFollowRequest: "Takip istekleri alındı" + followRequestAccepted: "Kabul edilen takip istekleri" + roleAssigned: "Verilen rol" + chatRoomInvitationReceived: "Sohbet odasına davet edildi" + achievementEarned: "Başarı kilidi açıldı" + exportCompleted: "İhracat işlemi tamamlandı." + login: "Giriş Yap" + createToken: "Erişim jetonu oluştur" + test: "Bildirim testi" + app: "Bağlı uygulamalardan gelen bildirimler" _actions: - reply: "yanıt" - renote: "vazgeçme" + followBack: "seni takip ettim" + reply: "Yanıtla" + renote: "Renote" _deck: - configureColumn: "Sütun seçenekleri" + alwaysShowMainColumn: "Ana sütunu her zaman göster" + columnAlign: "Sütunları hizala" + columnGap: "Sütunlar arasındaki kenar boşluğu" + deckMenuPosition: "Sütunlar arasındaki kenar boşluğu" + navbarPosition: "Gezinti çubuğu konumu" + addColumn: "Sütun ekle" + newNoteNotificationSettings: "Notification setting for new notes" + configureColumn: "Sütun ayarları" + swapLeft: "Sol sütunla değiştir" + swapRight: "Sağ sütunla değiştir" + swapUp: "Yukarıdaki sütunla değiştirin" + swapDown: "Aşağıdaki sütunla değiştirin" + stackLeft: "Sol sütunda yığın" + popRight: "Sağdaki pop sütunu" + profile: "Profil" + newProfile: "Yeni profil" + deleteProfile: "Profili sil" + introduction: "Sütunları serbestçe düzenleyerek size en uygun arayüzü oluşturun!" + introduction2: "Ekranın sağındaki + işaretine tıklayarak istediğiniz zaman yeni sütunlar ekleyebilirsiniz." + widgetsIntroduction: "Lütfen sütun menüsünden “Widget'ları düzenle” seçeneğini seçin ve bir widget ekleyin." + useSimpleUiForNonRootPages: "Gezinilen sayfalar için basit kullanıcı arayüzü kullanın" + usedAsMinWidthWhenFlexible: "“Otomatik genişlik ayarı” seçeneği etkinleştirildiğinde, bunun için minimum genişlik kullanılacaktır." + flexible: "Otomatik genişlik ayarı" + enableSyncBetweenDevicesForProfiles: "Cihazlar arasında profil bilgilerinin senkronizasyonunu etkinleştirin" _columns: - notifications: "Bildirim" - tl: "Zaman çizelgesi" - list: "Listeler" + main: "Ana" + widgets: "Widget'lar" + notifications: "Bildirimler" + tl: "Ana Sayfa" + antenna: "Antenler" + list: "Liste" + channel: "Kanal" mentions: "Bahsetmeler" + direct: "Doğrudan notlar" + roleTimeline: "Rol Timeline" + chat: "Sohbet" +_dialog: + charactersExceeded: "Maksimum karakter sınırını aştınız! Şu anda {current} karakterde {max} karakterlik sınırın {current} karakterinde bulunuyorsunuz." + charactersBelow: "You're below the minimum character limit! Currently at {current} of {min}." +_disabledTimeline: + title: "Timeline devre dışı bırakıldı" + description: "Mevcut rolleriniz altında bu Timeline'ı kullanamazsınız." +_drivecleaner: + orderBySizeDesc: "Azalan Dosya Boyutları" + orderByCreatedAtAsc: "Yükselen Tarihler" +_webhookSettings: + createWebhook: "Webhook oluştur" + modifyWebhook: "Webhook'u değiştir" + name: "Webhook'u değiştir" + secret: "Gizli" + trigger: "Tetikleyici" + active: "Etkin" + _events: + follow: "Bir kullanıcıyı takip ederken" + followed: "Takip edildiğinde" + note: "Not gönderirken" + reply: "Yanıt alındığında" + renote: "Yeniden not edildiğinde" + reaction: "Tepki aldığınızda" + mention: "Bahsedildiğinde" + _systemEvents: + abuseReport: "Yeni bir rapor alındığında" + abuseReportResolved: "Çözüldüğünde rapor" + userCreated: "Kullanıcı oluşturulduğunda" + inactiveModeratorsWarning: "Moderatörler bir süredir aktif olmadıklarında" + inactiveModeratorsInvitationOnlyChanged: "Bir moderatör bir süre aktif olmadığında ve sunucu davetle erişilebilir hale getirildiğinde" + deleteConfirm: "Webhook'u silmek istediğinizden emin misiniz?" + testRemarks: "Anahtarın sağındaki düğmeyi tıklayarak sahte verilerle bir test Webhook gönderin." +_abuseReport: + _notificationRecipient: + createRecipient: "Raporlar için alıcı ekle" + modifyRecipient: "Raporlar için alıcıyı düzenle" + recipientType: "Bildirim türü" + _recipientType: + mail: "E-Posta" + webhook: "Webhook" + _captions: + mail: "Raporları aldığınızda, E-Postayı moderatörlerin e-posta adreslerine gönderin." + webhook: "Raporları aldığınızda veya çözdüğünüzde Sistem Webhook'una bir bildirim gönderin." + keywords: "Anahtar kelimeler" + notifiedUser: "Bildirilecek kullanıcılar" + notifiedWebhook: "Kullanılacak webhook" + deleteConfirm: "Bildirim alıcısını silmek istediğinizden emin misiniz?" _moderationLogTypes: - suspend: "askıya al" - resetPassword: "Şifre sıfırlama" + createRole: "Rol oluşturuldu" + deleteRole: "Rol silindi" + updateRole: "Rol güncellendi" + assignRole: "Rol atandı" + unassignRole: "Görevinden alınmış" + suspend: "Askıya alınmış" + unsuspend: "Askıya alınmamış" + addCustomEmoji: "Özel emoji eklendi" + updateCustomEmoji: "Özel emoji güncellendi" + deleteCustomEmoji: "Özel emoji silindi" + updateServerSettings: "Sunucu ayarları güncellendi" + updateUserNote: "Moderasyon notu güncellendi" + deleteDriveFile: "Dosya silindi" + deleteNote: "Not silindi" + createGlobalAnnouncement: "Küresel duyuru oluşturuldu" + createUserAnnouncement: "Kullanıcı duyurusu oluşturuldu" + updateGlobalAnnouncement: "Küresel duyuru güncellendi" + updateUserAnnouncement: "Kullanıcı duyurusu güncellendi" + deleteGlobalAnnouncement: "Küresel duyuru silindi" + deleteUserAnnouncement: "Kullanıcı duyurusu silindi" + resetPassword: "Şifreyi sıfırla" + suspendRemoteInstance: "Uzak sunucu askıya alındı" + unsuspendRemoteInstance: "Uzak sunucu askıya alınmadı" + updateRemoteInstanceNote: "Uzak sunucular için güncellenmiş moderasyon notu" + markSensitiveDriveFile: "Hassas olarak işaretlenmiş dosya" + unmarkSensitiveDriveFile: "Dosya hassas olarak işaretlenmemiş" + resolveAbuseReport: "Rapor çözüldü" + forwardAbuseReport: "Rapor iletildi" + updateAbuseReportNote: "Güncellenen raporun moderasyon notu" + createInvitation: "Davet oluşturuldu" + createAd: "Reklam oluşturuldu" + deleteAd: "Reklam silindi" + updateAd: "Reklam güncellendi" + createAvatarDecoration: "Avatar dekorasyonu oluşturuldu" + updateAvatarDecoration: "Avatar dekorasyonu güncellendi" + deleteAvatarDecoration: "Avatar süslemesi silindi" + unsetUserAvatar: "Kullanıcı avatarı ayarlanmamış" + unsetUserBanner: "Kullanıcı başlığı ayarlanmamış" + createSystemWebhook: "Sistem Webhook oluşturuldu" + updateSystemWebhook: "Sistem Webhook güncellendi" + deleteSystemWebhook: "Sistem Webhook silindi" + createAbuseReportNotificationRecipient: "Oluşturulan raporlar için alıcı" + updateAbuseReportNotificationRecipient: "Raporlar için alıcı güncellendi" + deleteAbuseReportNotificationRecipient: "Silinen raporlar için alıcı" + deleteAccount: "Hesap silindi" + deletePage: "Sayfa silindi" + deleteFlash: "Oyun silindi" + deleteGalleryPost: "Galeri gönderisi silindi" + deleteChatRoom: "Deleted Chat Room" + updateProxyAccountDescription: "Proxy hesabının açıklamasını güncelleyin" +_fileViewer: + title: "Dosya ayrıntıları" + type: "Dosya türü" + size: "Dosya boyutu" + url: "URL" + uploadedAt: "Yüklendiği tarih" + attachedNotes: "Ekli notlar" + usage: "Kullanılmış" + thisPageCanBeSeenFromTheAuthor: "Bu sayfa, bu dosyayı yükleyen kullanıcı tarafından görülebilir." +_externalResourceInstaller: + title: "Harici siteden yükle" + checkVendorBeforeInstall: "Yüklemeden önce bu kaynağın dağıtımcısının güvenilir olduğundan emin olun." + _plugin: + title: "Bu eklentiyi yüklemek ister misiniz?" + _theme: + title: "Bu temayı yüklemek ister misiniz?" + _meta: + base: "Temel renk şeması" + _vendorInfo: + title: "Dağıtıcı bilgileri" + endpoint: "Referans uç nokta" + hashVerify: "Hash doğrulama" + _errors: + _invalidParams: + title: "Geçersiz parametreler" + description: "Harici bir siteden veri yüklemek için yeterli bilgi yok. Lütfen girdiğiniz URL'yi kontrol edin." + _resourceTypeNotSupported: + title: "Bu harici kaynak desteklenmemektedir." + description: "Bu harici kaynağın türü desteklenmemektedir. Lütfen site yöneticisiyle iletişime geçin." + _failedToFetch: + title: "Veriler alınamadı" + fetchErrorDescription: "Harici siteyle iletişim sırasında bir hata oluştu. Tekrar denemeniz sorunu çözmezse, lütfen site yöneticisine başvurun." + parseErrorDescription: "Harici siteden yüklenen veriler işlenirken bir hata oluştu. Lütfen site yöneticisiyle iletişime geçin." + _hashUnmatched: + title: "Veri doğrulama başarısız oldu" + description: "Alınan verilerin bütünlüğünü doğrularken bir hata oluştu. Güvenlik önlemi olarak, kurulum devam edemez. Lütfen site yöneticisiyle iletişime geçin." + _pluginParseFailed: + title: "AiScript Hatası" + description: "İstenen veriler başarıyla alındı, ancak AiScript ayrıştırma sırasında bir hata oluştu. Lütfen eklenti yazarına başvurun. Hata ayrıntıları Javascript konsolunda görüntülenebilir." + _pluginInstallFailed: + title: "Eklenti kurulumu başarısız oldu" + description: "Eklenti yükleme sırasında bir sorun oluştu. Lütfen tekrar deneyin. Hata ayrıntıları Javascript konsolunda görüntülenebilir." + _themeParseFailed: + title: "Tema ayrıştırma başarısız oldu" + description: "İstenen veriler başarıyla alındı, ancak tema ayrıştırma sırasında bir hata oluştu. Lütfen tema yazarıyla iletişime geçin. Hata ayrıntıları Javascript konsolunda görüntülenebilir." + _themeInstallFailed: + title: "Tema yüklenemedi" + description: "Tema yükleme sırasında bir sorun oluştu. Lütfen tekrar deneyin. Hata ayrıntıları Javascript konsolunda görüntülenebilir." +_dataSaver: + _media: + title: "Medya yükleniyor" + description: "Görüntülerin/videoların otomatik olarak yüklenmesini engeller. Gizli görüntüler/videolar dokunulduğunda yüklenir." + _avatar: + title: "Avatar resmi" + description: "Avatar görüntüsünün animasyonunu durdurun. Animasyonlu görüntüler normal görüntülere göre dosya boyutu açısından daha büyük olabilir ve bu da veri trafiğinde daha fazla azalmaya yol açabilir." + _urlPreviewThumbnail: + title: "URL önizleme küçük resimlerini gizle" + description: "URL önizleme küçük resimleri artık yüklenmeyecektir." + _disableUrlPreview: + title: "URL önizlemesini devre dışı bırak" + description: "URL önizleme işlevini devre dışı bırakır. Küçük resimler aksine, bu işlev bağlantılı bilgilerin kendisinin yüklenmesini azaltır." + _code: + title: "Kod vurgulama" + description: "MFM vb. programlarda kod vurgulama notasyonları kullanılıyorsa, bunlar dokunulana kadar yüklenmez. Sözdizimi vurgulama, her programlama dili için vurgu tanım dosyalarının indirilmesini gerektirir. Bu nedenle, bu dosyaların otomatik olarak yüklenmesinin devre dışı bırakılması, iletişim verisi miktarını azaltması beklenir." +_hemisphere: + N: "Kuzey Yarımküre" + S: "Güney Yarımküre" + caption: "Bazı istemci ayarlarında mevsimi belirlemek için kullanılır." +_reversi: + reversi: "Tersine çevirme" + gameSettings: "Oyun ayarları" + chooseBoard: "Bir tahta seçin" + blackOrWhite: "Siyah/Beyaz" + blackIs: "{name} siyah oynuyor." + rules: "Kurallar" + thisGameIsStartedSoon: "Oyun kısa süre içinde başlayacak." + waitingForOther: "Rakibin sırasını beklemek" + waitingForMe: "Sıranızı bekliyorsunuz" + waitingBoth: "Hazır olun" + ready: "Hazır" + cancelReady: "Hazır değil" + opponentTurn: "Rakibin sırası" + myTurn: "Sıra sende" + turnOf: "Sıra {name}'de." + pastTurnOf: "{name}'nin sırası" + surrender: "Teslimiyet" + surrendered: "Teslim oldu" + timeout: "Zaman doldu" + drawn: "Çiz" + won: "{name} kazandı" + black: "Siyah" + white: "Beyaz" + total: "Toplam" + turnCount: "{count} döndür" + myGames: "Benim turlarım" + allGames: "Tüm turlar" + ended: "Sona erdi" + playing: "Şu anda oynatılıyor" + isLlotheo: "Taş sayısı daha az olan kazanır (Llotheo)" + loopedMap: "Döngüsel harita" + canPutEverywhere: "Fayanslar her yere yerleştirilebilir." + timeLimitForEachTurn: "Sıra için zaman sınırı" + freeMatch: "Ücretsiz Eşleştirme" + lookingForPlayer: "Rakip aranıyor..." + gameCanceled: "Oyun iptal edildi." + shareToTlTheGameWhenStart: "Oyun başlatıldığında zaman çizelgesinde paylaş" + iStartedAGame: "Oyun başladı! #MisskeyReversi" + opponentHasSettingsChanged: "Rakip ayarlarını değiştirmiştir." + allowIrregularRules: "Düzensiz kurallar (tamamen ücretsiz)" + disallowIrregularRules: "Düzensiz kurallar yok" + showBoardLabels: "Tahtada satır ve sütun numaralarını göster" + useAvatarAsStone: "Taşları kullanıcı avatarlarına dönüştürün" +_offlineScreen: + title: "Çevrimdışı - sunucuya bağlanılamıyor" + header: "Sunucuya bağlanılamıyor" +_urlPreviewSetting: + title: "URL önizleme ayarları" + enable: "URL önizlemesini etkinleştir" + allowRedirect: "URL önizleme yönlendirmesine izin ver" + allowRedirectDescription: "Bir URL'de yönlendirme ayarlanmışsa, bu özelliği etkinleştirerek yönlendirmeyi takip edebilir ve yönlendirilen içeriğin önizlemesini görüntüleyebilirsiniz. Bu özelliği devre dışı bırakmak sunucu kaynaklarından tasarruf sağlar, ancak yönlendirilen içerik görüntülenmez." + timeout: "Önizleme alırken zaman aşımı (ms)" + timeoutDescription: "Önizlemeyi almak bu değerden daha uzun sürerse, önizleme oluşturulmaz." + maximumContentLength: "Maksimum İçerik Uzunluğu (bayt)" + maximumContentLengthDescription: "Content-Length bu değerden yüksekse, önizleme oluşturulmaz." + requireContentLength: "Yalnızca Content-Length değerini alabiliyorsanız önizlemeyi oluşturun." + requireContentLengthDescription: "Diğer sunucu Content-Length değerini döndürmezse, önizleme oluşturulmaz." + userAgent: "Kullanıcı Aracısı" + userAgentDescription: "Önizlemeleri alırken kullanılacak Kullanıcı Aracısını ayarlar. Boş bırakılırsa, varsayılan Kullanıcı Aracısı kullanılır." + summaryProxy: "Önizlemeler oluşturan proxy uç noktaları" + summaryProxyDescription: "Misskey'in kendisi değil, Summaly Proxy kullanarak önizlemeler oluşturun." + summaryProxyDescription2: "Aşağıdaki parametreler, sorgu dizesi olarak proxy'ye bağlanır. Proxy bunları desteklemiyorsa, değerler yok sayılır." +_mediaControls: + pip: "Resim içinde resim" + playbackRate: "Oynatma Hızı" + loop: "Döngüsel oynatma" +_contextMenu: + title: "Bağlam menüsü" + app: "Uygulama" + appWithShift: "Shift tuşuyla uygulama" + native: "Doğal" +_gridComponent: + _error: + requiredValue: "Bu değer gereklidir." + columnTypeNotSupport: "Düzenli ifade ile doğrulama yalnızca type:text sütunları için desteklenir." + patternNotMatch: "Bu değer {pattern} içindeki desenle eşleşmiyor." + notUnique: "Bu değer benzersiz olmalıdır." +_roleSelectDialog: + notSelected: "Seçilmedi" +_customEmojisManager: + _gridCommon: + copySelectionRows: "Seçili satırları kopyala" + copySelectionRanges: "Seçimi kopyala" + deleteSelectionRows: "Seçili satırları sil" + deleteSelectionRanges: "Seçimdeki satırları sil" + searchSettings: "Arama ayarları" + searchSettingCaption: "Ayrıntılı arama kriterleri belirleyin." + searchLimit: "Sonuç sayısı" + sortOrder: "Sıralama düzeni" + registrationLogs: "Kayıt günlüğü" + registrationLogsCaption: "Emojileri güncellerken veya silerken günlükler görüntülenecektir. Güncelleme veya silme işleminden sonra, yeni bir sayfaya geçildiğinde veya yeniden yüklendiğinde günlükler kaybolacaktır." + alertEmojisRegisterFailedDescription: "Emojileri güncelleyemedi veya silemedi. Ayrıntılar için kayıt günlüğünü kontrol edin." + _logs: + showSuccessLogSwitch: "Başarı günlüğünü göster" + failureLogNothing: "Hata günlüğü yoktur." + logNothing: "Günlük kaydı yok." + _remote: + selectionRowDetail: "Seçilen satırın ayrıntıları" + importSelectionRows: "Seçilen satırları içe aktar" + importSelectionRangesRows: "Seçimdeki satırları içe aktar" + importEmojisButton: "Kontrol edilen Emojileri içe aktar" + confirmImportEmojisTitle: "Emoji'leri İçe Aktar" + confirmImportEmojisDescription: "Uzak sunucudan alınan {count} Emoji(ler)i içe aktarın. Emoji lisansına dikkat edin. Devam etmek istediğinizden emin misiniz?" + _local: + tabTitleList: "Kayıtlı emojiler" + tabTitleRegister: "Emoji kaydı" + _list: + emojisNothing: "Kayıtlı Emoji yok." + markAsDeleteTargetRows: "Silinecek hedef olarak seçilen satırları işaretleyin" + markAsDeleteTargetRanges: "Seçimdeki satırları silinecek hedef olarak işaretleyin" + alertUpdateEmojisNothingDescription: "Güncellenmiş Emoji yok." + alertDeleteEmojisNothingDescription: "Silinecek Emoji yok." + confirmMovePage: "Sayfaları taşımak ister misiniz?" + confirmChangeView: "Görüntüleme şeklini değiştirmek ister misiniz?" + confirmUpdateEmojisDescription: "{count} Emoji'yi güncelle. Devam etmek istediğinden emin misin?" + confirmDeleteEmojisDescription: "İşaretli {count} Emoji(leri) silin. Devam etmek istediğinizden emin misiniz?" + confirmResetDescription: "Şimdiye kadar yapılan tüm değişiklikler geri alınacaktır." + confirmMovePageDesciption: "Bu sayfadaki Emojilerde değişiklikler yapılmıştır.\nSayfayı kaydetmeden terk ederseniz, bu sayfada yapılan tüm değişiklikler silinecektir." + dialogSelectRoleTitle: "Emojilerde rol setine göre arama yapın" + _register: + uploadSettingTitle: "Yükleme ayarları" + uploadSettingDescription: "Bu ekranda, Emoji yüklerken davranışı yapılandırabilirsiniz." + directoryToCategoryLabel: "“Kategori” alanına dizin adını girin." + directoryToCategoryCaption: "Bir dizini sürükleyip bıraktığınızda, “kategori” alanına dizin adını girin." + confirmRegisterEmojisDescription: "Listeden Emojileri yeni özel Emojiler olarak kaydedin. Devam etmek istediğinizden emin misiniz? (Aşırı yüklemeyi önlemek için, tek bir işlemde yalnızca {count} Emoji kaydedilebilir)" + confirmClearEmojisDescription: "Düzenlemeleri silin ve listeden Emojileri temizleyin. Devam etmek istediğinizden emin misiniz?" + confirmUploadEmojisDescription: "Sürücüye sürüklenip bırakılan {count} dosyayı/dosyaları yükleyin. Devam etmek istediğinizden emin misiniz?" +_embedCodeGen: + title: "Gömme kodunu özelleştir" + header: "Başlığı göster" + autoload: "Otomatik olarak daha fazlasını yükle (kullanımdan kaldırıldı)" + maxHeight: "Maksimum yükseklik" + maxHeightDescription: "0 olarak ayarlandığında maksimum yükseklik ayarı devre dışı bırakılır. Widget'ın dikey olarak genişlemeye devam etmesini önlemek için bir değer belirtin." + maxHeightWarn: "Maksimum yükseklik sınırı devre dışıdır (0). Bu istenmeyen bir durumsa, maksimum yüksekliği bir değer olarak ayarlayın." + previewIsNotActual: "Ekran, önizleme ekranında görüntülenen aralığı aştığı için gerçek gömme işleminden farklıdır." + rounded: "Yuvarlak hale getirin" + border: "Dış çerçeveye kenarlık ekle" + applyToPreview: "Önizlemeye başvur" + generateCode: "Gömme kodu oluştur" + codeGenerated: "Kod oluşturuldu" + codeGeneratedDescription: "Oluşturulan kodu web sitenize yapıştırarak içeriği gömün." +_selfXssPrevention: + warning: "UYARI" + title: "“Bu ekrana bir şey yapıştırın” tamamen bir aldatmacadır." + description1: "Buraya bir şey yapıştırırsanız, kötü niyetli bir kullanıcı hesabınızı ele geçirebilir veya kişisel bilgilerinizi çalabilir." + description2: "Yapıştırmaya çalıştığınız şeyi tam olarak anlamıyorsanız, %c hemen çalışmayı bırakın ve bu pencereyi kapatın." + description3: "Daha fazla bilgi için lütfen buraya bakın. {link}" +_followRequest: + recieved: "Talep alındı" + sent: "İstek gönderildi" +_remoteLookupErrors: + _federationNotAllowed: + title: "Bu sunucuyla iletişim kurulamıyor" + description: "Bu sunucu ile iletişim devre dışı bırakılmış olabilir veya bu sunucu engellenmiş olabilir.\nLütfen sunucu yöneticisi ile iletişime geçin." + _uriInvalid: + title: "URI geçersiz" + description: "Girdiğiniz URI ile ilgili bir sorun var. Lütfen URI'da kullanılamayan karakterler girip girmediğinizi kontrol edin." + _requestFailed: + title: "İstek başarısız oldu" + description: "Bu sunucuyla iletişim kurulamadı. Sunucu kapalı olabilir. Ayrıca, geçersiz veya mevcut olmayan bir URI girmediğinizden emin olun." + _responseInvalid: + title: "Yanıt geçersiz" + description: "Bu sunucuyla iletişim kurabildi, ancak elde edilen veriler yanlıştı." + _noSuchObject: + title: "Bulunamadı" + description: "İstenen kaynak bulunamadı, lütfen URI'yi tekrar kontrol edin." +_captcha: + verify: "Lütfen CAPTCHA'yı doğrulayın" + testSiteKeyMessage: "Site ve gizli anahtarlar için test değerlerini girerek önizlemeyi kontrol edebilirsiniz.\nAyrıntılar için lütfen aşağıdaki sayfaya bakın." + _error: + _requestFailed: + title: "CAPTCHA isteği başarısız oldu" + text: "Lütfen bir süre sonra tekrar çalıştırın veya ayarları tekrar kontrol edin." + _verificationFailed: + title: "CAPTCHA doğrulaması başarısız oldu" + text: "Ayarların doğru olup olmadığını lütfen tekrar kontrol edin." + _unknown: + title: "CAPTCHA hatası" + text: "Beklenmedik bir hata oluştu." +_bootErrors: + title: "Yükleme başarısız" + serverError: "Bir süre bekledikten ve yeniden yükledikten sonra sorun devam ederse, lütfen aşağıdaki Hata ID ile sunucu yöneticisine başvurun." + solution: "Aşağıdakiler sorunu çözebilir." + solution1: "Tarayıcınızı ve işletim sisteminizi en son sürüme güncelleyin." + solution2: "Reklam engelleyiciyi devre dışı bırak" + solution3: "Tarayıcı önbelleğini temizle" + solution4: "Tor Tarayıcı için dom.webaudio.enabled değerini true olarak ayarlayın." + otherOption: "Diğer seçenekler" + otherOption1: "İstemci ayarlarını ve önbelleği sil" + otherOption2: "Basit istemciyi başlatın" + otherOption3: "Onarım aracını başlatın" + otherOption4: "Misskey'i güvenli modda başlatın" _search: searchScopeAll: "Tümü" + searchScopeLocal: "Yerel" + searchScopeServer: "Spesifik sunucu" + searchScopeUser: "Spesifik kullanıcı" + pleaseEnterServerHost: "Sunucu ana bilgisayarını girin" + pleaseSelectUser: "Kullanıcı seç" + serverHostPlaceholder: "Örnek: misskey.example.com" +_serverSetupWizard: + installCompleted: "Misskey kurulumu tamamlandı!" + firstCreateAccount: "Başlamak için bir yönetici hesabı oluşturun." + accountCreated: "Yönetici hesabı oluşturuldu!" + serverSetting: "Sunucu Ayarları" + youCanEasilyConfigureOptimalServerSettingsWithThisWizard: "Bu sihirbaz, sunucu ayarlarını yapılandırmayı kolaylaştırır." + settingsYouMakeHereCanBeChangedLater: "Bu sihirbaz aracılığıyla değiştirilen ayarlar daha sonra yeniden düzenlenebilir." + howWillYouUseMisskey: "Misskey'i nasıl kullanacaksınız?" + _use: + single: "Tek Kullanıcı Sunucusu" + single_description: "Kendi sunucunuz olarak tek başına kullanın." + single_youCanCreateMultipleAccounts: "Tek kullanıcı sunucusu olarak çalıştırıldığında bile, gerektiğinde birden fazla hesap oluşturulabilir." + group: "Grup sunucusu" + group_description: "Diğer güvenilir kullanıcıları birden fazla kullanıcıyla birlikte kullanmaya davet edin." + open: "Genel sunucu" + open_description: "Herkesin kayıt olmasına izin verin." + openServerAdvice: "Çok sayıda bilinmeyen kullanıcıyı kabul etmek risklidir. Herhangi bir sorunu çözmek için güvenilir bir moderasyon sistemi kullanmanızı öneririz." + openServerAntiSpamAdvice: "Sunucunuzun spam için bir basamak haline gelmesini önlemek için, reCAPTCHA gibi anti-bot işlevlerini etkinleştirerek güvenliğe de özen göstermelisiniz." + howManyUsersDoYouExpect: "Kaç kullanıcı bekliyorsunuz?" + _scale: + small: "100'den az (küçük ölçekli)" + medium: "100'den fazla ve 1000'den az kullanıcı (orta büyüklükte)" + large: "1000'den fazla (Büyük ölçekli)" + largeScaleServerAdvice: "Büyük sunucular, yük dengeleme ve veritabanı çoğaltma gibi gelişmiş altyapı bilgisi gerektirebilir." + doYouConnectToFediverse: "Fediverse'e bağlanmak ister misiniz?" + doYouConnectToFediverse_description1: "Dağıtılmış sunucular ağına (Fediverse) bağlandığında, içerik diğer sunucularla paylaşılabilir." + doYouConnectToFediverse_description2: "Fediverse ile bağlantı kurmak “federasyon” olarak da adlandırılır." + youCanConfigureMoreFederationSettingsLater: "Birleştirilmiş sunucuları belirtme gibi gelişmiş ayarlar daha sonra yapılandırılabilir." + remoteContentsCleaning: "Alınan içeriklerin otomatik olarak temizlenmesi" + remoteContentsCleaning_description: "Federasyon, sürekli içerik akışına neden olabilir. Otomatik temizleme özelliğini etkinleştirmek, depolama alanından tasarruf etmek için sunucudan eski ve referanslanmamış içeriği kaldıracaktır." + adminInfo: "Yönetici bilgileri" + adminInfo_description: "Sorguları almak için kullanılan yönetici bilgilerini ayarlar." + adminInfo_mustBeFilled: "Genel sunucu veya federasyon açıksa girilmelidir." + followingSettingsAreRecommended: "Aşağıdaki ayarlar önerilir" + applyTheseSettings: "Bu ayarları uygulayın" + skipSettings: "Ayarları atla" + settingsCompleted: "Kurulum tamamlandı!" + settingsCompleted_description: "Zaman ayırdığınız için teşekkür ederiz. Artık her şey hazır olduğuna göre, sunucuyu hemen kullanmaya başlayabilirsiniz." + settingsCompleted_description2: "Sunucu ayarları “Kontrol Paneli”nden değiştirilebilir." + donationRequest: "Bağış Talebi" + _donationRequest: + text1: "Misskey, gönüllüler tarafından geliştirilen ücretsiz bir yazılımdır." + text2: "Bu yazılımı gelecekte de geliştirmeye devam edebilmemiz için desteğinizi rica ederiz." + text3: "Destekçilere özel avantajlar da var!" +_uploader: + editImage: "Resmi Düzenle" + compressedToX: "{x} boyutuna sıkıştırıldı" + savedXPercent: "{x}% tasarruf" + abortConfirm: "Bazı dosyalar yüklenmedi, iptal etmek ister misiniz?" + doneConfirm: "Bazı dosyalar yüklenmedi, yine de devam etmek istiyor musunuz?" + maxFileSizeIsX: "Yükleyebileceğiniz maksimum dosya boyutu {x}" + allowedTypes: "Yüklenebilir dosya türleri" + tip: "Dosya henüz yüklenmediğinden, bu iletişim kutusu yüklemeden önce dosyayı onaylamanıza, yeniden adlandırmanıza, sıkıştırmanıza ve kırpmanıza olanak tanır. Hazır olduğunuzda, “Yükle” düğmesine basarak yüklemeyi başlatabilirsiniz." +_clientPerformanceIssueTip: + title: "Performans ipuçları" + makeSureDisabledAdBlocker: "Reklam engelleyicinizi devre dışı bırakın" + makeSureDisabledAdBlocker_description: "Reklam engelleyiciler performansı etkileyebilir, lütfen sisteminizde veya tarayıcınızın özelliklerinde/uzantılarında reklam engelleyicilerin etkinleştirilmediğinden emin olun." + makeSureDisabledCustomCss: "Özel CSS'yi devre dışı bırak" + makeSureDisabledCustomCss_description: "Stil geçersiz kılma, performansı etkileyebilir. Stil geçersiz kılan özel CSS veya uzantıların etkinleştirilmediğinden emin olun." + makeSureDisabledAddons: "Uzantıları devre dışı bırak" + makeSureDisabledAddons_description: "Bazı uzantılar istemci davranışını engelleyebilir ve performansı etkileyebilir. Lütfen tarayıcı uzantılarınızı devre dışı bırakın ve durumun düzelip düzelmediğini kontrol edin." +_clip: + tip: "Clip, notlarınızı düzenlemenizi sağlayan bir özelliktir." +_userLists: + tip: "Listeler, oluşturulurken belirttiğiniz herhangi bir kullanıcıyı içerebilir. Oluşturulan liste, yalnızca belirtilen kullanıcıları gösteren bir zaman çizelgesi olarak görüntülenebilir." +watermark: "Filigran" +defaultPreset: "Varsayılan Ön Ayar" _watermarkEditor: + tip: "Kredi bilgileri gibi bir filigran görüntüye eklenebilir." + quitWithoutSaveConfirm: "Kaydedilmemiş değişiklikleri silmek ister misiniz?" + driveFileTypeWarn: "Bu dosya desteklenmiyor" + driveFileTypeWarnDescription: "Bir görüntü dosyası seçin" + title: "Filigranı Düzenle" + cover: "Her şeyi örtün" + repeat: "her yere yayılmış" + opacity: "Opaklık" + scale: "Boyut" + text: "Metin" + position: "Pozisyon" + type: "Tür" image: "Görseller" + advanced: "Gelişmiş" + stripe: "Çizgiler" + stripeWidth: "Çizgi genişliği" + stripeFrequency: "Satır sayısı" + angle: "Açı" + polkadot: "Nokta deseni" + checker: "Kontrolcü" + polkadotMainDotOpacity: "Ana noktanın opaklığı" + polkadotMainDotRadius: "Ana noktanın boyutu" + polkadotSubDotOpacity: "İkincil noktanın opaklığı" + polkadotSubDotRadius: "İkincil noktanın boyutu" + polkadotSubDotDivisions: "Alt nokta sayısı." +_imageEffector: + title: "Effektler" + addEffect: "Efektler Ekle" + discardChangesConfirm: "Gerçekten çıkmak istiyor musunuz? Kaydedilmemiş değişiklikleriniz var." + _fxs: + chromaticAberration: "Renk Sapması" + glitch: "Bozulma" + mirror: "Ayna" + invert: "Renkleri Ters Çevir" + grayscale: "Gri tonlama" + colorAdjust: "Renk Düzeltme" + colorClamp: "Renk Sıkıştırma" + colorClampAdvanced: "Renk Sıkıştırma (Gelişmiş)" + distort: "Bozulma" + threshold: "İkilileştir" + zoomLines: "Doymuş hatlar" + stripe: "Çizgiler" + polkadot: "Nokta deseni" + checker: "Denetleyici" + blockNoise: "Gürültüyü Engelle" + tearing: "Yırtılma" +drafts: "Taslaklar" +_drafts: + select: "Taslak Seç" + cannotCreateDraftAnymore: "Oluşturulabilecek taslak sayısı aşılmıştır." + cannotCreateDraft: "Bu içerikle taslak oluşturamazsınız." + delete: "Taslak Sil" + deleteAreYouSure: "Taslağı silmek ister misiniz?" + noDrafts: "Taslak yok" + replyTo: "{user} notunu yanıtla" + quoteOf: "{user} notuna alıntı" + postTo: "{channel}'a gönder" + saveToDraft: "Taslak olarak kaydet" + restoreFromDraft: "Taslaktan geri yükle" + restore: "Geri yükle" + listDrafts: "Taslaklar Listesi" diff --git a/locales/uz-UZ.yml b/locales/uz-UZ.yml index b8375302ba..bfa91cb0db 100644 --- a/locales/uz-UZ.yml +++ b/locales/uz-UZ.yml @@ -903,7 +903,7 @@ _theme: header: "Sarlavha" navBg: "Yon panel foni" navFg: "Yon panel matni" - mention: "Murojat" + mention: "Eslatib o'tish" renote: "Qayta qayd etish" divider: "Ajratrmoq" fgHighlighted: "Belgilangan matn" @@ -1045,7 +1045,7 @@ _notification: _types: all: "Barchasi" follow: "Obuna bo‘lish" - mention: "Murojat" + mention: "Eslatib o'tish" renote: "Qayta qayd etish" quote: "Iqtibos keltirish" reaction: "Reaktsiyalar" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 4829ac68d7..8843fc682e 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -1143,7 +1143,7 @@ channelArchiveConfirmTitle: "要将 {name} 归档吗?" channelArchiveConfirmDescription: "归档后,在频道列表与搜索结果中不会显示,也无法发布新的贴文。" thisChannelArchived: "该频道已被归档。" displayOfNote: "显示帖子" -initialAccountSetting: "初始设置" +initialAccountSetting: "初始设定" youFollowing: "正在关注" preventAiLearning: "拒绝接受生成式 AI 的学习" preventAiLearningDescription: "要求文章生成 AI 或图像生成 AI 不能够以发布的帖子和图像等内容作为学习对象。这是通过在 HTML 响应中包含 noai 标志来实现的,这不能完全阻止 AI 学习你的发布内容,并不是所有 AI 都会遵守这类请求。" @@ -1370,6 +1370,10 @@ defaultImageCompressionLevel: "默认图像压缩等级" defaultImageCompressionLevel_description: "较低的等级可以保持画质,但会增加文件大小。
较高的等级可以减少文件大小,但相对应的画质将会降低。" inMinutes: "分" inDays: "日" +safeModeEnabled: "已启用安全模式" +pluginsAreDisabledBecauseSafeMode: "因启用了安全模式,所有插件均已被禁用。" +customCssIsDisabledBecauseSafeMode: "因启用了安全模式,无法应用自定义 CSS。" +themeIsDefaultBecauseSafeMode: "启用安全模式时将使用默认主题。关闭安全模式后将还原。" _order: newest: "从新到旧" oldest: "从旧到新" @@ -1538,7 +1542,7 @@ _announcement: silenceDescription: "开启后,此条公告将不会发送通知,也不强制用户阅读。" _initialAccountSetting: accountCreated: "账户创建完成了!" - letsStartAccountSetup: "来进行帐户的初始设置吧。" + letsStartAccountSetup: "马上来进行账户的初始设定吧。" letsFillYourProfile: "首先,来设定你的个人档案吧!" profileSetting: "个人资料设置" privacySetting: "隐私设置" @@ -1550,7 +1554,7 @@ _initialAccountSetting: haveFun: "希望 {name} 在这里玩得开心!" youCanContinueTutorial: "您可以继续了解 {name}(Misskey) 的使用教程,也可以在此停止教程并立即开始使用它。\n" startTutorial: "开始教学" - skipAreYouSure: "要跳过初始设置吗?" + skipAreYouSure: "要跳过初始设定吗?" laterAreYouSure: "要稍后再进行初始设定吗?" _initialTutorial: launchTutorial: "观看教学" @@ -1634,6 +1638,10 @@ _serverSettings: fanoutTimelineDbFallback: "回退到数据库" fanoutTimelineDbFallbackDescription: "当启用时,若时间线未被缓存,则将额外查询数据库。禁用该功能可通过不执行回退处理进一步减少服务器负载,但会限制可检索的时间线范围。" reactionsBufferingDescription: "开启时可显著提高发送回应时的性能,及减轻数据库负荷。但 Redis 的内存用量会相应增加。" + remoteNotesCleaning: "自动清理远程投稿" + remoteNotesCleaning_description: "启用后,将自动清理已无法找到的旧的远程投稿,可减缓数据库的增长。" + remoteNotesCleaningMaxProcessingDuration: "最长清理持续时间" + remoteNotesCleaningExpiryDaysForEachNotes: "最短帖子保留期限" inquiryUrl: "联络地址" inquiryUrlDescription: "用来指定诸如向服务运营商咨询的论坛地址,或记载了运营商联系方式之类的网页地址。" openRegistration: "开放注册" @@ -1652,6 +1660,8 @@ _serverSettings: userGeneratedContentsVisibilityForVisitor: "用户生成内容对非用户的可见性" userGeneratedContentsVisibilityForVisitor_description: "对于防止难以审核的不适当的远程内容等,通过自己的服务器无意中在互联网上公开等问题很有用。" userGeneratedContentsVisibilityForVisitor_description2: "包含服务器接收到的远程内容在内,无条件将服务器上的所有内容公开在互联网上存在风险。特别是对去中心化的特性不是很了解的访问者有可能将远程服务器上的内容误认为是在此服务器内生成的,需要特别留意。" + restartServerSetupWizardConfirm_title: "要重新开始服务器初始设定向导吗?" + restartServerSetupWizardConfirm_text: "现有的部分设定将重置。" _userGeneratedContentsVisibilityForVisitor: all: "全部公开" localOnly: "仅公开本地内容,隐藏远程内容" @@ -3062,6 +3072,7 @@ _bootErrors: otherOption1: "清除客户端设定与缓存" otherOption2: "使用简易客户端" otherOption3: "启动修复工具" + otherOption4: "以安全模式启动 Misskey" _search: searchScopeAll: "全部" searchScopeLocal: "本地" @@ -3098,6 +3109,8 @@ _serverSetupWizard: doYouConnectToFediverse_description1: "若加入由分散性服务器所构成的网络(Fediverse),将能与其它服务器交换内容。" doYouConnectToFediverse_description2: "加入 Fediverse 在这里被称为「联合」。" youCanConfigureMoreFederationSettingsLater: "可在之后进行如哪些服务器可以进行联合等高级设置。" + remoteContentsCleaning: "自动清理传入内容" + remoteContentsCleaning_description: "加入联合后,服务器将持续接收大量内容。打开自动清理后,将自动删除无法找到的旧内容,可节省存储空间。" adminInfo: "管理员信息" adminInfo_description: "设置用于接受询问的管理员信息。" adminInfo_mustBeFilled: "开放服务器或开启了联合的情况下必须输入。" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index e9f477c0eb..00d4a3a9ac 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -1370,6 +1370,10 @@ defaultImageCompressionLevel: "預設的影像壓縮程度" defaultImageCompressionLevel_description: "低的話可以保留畫質,但是會增加檔案的大小。
高的話可以減少檔案大小,但是會降低畫質。" inMinutes: "分鐘" inDays: "日" +safeModeEnabled: "啟用安全模式" +pluginsAreDisabledBecauseSafeMode: "由於啟用安全模式,所有的外掛都被停用。" +customCssIsDisabledBecauseSafeMode: "由於啟用安全模式,所有的客製 CSS 都被停用。" +themeIsDefaultBecauseSafeMode: "啟用安全模式時將使用預設主題,關閉安全模式時將恢復預設主題。" _order: newest: "最新的在前" oldest: "最舊的在前" @@ -1634,6 +1638,10 @@ _serverSettings: fanoutTimelineDbFallback: "資料庫的回退" fanoutTimelineDbFallbackDescription: "若啟用,在時間軸沒有快取的情況下將執行回退處理以額外查詢資料庫。若停用,可以透過不執行回退處理來進一步減少伺服器的負荷,但會限制可取得的時間軸範圍。" reactionsBufferingDescription: "啟用時,可以顯著提高建立反應時的效能並減少資料庫的負載。 但是,Redis 記憶體使用量會增加。" + remoteNotesCleaning: "自動清除遠端發佈內容" + remoteNotesCleaning_description: "啟用後,系統會定期清理未被參照的舊遠端貼文,以抑制資料庫的膨脹。" + remoteNotesCleaningMaxProcessingDuration: "清理作業的最長持續時間" + remoteNotesCleaningExpiryDaysForEachNotes: "貼文最短保留天數" inquiryUrl: "聯絡表單網址" inquiryUrlDescription: "指定伺服器運營者的聯絡表單網址,或包含運營者聯絡資訊網頁的網址。" openRegistration: "允許建立帳戶" @@ -1652,6 +1660,8 @@ _serverSettings: userGeneratedContentsVisibilityForVisitor: "使用者建立的內容對訪客的公開範圍" userGeneratedContentsVisibilityForVisitor_description: "這有助於防止一些問題的發生,例如未經適當審核的不適當遠端內容無意中透過您自己的伺服器發佈到網際網路上。" userGeneratedContentsVisibilityForVisitor_description2: "包括伺服器接收到的遠端內容在內,無條件地將伺服器內所有內容公開到網際網路上是具有風險的。特別是對於不了解分散式架構特性的瀏覽者來說,他們可能會誤以為這些遠端內容是由該伺服器所創建的,因此需要特別留意。" + restartServerSetupWizardConfirm_title: "要重新執行伺服器的初始設定精靈嗎?" + restartServerSetupWizardConfirm_text: "當前的部分設定將會被重設。" _userGeneratedContentsVisibilityForVisitor: all: "全部公開\n" localOnly: "僅公開本地內容,遠端內容則不公開\n" @@ -3062,6 +3072,7 @@ _bootErrors: otherOption1: "刪除用戶端設定和快取" otherOption2: "啟動簡易用戶端" otherOption3: "啟動修復工具" + otherOption4: "以安全模式啟動 Misskey" _search: searchScopeAll: "全部" searchScopeLocal: "本地" @@ -3098,6 +3109,8 @@ _serverSetupWizard: doYouConnectToFediverse_description1: "連接到由分散型伺服器構成的網絡(聯邦宇宙)後,您可以與其他伺服器進行內容的互相交流。\n" doYouConnectToFediverse_description2: "連接到聯邦宇宙被稱為「聯邦」。\n" youCanConfigureMoreFederationSettingsLater: "您可以在稍後進行更高級的設定,例如指定可以聯繫的伺服器等。\n" + remoteContentsCleaning: "自動清理接收的內容" + remoteContentsCleaning_description: "進行聯邦後,會持續接收大量內容。啟用自動清理功能後,系統會自動從伺服器中刪除未被參照的過時內容,以節省儲存空間。" adminInfo: "管理員資訊" adminInfo_description: "設定用於接收查詢的管理者資訊。\n" adminInfo_mustBeFilled: "當設置為開放伺服器或啟用聯邦時,必須填寫此資訊。\n" diff --git a/package.json b/package.json index 1ad8bd9134..a7e6cd4fdb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.8.0-alpha.3", + "version": "2025.8.0-alpha.4", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/backend/src/queue/processors/CleanRemoteNotesProcessorService.ts b/packages/backend/src/queue/processors/CleanRemoteNotesProcessorService.ts index 019cbc47a3..19743c5de8 100644 --- a/packages/backend/src/queue/processors/CleanRemoteNotesProcessorService.ts +++ b/packages/backend/src/queue/processors/CleanRemoteNotesProcessorService.ts @@ -5,7 +5,7 @@ import { setTimeout } from 'node:timers/promises'; import { Inject, Injectable } from '@nestjs/common'; -import { DataSource, In, IsNull, LessThan, Not } from 'typeorm'; +import { DataSource } from 'typeorm'; import { DI } from '@/di-symbols.js'; import { MiNote } from '@/models/Note.js'; import { MiDeletedNote } from '@/models/DeletedNote.js'; @@ -72,92 +72,79 @@ export class CleanRemoteNotesProcessorService { newest: null as number | null, }; - let cursor: MiNote['id'] = this.idService.gen(Date.now() - (1000 * 60 * 60 * 24 * this.meta.remoteNotesCleaningExpiryDaysForEachNotes)); + // The date limit for the newest note to be considered for deletion. + // All notes newer than this limit will always be retained. + const newestLimit = this.idService.gen(Date.now() - (1000 * 60 * 60 * 24 * this.meta.remoteNotesCleaningExpiryDaysForEachNotes)); + + let cursor = '0'; // oldest note ID to start from while (true) { const batchBeginAt = Date.now(); - const selectColumns = [...[ - 'id', - 'replyId', - 'renoteId', - 'userId', - 'localOnly', - 'uri', - 'url', - 'channelId', - 'replyUserId', - 'renoteUserId', - ] as const]; - let notes: Pick[] = await this.notesRepository.find({ - where: { - id: LessThan(cursor), - userHost: Not(IsNull()), - clippedCount: 0, - renoteCount: 0, - }, - take: MAX_NOTE_COUNT_PER_QUERY, - order: { - // 新しい順 - // https://github.com/misskey-dev/misskey/pull/16292#issuecomment-3139376314 - id: -1, - }, - select: selectColumns, - }); + // We use string literals instead of query builder for several reasons: + // - for removeCondition, we need to use it in having clause, which is not supported by Brackets. + // - for recursive part, we need to preserve the order of columns, but typeorm query builder does not guarantee the order of columns in the result query + + // The condition for removing the notes. + // The note must be: + // - old enough (older than the newestLimit) + // - a remote note (userHost is not null). + // - not have clipped + // - not have pinned on the user profile + // - not has been favorite by any user + const removeCondition = 'note.id < :newestLimit' + + ' AND note."clippedCount" = 0' + + ' AND note."userHost" IS NOT NULL' + // using both userId and noteId instead of just noteId to use index on user_note_pining table. + // This is safe because notes are only pinned by the user who created them. + + ' AND NOT EXISTS(SELECT 1 FROM "user_note_pining" WHERE "noteId" = note."id" AND "userId" = note."userId")' + // We cannot use userId trick because users can favorite notes from other users. + + ' AND NOT EXISTS(SELECT 1 FROM "note_favorite" WHERE "noteId" = note."id")' + ; + + // The initiator query contains the oldest ${MAX_NOTE_COUNT_PER_QUERY} remote non-clipped notes + const initiatorQuery = ` + SELECT "note"."id" AS "id", "note"."replyId" AS "replyId", "note"."renoteId" AS "renoteId", "note"."id" AS "initiatorId" + FROM "note" "note" WHERE ${removeCondition} AND "note"."id" > :cursor ORDER BY "note"."id" ASC LIMIT ${MAX_NOTE_COUNT_PER_QUERY}`; + + // The union query queries the related notes and replies related to the initiator query + const unionQuery = ` + SELECT "note"."id", "note"."replyId", "note"."renoteId", rn."initiatorId" + FROM "note" "note" + INNER JOIN "related_notes" "rn" + ON "note"."replyId" = rn.id + OR "note"."renoteId" = rn.id + OR "note"."id" = rn."replyId" + OR "note"."id" = rn."renoteId" + `; + const recursiveQuery = `(${initiatorQuery}) UNION (${unionQuery})`; + + const removableInitiatorNotesQuery = this.notesRepository.createQueryBuilder('note') + .select('rn."initiatorId"') + .innerJoin('related_notes', 'rn', 'note.id = rn.id') + .groupBy('rn."initiatorId"') + .having(`bool_and(${removeCondition})`); + + const notesQuery = this.notesRepository.createQueryBuilder('note') + .addCommonTableExpression(recursiveQuery, 'related_notes', { recursive: true }) + .select('note.id', 'id') + .addSelect('rn."initiatorId"') + .innerJoin('related_notes', 'rn', 'note.id = rn.id') + .where(`rn."initiatorId" IN (${ removableInitiatorNotesQuery.getQuery() })`) + .setParameters({ cursor, newestLimit }); + + const notes: { id: MiNote['id'], initiatorId: MiNote['id'] }[] = await notesQuery.getRawMany(); const fetchedCount = notes.length; + // update the cursor to the newest initiatorId found in the fetched notes. + // We don't use 'id' since the note can be newer than the initiator note. for (const note of notes) { - if (note.id < cursor) { - cursor = note.id; + if (cursor < note.initiatorId) { + cursor = note.initiatorId; } } - const pinings = notes.length === 0 ? [] : await this.userNotePiningsRepository.find({ - where: { - noteId: In(notes.map(note => note.id)), - }, - select: ['noteId'], - }); - - notes = notes.filter(note => { - return !pinings.some(pining => pining.noteId === note.id); - }); - - const favorites = notes.length === 0 ? [] : await this.noteFavoritesRepository.find({ - where: { - noteId: In(notes.map(note => note.id)), - }, - select: ['noteId'], - }); - - notes = notes.filter(note => { - return !favorites.some(favorite => favorite.noteId === note.id); - }); - - const replies = notes.length === 0 ? [] : await this.notesRepository.find({ - where: { - replyId: In(notes.map(note => note.id)), - }, - select: ['replyId', 'userHost'], - }); - - const noteIdsWithReplies = new Set(replies.map(reply => reply.replyId)); - - notes = notes.filter(note => { - return !replies.some(reply => reply.userHost == null && reply.replyId === note.id); - }); - - // find self renotes and quotes to determine if we should keep deleted notes - const renotes = notes.length === 0 ? [] : await this.notesRepository.find({ - where: { - renoteId: In(notes.map(note => note.id)), - }, - select: ['renoteId'], - }); - - const noteIdsWithRenotes = new Set(renotes.map(reply => reply.replyId)); - if (notes.length > 0) { await this.db.transaction(async (transaction) => { await transaction.save(MiDeletedNote, notes.filter(x => x.replyId != null || x.renoteId != null || noteIdsWithReplies.has(x.id) || noteIdsWithRenotes.has(x.id)).map(note => ({ diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts index 768cfde701..b515a0c0c8 100644 --- a/packages/backend/src/server/web/ClientServerService.ts +++ b/packages/backend/src/server/web/ClientServerService.ts @@ -20,17 +20,6 @@ import type { Config } from '@/config.js'; import { getNoteSummary } from '@/misc/get-note-summary.js'; import { DI } from '@/di-symbols.js'; import * as Acct from '@/misc/acct.js'; -import type { - DbQueue, - DeliverQueue, - EndedPollNotificationQueue, - InboxQueue, - ObjectStorageQueue, - RelationshipQueue, - SystemQueue, - UserWebhookDeliverQueue, - SystemWebhookDeliverQueue, -} from '@/core/QueueModule.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { PageEntityService } from '@/core/entities/PageEntityService.js'; @@ -129,16 +118,6 @@ export class ClientServerService { private feedService: FeedService, private roleService: RoleService, private clientLoggerService: ClientLoggerService, - - @Inject('queue:system') public systemQueue: SystemQueue, - @Inject('queue:endedPollNotification') public endedPollNotificationQueue: EndedPollNotificationQueue, - @Inject('queue:deliver') public deliverQueue: DeliverQueue, - @Inject('queue:inbox') public inboxQueue: InboxQueue, - @Inject('queue:db') public dbQueue: DbQueue, - @Inject('queue:relationship') public relationshipQueue: RelationshipQueue, - @Inject('queue:objectStorage') public objectStorageQueue: ObjectStorageQueue, - @Inject('queue:userWebhookDeliver') public userWebhookDeliverQueue: UserWebhookDeliverQueue, - @Inject('queue:systemWebhookDeliver') public systemWebhookDeliverQueue: SystemWebhookDeliverQueue, ) { //this.createServer = this.createServer.bind(this); } diff --git a/packages/frontend-embed/package.json b/packages/frontend-embed/package.json index 5c3c8518e7..e76046add3 100644 --- a/packages/frontend-embed/package.json +++ b/packages/frontend-embed/package.json @@ -15,8 +15,8 @@ "@rollup/plugin-replace": "6.0.2", "@rollup/pluginutils": "5.2.0", "@twemoji/parser": "16.0.0", - "@vitejs/plugin-vue": "5.2.4", - "@vue/compiler-sfc": "3.5.17", + "@vitejs/plugin-vue": "6.0.1", + "@vue/compiler-sfc": "3.5.18", "astring": "1.9.0", "buraha": "0.0.1", "estree-walker": "3.0.3", @@ -26,37 +26,37 @@ "mfm-js": "0.25.0", "misskey-js": "workspace:*", "punycode.js": "2.3.1", - "rollup": "4.45.1", + "rollup": "4.46.2", "sass": "1.89.2", - "shiki": "3.8.0", + "shiki": "3.9.1", "tinycolor2": "1.6.0", "tsc-alias": "1.8.16", "tsconfig-paths": "4.2.0", - "typescript": "5.8.3", + "typescript": "5.9.2", "uuid": "11.1.0", - "vite": "6.3.5", - "vue": "3.5.17" + "vite": "7.0.6", + "vue": "3.5.18" }, "devDependencies": { - "@misskey-dev/summaly": "5.2.2", - "@tabler/icons-webfont": "3.34.0", + "@misskey-dev/summaly": "5.2.3", + "@tabler/icons-webfont": "3.34.1", "@testing-library/vue": "8.1.0", "@types/estree": "1.0.8", "@types/micromatch": "4.0.9", - "@types/node": "22.16.4", + "@types/node": "22.17.0", "@types/punycode.js": "npm:@types/punycode@2.1.4", "@types/tinycolor2": "1.4.6", "@types/ws": "8.18.1", - "@typescript-eslint/eslint-plugin": "8.37.0", - "@typescript-eslint/parser": "8.37.0", + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", "@vitest/coverage-v8": "3.2.4", - "@vue/runtime-core": "3.5.17", + "@vue/runtime-core": "3.5.18", "acorn": "8.15.0", - "cross-env": "7.0.3", + "cross-env": "10.0.0", "eslint-plugin-import": "2.32.0", - "eslint-plugin-vue": "10.3.0", + "eslint-plugin-vue": "10.4.0", "fast-glob": "3.3.3", - "happy-dom": "17.6.3", + "happy-dom": "18.0.1", "intersection-observer": "0.12.2", "micromatch": "4.0.8", "msw": "2.10.4", @@ -64,8 +64,8 @@ "prettier": "3.6.2", "start-server-and-test": "2.0.12", "vite-plugin-turbosnap": "1.0.3", - "vue-component-type-helpers": "2.2.12", + "vue-component-type-helpers": "3.0.5", "vue-eslint-parser": "10.2.0", - "vue-tsc": "2.2.12" + "vue-tsc": "3.0.5" } } diff --git a/packages/frontend-shared/package.json b/packages/frontend-shared/package.json index 7caa7fd283..7452ecc918 100644 --- a/packages/frontend-shared/package.json +++ b/packages/frontend-shared/package.json @@ -21,13 +21,13 @@ "lint": "pnpm typecheck && pnpm eslint" }, "devDependencies": { - "@types/node": "22.16.4", - "@typescript-eslint/eslint-plugin": "8.37.0", - "@typescript-eslint/parser": "8.37.0", - "esbuild": "0.25.6", - "eslint-plugin-vue": "10.3.0", + "@types/node": "22.17.0", + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "esbuild": "0.25.8", + "eslint-plugin-vue": "10.4.0", "nodemon": "3.1.10", - "typescript": "5.8.3", + "typescript": "5.9.2", "vue-eslint-parser": "10.2.0" }, "files": [ @@ -35,6 +35,6 @@ ], "dependencies": { "misskey-js": "workspace:*", - "vue": "3.5.17" + "vue": "3.5.18" } } diff --git a/packages/frontend/lib/vite-plugin-create-search-index.ts b/packages/frontend/lib/vite-plugin-create-search-index.ts index 97f4e589a3..4e20828909 100644 --- a/packages/frontend/lib/vite-plugin-create-search-index.ts +++ b/packages/frontend/lib/vite-plugin-create-search-index.ts @@ -39,6 +39,7 @@ export interface SearchIndexItem { path?: string; label: string; keywords: string[]; + texts: string[]; icon?: string; inlining?: string[]; } @@ -227,14 +228,14 @@ function extractElementText2Inner(node: TemplateChildNode, processingNodeName: s // region extractUsageInfoFromTemplateAst /** - * SearchLabel/SearchKeyword/SearchIconを探して抽出する関数 + * SearchLabel/SearchText/SearchIconを探して抽出する関数 */ -function extractSugarTags(nodes: TemplateChildNode[], id: string): { label: string | null, keywords: string[], icon: string | null } { +function extractSugarTags(nodes: TemplateChildNode[], id: string): { label: string | null; texts: string[]; icon: string | null; } { let label: string | null | undefined = undefined; let icon: string | null | undefined = undefined; - const keywords: string[] = []; + const texts: string[] = []; - logger.info(`Extracting labels and keywords from ${nodes.length} nodes`); + logger.info(`Extracting labels and texts from ${nodes.length} nodes`); walkVueElements(nodes, null, (node) => { switch (node.tag) { @@ -248,10 +249,10 @@ function extractSugarTags(nodes: TemplateChildNode[], id: string): { label: stri label = extractElementText(node, id); return; - case 'SearchKeyword': + case 'SearchText': const content = extractElementText(node, id); if (content) { - keywords.push(content); + texts.push(content); } return; case 'SearchIcon': @@ -278,8 +279,8 @@ function extractSugarTags(nodes: TemplateChildNode[], id: string): { label: stri }); // デバッグ情報 - logger.info(`Extraction completed: label=${label}, keywords=[${keywords.join(', ')}, icon=${icon}]`); - return { label: label ?? null, keywords, icon: icon ?? null }; + logger.info(`Extraction completed: label=${label}, text=[${texts.join(', ')}, icon=${icon}]`); + return { label: label ?? null, texts, icon: icon ?? null }; } function getStringProp(attr: AttributeNode | DirectiveNode | null, id: string): string | null { @@ -351,33 +352,36 @@ function extractUsageInfoFromTemplateAst( parentId: parentId ?? undefined, label: '', // デフォルト値 keywords: [], + texts: [], }; // バインドプロパティを取得 - const path = getStringProp(findAttribute(node.props, 'path'), id) - const icon = getStringProp(findAttribute(node.props, 'icon'), id) - const label = getStringProp(findAttribute(node.props, 'label'), id) - const inlining = getStringArrayProp(findAttribute(node.props, 'inlining'), id) - const keywords = getStringArrayProp(findAttribute(node.props, 'keywords'), id) + const path = getStringProp(findAttribute(node.props, 'path'), id); + const icon = getStringProp(findAttribute(node.props, 'icon'), id); + const label = getStringProp(findAttribute(node.props, 'label'), id); + const inlining = getStringArrayProp(findAttribute(node.props, 'inlining'), id); + const keywords = getStringArrayProp(findAttribute(node.props, 'keywords'), id); + const texts = getStringArrayProp(findAttribute(node.props, 'texts'), id); if (path) markerInfo.path = path; if (icon) markerInfo.icon = icon; if (label) markerInfo.label = label; if (inlining) markerInfo.inlining = inlining; if (keywords) markerInfo.keywords = keywords; + if (texts) markerInfo.texts = texts; - //pathがない場合はファイルパスを設定 + // pathがない場合はファイルパスを設定 if (markerInfo.path == null && parentId == null) { markerInfo.path = id.match(/.*(\/(admin|settings)\/[^\/]+)\.vue$/)?.[1]; } - // SearchLabelとSearchKeywordを抽出 (AST全体を探索) + // SearchLabelとSearchTextを抽出 (AST全体を探索) { const extracted = extractSugarTags(node.children, id); if (extracted.label && markerInfo.label) logger.warn(`Duplicate label found for ${markerId} at ${id}:${node.loc.start.line}`); if (extracted.icon && markerInfo.icon) logger.warn(`Duplicate icon found for ${markerId} at ${id}:${node.loc.start.line}`); markerInfo.label = extracted.label ?? markerInfo.label ?? ''; - markerInfo.keywords = [...extracted.keywords, ...markerInfo.keywords]; + markerInfo.texts = [...extracted.texts, ...markerInfo.texts]; markerInfo.icon = extracted.icon ?? markerInfo.icon ?? undefined; } diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 847f1b7aee..e2880bee7e 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -24,11 +24,11 @@ "@rollup/plugin-json": "6.1.0", "@rollup/plugin-replace": "6.0.2", "@rollup/pluginutils": "5.2.0", - "@sentry/vue": "9.39.0", + "@sentry/vue": "10.0.0", "@syuilo/aiscript": "0.19.0", "@twemoji/parser": "16.0.0", - "@vitejs/plugin-vue": "5.2.4", - "@vue/compiler-sfc": "3.5.17", + "@vitejs/plugin-vue": "6.0.1", + "@vue/compiler-sfc": "3.5.18", "aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.15", "analytics": "0.8.16", "astring": "1.9.0", @@ -37,12 +37,12 @@ "canvas-confetti": "1.9.3", "chart.js": "4.5.0", "chartjs-adapter-date-fns": "3.0.0", - "chartjs-chart-matrix": "2.1.1", + "chartjs-chart-matrix": "3.0.0", "chartjs-plugin-gradient": "0.6.1", "chartjs-plugin-zoom": "2.2.0", - "chromatic": "11.29.0", + "chromatic": "13.1.3", "compare-versions": "6.1.1", - "cropperjs": "2.0.0", + "cropperjs": "2.0.1", "date-fns": "4.1.0", "estree-walker": "3.0.3", "eventemitter3": "5.0.1", @@ -60,30 +60,30 @@ "misskey-reversi": "workspace:*", "photoswipe": "5.4.4", "punycode.js": "2.3.1", - "rollup": "4.45.1", + "rollup": "4.46.2", "sanitize-html": "2.17.0", "sass": "1.89.2", - "shiki": "3.8.0", + "shiki": "3.9.1", "strict-event-emitter-types": "2.0.0", "textarea-caret": "3.1.0", - "three": "0.178.0", + "three": "0.179.1", "throttle-debounce": "5.0.2", "tinycolor2": "1.6.0", "tsc-alias": "1.8.16", "tsconfig-paths": "4.2.0", - "typescript": "5.8.3", + "typescript": "5.9.2", "v-code-diff": "1.13.1", - "vite": "6.3.5", - "vue": "3.5.17", + "vite": "7.0.6", + "vue": "3.5.18", "vuedraggable": "next", "wanakana": "5.3.1" }, "devDependencies": { - "@misskey-dev/summaly": "5.2.2", - "@storybook/addon-actions": "8.6.14", + "@misskey-dev/summaly": "5.2.3", + "@storybook/addon-actions": "9.0.8", "@storybook/addon-essentials": "8.6.14", "@storybook/addon-interactions": "8.6.14", - "@storybook/addon-links": "8.6.14", + "@storybook/addon-links": "9.1.0", "@storybook/addon-mdx-gfm": "8.6.14", "@storybook/addon-storysource": "8.6.14", "@storybook/blocks": "8.6.14", @@ -91,38 +91,38 @@ "@storybook/core-events": "8.6.14", "@storybook/manager-api": "8.6.14", "@storybook/preview-api": "8.6.14", - "@storybook/react": "8.6.14", - "@storybook/react-vite": "8.6.14", + "@storybook/react": "9.1.0", + "@storybook/react-vite": "9.1.0", "@storybook/test": "8.6.14", "@storybook/theming": "8.6.14", "@storybook/types": "8.6.14", - "@storybook/vue3": "8.6.14", - "@storybook/vue3-vite": "8.6.14", - "@tabler/icons-webfont": "3.34.0", + "@storybook/vue3": "9.1.0", + "@storybook/vue3-vite": "9.1.0", + "@tabler/icons-webfont": "3.34.1", "@testing-library/vue": "8.1.0", "@types/canvas-confetti": "1.9.0", "@types/estree": "1.0.8", "@types/matter-js": "0.19.8", "@types/micromatch": "4.0.9", - "@types/node": "22.16.4", + "@types/node": "22.17.0", "@types/punycode.js": "npm:@types/punycode@2.1.4", "@types/sanitize-html": "2.16.0", "@types/seedrandom": "3.0.8", "@types/throttle-debounce": "5.0.2", "@types/tinycolor2": "1.4.6", "@types/ws": "8.18.1", - "@typescript-eslint/eslint-plugin": "8.37.0", - "@typescript-eslint/parser": "8.37.0", + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", "@vitest/coverage-v8": "3.2.4", - "@vue/compiler-core": "3.5.17", - "@vue/runtime-core": "3.5.17", + "@vue/compiler-core": "3.5.18", + "@vue/runtime-core": "3.5.18", "acorn": "8.15.0", - "cross-env": "7.0.3", - "cypress": "14.5.2", + "cross-env": "10.0.0", + "cypress": "14.5.3", "eslint-plugin-import": "2.32.0", - "eslint-plugin-vue": "10.3.0", + "eslint-plugin-vue": "10.4.0", "fast-glob": "3.3.3", - "happy-dom": "17.6.3", + "happy-dom": "18.0.1", "intersection-observer": "0.12.2", "micromatch": "4.0.8", "minimatch": "10.0.3", @@ -130,17 +130,17 @@ "msw-storybook-addon": "2.0.5", "nodemon": "3.1.10", "prettier": "3.6.2", - "react": "19.1.0", - "react-dom": "19.1.0", + "react": "19.1.1", + "react-dom": "19.1.1", "seedrandom": "3.0.5", "start-server-and-test": "2.0.12", - "storybook": "8.6.14", + "storybook": "9.1.0", "storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme", "vite-plugin-turbosnap": "1.0.3", "vitest": "3.2.4", "vitest-fetch-mock": "0.4.5", - "vue-component-type-helpers": "2.2.12", + "vue-component-type-helpers": "3.0.5", "vue-eslint-parser": "10.2.0", - "vue-tsc": "2.2.12" + "vue-tsc": "3.0.5" } } diff --git a/packages/frontend/src/components/MkSuperMenu.vue b/packages/frontend/src/components/MkSuperMenu.vue index 5c89a6530d..dbc673333c 100644 --- a/packages/frontend/src/components/MkSuperMenu.vue +++ b/packages/frontend/src/components/MkSuperMenu.vue @@ -52,9 +52,9 @@ SPDX-License-Identifier: AGPL-3.0-only {{ item.label }} @@ -95,7 +95,7 @@ export type SuperMenuDef = { + + diff --git a/packages/frontend/src/components/index.ts b/packages/frontend/src/components/index.ts index 19766e8575..6b1b80695f 100644 --- a/packages/frontend/src/components/index.ts +++ b/packages/frontend/src/components/index.ts @@ -31,7 +31,7 @@ import PageWithHeader from './global/PageWithHeader.vue'; import PageWithAnimBg from './global/PageWithAnimBg.vue'; import SearchMarker from './global/SearchMarker.vue'; import SearchLabel from './global/SearchLabel.vue'; -import SearchKeyword from './global/SearchKeyword.vue'; +import SearchText from './global/SearchText.vue'; import SearchIcon from './global/SearchIcon.vue'; import type { App } from 'vue'; @@ -71,7 +71,7 @@ export const components = { PageWithAnimBg: PageWithAnimBg, SearchMarker: SearchMarker, SearchLabel: SearchLabel, - SearchKeyword: SearchKeyword, + SearchText: SearchText, SearchIcon: SearchIcon, }; @@ -105,7 +105,7 @@ declare module '@vue/runtime-core' { PageWithAnimBg: typeof PageWithAnimBg; SearchMarker: typeof SearchMarker; SearchLabel: typeof SearchLabel; - SearchKeyword: typeof SearchKeyword; + SearchText: typeof SearchText; SearchIcon: typeof SearchIcon; } } diff --git a/packages/frontend/src/lib/nirax.ts b/packages/frontend/src/lib/nirax.ts index 70db47e24e..74dda9decd 100644 --- a/packages/frontend/src/lib/nirax.ts +++ b/packages/frontend/src/lib/nirax.ts @@ -165,6 +165,8 @@ function buildFullPath(args: { const replaceRegex = new RegExp(`:${key}(\\?)?`, 'g'); fullPath = fullPath.replace(replaceRegex, value ? encodeURIComponent(value) : ''); } + // remove any optional parameters that are not provided + fullPath = fullPath.replace(/\/:\w+\?(?=\/|$)/g, ''); } if (args.query) { diff --git a/packages/frontend/src/pages/admin/bot-protection.vue b/packages/frontend/src/pages/admin/bot-protection.vue index 6c580f87f1..bd919146f8 100644 --- a/packages/frontend/src/pages/admin/bot-protection.vue +++ b/packages/frontend/src/pages/admin/bot-protection.vue @@ -4,158 +4,161 @@ SPDX-License-Identifier: AGPL-3.0-only -->