From 5185c96b02ffcd9d9134e8684948c8255b37e8e4 Mon Sep 17 00:00:00 2001 From: AZADAYAZ <95386329+AZADAYAZ@users.noreply.github.com> Date: Fri, 17 Jul 2026 04:51:59 +0300 Subject: [PATCH 01/15] Update RichInputConnection.java --- .../keyboard/latin/RichInputConnection.java | 530 ++---------------- 1 file changed, 52 insertions(+), 478 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java index d10809ac9..7c6aabdb9 100644 --- a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java +++ b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java @@ -50,18 +50,6 @@ import java.util.concurrent.TimeUnit; -/** - * Enrichment class for InputConnection to simplify interaction and add - * functionality. - *

- * This class serves as a wrapper to be able to simply add hooks to any calls to - * the underlying - * InputConnection. It also keeps track of a number of things to avoid having to - * call upon IPC - * all the time to find out what text is in the buffer, when we need it to - * determine caps mode - * for example. - */ public final class RichInputConnection implements PrivateCommandPerformer { private static final String TAG = "RichInputConnection"; private static final boolean DBG = false; @@ -71,18 +59,7 @@ public final class RichInputConnection implements PrivateCommandPerformer { private static final int NUM_CHARS_TO_GET_AFTER_CURSOR = 40; private static final int INVALID_CURSOR_POSITION = -1; - /** - * The amount of time a {@link #reloadTextCache} call needs to take for the - * keyboard to enter - * the {@link #hasSlowInputConnection} state. - * Reduced from 1000ms to 300ms for faster detection of slow connections. - */ private static final long SLOW_INPUT_CONNECTION_ON_FULL_RELOAD_MS = 300; - /** - * The amount of time a {@link #getTextBeforeCursor} or - * {@link #getTextAfterCursor} call needs - * to take for the keyboard to enter the {@link #hasSlowInputConnection} state. - */ private static final long SLOW_INPUT_CONNECTION_ON_PARTIAL_RELOAD_MS = 200; private static final int OPERATION_GET_TEXT_BEFORE_CURSOR = 0; @@ -95,60 +72,19 @@ public final class RichInputConnection implements PrivateCommandPerformer { "GET_WORD_RANGE_AT_CURSOR", "RELOAD_TEXT_CACHE" }; - /** - * The amount of time the keyboard will persist in the - * {@link #hasSlowInputConnection} state - * after observing a slow InputConnection event. - * Reduced from 10 minutes to 2 minutes for faster recovery from temporary slowness. - */ private static final long SLOW_INPUTCONNECTION_PERSIST_MS = TimeUnit.MINUTES.toMillis(2); - /** - * This variable contains an expected value for the selection start position. - * This is where the - * cursor or selection start may end up after all the keyboard-triggered updates - * have passed. We - * keep this to compare it to the actual selection start to guess whether the - * move was caused by - * a keyboard command or not. - * It's not really the selection start position: the selection start may not be - * there yet, and - * in some cases, it may never arrive there. - */ - private int mExpectedSelStart = INVALID_CURSOR_POSITION; // in chars, not code points - /** - * The expected selection end. Only differs from mExpectedSelStart if a - * non-empty selection is - * expected. The same caveats as mExpectedSelStart apply. - */ - private int mExpectedSelEnd = INVALID_CURSOR_POSITION; // in chars, not code points - /** - * This contains the committed text immediately preceding the cursor and the - * composing - * text, if any. It is refreshed when the cursor moves by calling upon the - * TextView. - */ + private int mExpectedSelStart = INVALID_CURSOR_POSITION; + private int mExpectedSelEnd = INVALID_CURSOR_POSITION; private final StringBuilder mCommittedTextBeforeComposingText = new StringBuilder(); - /** - * This contains the currently composing text, as LatinIME thinks the TextView - * is seeing it. - */ private final StringBuilder mComposingText = new StringBuilder(); - /** - * This variable is a temporary object used in - * {@link #commitText(CharSequence,int)} - * to avoid object creation. - */ private final SpannableStringBuilder mTempObjectForCommitText = new SpannableStringBuilder(); private final InputMethodService mParent; private InputConnection mIC; private int mNestLevel; - /** - * The timestamp of the last slow InputConnection operation - */ private long mLastSlowInputConnectionTime = -SLOW_INPUTCONNECTION_PERSIST_MS; public RichInputConnection(final InputMethodService parent) { @@ -161,12 +97,6 @@ public boolean isConnected() { return mIC != null; } - /** - * Returns whether or not the underlying InputConnection is slow. When true, we - * want to avoid - * calling InputConnection methods that trigger an IPC round-trip (e.g., - * getTextAfterCursor). - */ public boolean hasSlowInputConnection() { return (SystemClock.uptimeMillis() - mLastSlowInputConnectionTime) <= SLOW_INPUTCONNECTION_PERSIST_MS; } @@ -236,37 +166,9 @@ public void endBatchEdit() { checkConsistencyForDebug(); } - /** - * Reset the cached text and retrieve it again from the editor. - *

- * This should be called when the cursor moved. It's possible that we can't - * connect to - * the application when doing this; notably, this happens sometimes during - * rotation, probably - * because of a race condition in the framework. In this case, we just can't - * retrieve the - * data, so we empty the cache and note that we don't know the new cursor - * position, and we - * return false so that the caller knows about this and can retry later. - * - * @param newSelStart the new position of the selection start, as - * received from the system. - * @param newSelEnd the new position of the selection end, as - * received from the system. - * @param shouldFinishComposition whether we should finish the composition in - * progress. - * @return true if we were able to connect to the editor successfully, false - * otherwise. When - * this method returns false, the caches could not be correctly - * refreshed so they were only - * reset: the caller should try again later to return to normal - * operation. - */ public boolean resetCachesUponCursorMoveAndReturnSuccess(final int newSelStart, final int newSelEnd, final boolean shouldFinishComposition) { mComposingText.setLength(0); - // Set expected positions before reload so the cache is built with the correct - // cursor context — avoids a second IPC round-trip when position has changed. final int oldExpectedSelStart = mExpectedSelStart; final int oldExpectedSelEnd = mExpectedSelEnd; mExpectedSelStart = newSelStart; @@ -274,7 +176,6 @@ public boolean resetCachesUponCursorMoveAndReturnSuccess(final int newSelStart, final boolean didReloadTextSuccessfully = reloadTextCache(); if (!didReloadTextSuccessfully) { Log.d(TAG, "Will try to retrieve text later."); - // selection is set to INVALID_CURSOR_POSITION if reloadTextCache return false return false; } if (mExpectedSelStart != newSelStart || mExpectedSelEnd != newSelEnd) { @@ -287,31 +188,16 @@ public boolean resetCachesUponCursorMoveAndReturnSuccess(final int newSelStart, return true; } - /** - * Reload the cached text from the InputConnection. - * - * @return true if successful - */ private boolean reloadTextCache() { mCommittedTextBeforeComposingText.setLength(0); - // Clearing composing text was not in original AOSP and OpenBoard, but why? - // should actually - // be necessary when reloading text. Only when called by setSelection, - // mComposingText isn't - // always empty, but looks like things still work normally mComposingText.setLength(0); mIC = mParent.getCurrentInputConnection(); - // Call upon the inputconnection directly since our own method is using the - // cache, and - // we want to refresh it. final CharSequence textBeforeCursor = getTextBeforeCursorAndDetectLaggyConnection( OPERATION_RELOAD_TEXT_CACHE, SLOW_INPUT_CONNECTION_ON_FULL_RELOAD_MS, Constants.EDITOR_CONTENTS_CACHE_SIZE, 0 /* flags */); if (null == textBeforeCursor) { - // For some reason the app thinks we are not connected to it. This looks like a - // framework bug... Fall back to ground state and return false. mExpectedSelStart = INVALID_CURSOR_POSITION; mExpectedSelEnd = INVALID_CURSOR_POSITION; Log.e(TAG, "Unable to connect to the editor to retrieve text."); @@ -333,7 +219,6 @@ private void reloadCursorPosition() { private void checkBatchEdit() { if (mNestLevel != 1) { - // TODO: exception instead Log.e(TAG, "Batch edit level incorrect : " + mNestLevel); Log.e(TAG, DebugLogUtils.getStackTrace(4)); } @@ -344,11 +229,6 @@ public void finishComposingText() { checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); - // TODO: this is not correct! The cursor is not necessarily after the composing - // text. - // In the practice right now this is only called when input ends so it will be - // reset so - // it works, but it's wrong and should be fixed. mCommittedTextBeforeComposingText.append(mComposingText); mComposingText.setLength(0); if (isConnected()) { @@ -360,13 +240,17 @@ public void commitCodePoint(final int codePoint) { commitText(StringUtils.newSingleCodePointString(codePoint), 1); } - /** - * Calls {@link InputConnection#commitText(CharSequence, int)}. - * - * @param text The text to commit. This may include styles. - * @param newCursorPosition The new cursor position around the text. - */ public void commitText(final CharSequence text, final int newCursorPosition) { + // --- EKLENEN KARA LİSTE KONTROLÜ --- + if (text != null && isWordBlocked(text.toString())) { + mComposingText.setLength(0); + if (isConnected()) { + mIC.commitText("", 1); + } + return; + } + // ------------------------------------ + if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) @@ -374,12 +258,7 @@ public void commitText(final CharSequence text, final int newCursorPosition) { if (DebugFlags.DEBUG_ENABLED) Log.d(TAG, "committing " + text.length() + " characters"); mCommittedTextBeforeComposingText.append(text); - // TODO: the following is exceedingly error-prone. Right now when the cursor is - // in the - // middle of the composing word mComposingText only holds the part of the - // composing text - // that is before the cursor, so this actually works, but it's terribly - // confusing. Fix this. + mExpectedSelStart += text.length() - mComposingText.length(); mExpectedSelEnd = mExpectedSelStart; mComposingText.setLength(0); @@ -392,10 +271,7 @@ public void commitText(final CharSequence text, final int newCursorPosition) { final int spanStart = mTempObjectForCommitText.getSpanStart(span); final int spanEnd = mTempObjectForCommitText.getSpanEnd(span); final int spanFlags = mTempObjectForCommitText.getSpanFlags(span); - // We have to adjust the end of the span to include an additional character. - // This is to avoid splitting a unicode surrogate pair. - // See helium314.keyboard.latin.common.Constants.UnicodeSurrogate - // See https://b.corp.google.com/issues/19255233 + if (0 < spanEnd && spanEnd < mTempObjectForCommitText.length()) { final char spanEndChar = mTempObjectForCommitText.charAt(spanEnd - 1); final char nextChar = mTempObjectForCommitText.charAt(spanEnd); @@ -423,27 +299,6 @@ public boolean hasTextAfterCursor() { return !TextUtils.isEmpty(after); } - /** - * Gets the caps modes we should be in after this specific string. - *

- * This returns a bit set of TextUtils#CAP_MODE_*, masked by the inputType - * argument. - * This method also supports faking an additional space after the string passed - * in argument, - * to support cases where a space will be added automatically, like in phantom - * space - * state for example. - * Note that for English, we are using American typography rules (which are not - * specific to - * American English, it's just the most common set of rules for English). - * - * @param inputType a mask of the caps modes to test for. - * @param spacingAndPunctuations the values of the settings to use for locale - * and separators. - * @param hasSpaceBefore if we should consider there should be a space - * after the string. - * @return the caps modes that should be on as a set of bits - */ public int getCursorCapsMode(final int inputType, final SpacingAndPunctuations spacingAndPunctuations, final boolean hasSpaceBefore) { mIC = mParent.getCurrentInputConnection(); @@ -452,33 +307,16 @@ public int getCursorCapsMode(final int inputType, } if (!TextUtils.isEmpty(mComposingText)) { if (hasSpaceBefore) { - // If we have some composing text and a space before, then we should have - // MODE_CHARACTERS and MODE_WORDS on. return (TextUtils.CAP_MODE_CHARACTERS | TextUtils.CAP_MODE_WORDS) & inputType; } - // We have some composing text - we should be in MODE_CHARACTERS only. return TextUtils.CAP_MODE_CHARACTERS & inputType; } - // TODO: this will generally work, but there may be cases where the buffer - // contains SOME - // information but not enough to determine the caps mode accurately. This may - // happen after - // heavy pressing of delete, for example DEFAULT_TEXT_CACHE_SIZE - 5 times or - // so. - // getCapsMode should be updated to be able to return a "not enough info" result - // so that - // we can get more context only when needed. if (TextUtils.isEmpty(mCommittedTextBeforeComposingText) && 0 != mExpectedSelStart) { if (!reloadTextCache()) { Log.w(TAG, "Unable to connect to the editor. " + "Setting caps mode without knowing text."); } } - // This never calls InputConnection#getCapsMode - in fact, it's a static method - // that - // never blocks or initiates IPC. - // TODO: don't call #toString() here. Instead, all accesses to - // mCommittedTextBeforeComposingText should be done on the main thread. return CapsModeUtils.getCapsMode(mCommittedTextBeforeComposingText.toString(), inputType, spacingAndPunctuations, hasSpaceBefore); } @@ -508,27 +346,16 @@ public int getCharBeforeBeforeCursor() { @Nullable public CharSequence getTextBeforeCursor(final int n, final int flags) { final int cachedLength = mCommittedTextBeforeComposingText.length() + mComposingText.length(); - // If we have enough characters to satisfy the request, or if we have all - // characters in - // the text field, then we can return the cached version right away. - // However, if we don't have an expected cursor position, then we should always - // go fetch the cache again (as it happens, INVALID_CURSOR_POSITION < 0, so we - // need to - // test for this explicitly) if (INVALID_CURSOR_POSITION != mExpectedSelStart && (cachedLength >= n || cachedLength >= mExpectedSelStart)) { - // Thread-safety: snapshot mComposingText via toString() since it may be - // mutated on the main thread while this runs on a worker thread. final String composingSnapshot = mComposingText.toString(); final String committedSnapshot = mCommittedTextBeforeComposingText.toString(); final int totalLen = committedSnapshot.length() + composingSnapshot.length(); if (totalLen <= n) { - // Common case: return everything without trimming — avoid StringBuilder if (composingSnapshot.isEmpty()) return committedSnapshot; if (committedSnapshot.isEmpty()) return composingSnapshot; return committedSnapshot + composingSnapshot; } - // Rare case: need to trim from the front final String combined = committedSnapshot + composingSnapshot; return combined.substring(combined.length() - n); } @@ -549,18 +376,8 @@ private CharSequence getTextBeforeCursorAndDetectLaggyConnection( final CharSequence result = mIC.getTextBeforeCursor(n, flags); detectLaggyConnection(operation, timeout, startTime); - // only do the consistency check if we actually have text (i.e. we're not coming - // from some reload / reset) if ((mCommittedTextBeforeComposingText.length() > 0 || mComposingText.length() > 0) && result != null && !checkTextBeforeCursorConsistency(result)) { - // inconsistent state can occur for (at least) two reasons - // 1. the app actively changes text field content, e.g. joplin when deleting - // list markers like "2." - // 2. the app has outdated contents in the text field, e.g. com.farmerbb.notepad - // returns the - // just deleted char right after deletion, instead of the correct one - // todo: understand where this inconsistent state comes from, is it really the - // other app's fault, or is it HeliBoard? Log.w(TAG, "cached text out of sync, reloading"); reloadCursorPosition(); reloadTextCache(); @@ -568,20 +385,12 @@ private CharSequence getTextBeforeCursorAndDetectLaggyConnection( return result; } - // checks whether the end of cached text before cursor is the same as end of the - // given CharSequence - // this is done to find inconsistencies that arise in some text fields when - // characters are deleted, but also in some other cases - // only checks the end for performance reasons - // may need to check more than just the last character, because the text may end - // in e.g. rrrrr and even there a single car offset should be found private boolean checkTextBeforeCursorConsistency(final CharSequence textField) { final int lastIndex = textField.length() - 1; if (lastIndex == -1) return true; final char lastChar = textField.charAt(lastIndex); final int composingLength = mComposingText.length(); - // Fast-path: check last character without loop overhead (covers >90% of consistent cases) final char lastCachedChar; if (composingLength > 0) { lastCachedChar = mComposingText.charAt(composingLength - 1); @@ -589,41 +398,32 @@ private boolean checkTextBeforeCursorConsistency(final CharSequence textField) { lastCachedChar = mCommittedTextBeforeComposingText.charAt( mCommittedTextBeforeComposingText.length() - 1); } else { - return true; // empty cache, nothing to compare + return true; } if (lastCachedChar != lastChar) - return false; // last char mismatch → inconsistent - // If last char differs from second-to-last in the text field, no need for full scan + return false; if (lastIndex > 0 && textField.charAt(lastIndex - 1) != lastChar) return true; for (int i = 0; i <= lastIndex; i++) { - // get last minus i character and compare final char currentTextFieldChar = textField.charAt(lastIndex - i); final char currentCachedChar; if (i < composingLength) { - // take char from composing text currentCachedChar = mComposingText.charAt(composingLength - 1 - i); } else { - // take last char from mCommittedTextBeforeComposingText, consider composing - // length final int index = mCommittedTextBeforeComposingText.length() - 1 - (i - composingLength); if (index < mCommittedTextBeforeComposingText.length() && index >= 0) currentCachedChar = mCommittedTextBeforeComposingText.charAt(index); else - return lastIndex > 100; // still let it pass if the same character is repeated many times, but - // cached text too short + return lastIndex > 100; } if (currentTextFieldChar != currentCachedChar) - // different character -> inconsistent return false; if (lastChar != currentTextFieldChar) - // not the same, and no inconsistency found so far -> unlikely there is one that - // won't be found later -> return early return true; } - return true; // no inconsistency found after going through everything + return true; } @Nullable @@ -655,7 +455,6 @@ private void detectLaggyConnection(final int operation, final long timeout, fina StatsUtils.onInputConnectionLaggy(operation, duration); mLastSlowInputConnectionTime = SystemClock.uptimeMillis(); } else if (duration < timeout / 5 && hasSlowInputConnection()) { - // we have a fast connection now, maybe the slowness was just a hickup mLastSlowInputConnectionTime -= SLOW_INPUTCONNECTION_PERSIST_MS / 2; Log.d(TAG, "InputConnection: much faster now, reducing persist time"); } @@ -664,11 +463,6 @@ private void detectLaggyConnection(final int operation, final long timeout, fina public void deleteTextBeforeCursor(final int beforeLength) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); - // TODO: the following is incorrect if the cursor is not immediately after the - // composition. - // Right now we never come here in this case because we reset the composing - // state before we - // come here in this case, but we need to fix this. if (DebugFlags.DEBUG_ENABLED) Log.d(TAG, "deleting " + beforeLength + " characters before cursor"); final int remainingChars = mComposingText.length() - beforeLength; @@ -676,7 +470,6 @@ public void deleteTextBeforeCursor(final int beforeLength) { mComposingText.setLength(remainingChars); } else { mComposingText.setLength(0); - // Never cut under 0 final int len = Math.max(mCommittedTextBeforeComposingText.length() + remainingChars, 0); mCommittedTextBeforeComposingText.setLength(len); @@ -685,10 +478,6 @@ public void deleteTextBeforeCursor(final int beforeLength) { mExpectedSelStart -= beforeLength; mExpectedSelEnd -= beforeLength; } else { - // There are fewer characters before the cursor in the buffer than we are being - // asked to - // delete. Only delete what is there, and update the end with the amount - // deleted. mExpectedSelEnd -= mExpectedSelStart; mExpectedSelStart = 0; } @@ -736,22 +525,12 @@ public void performEditorAction(final int actionId) { public void sendKeyEvent(final KeyEvent keyEvent) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); - if (DebugFlags.DEBUG_ENABLED) // no details, might be too sensitive + if (DebugFlags.DEBUG_ENABLED) Log.d(TAG, "key event with action " + keyEvent.getAction() + ", is control: " + Character.isISOControl(keyEvent.getUnicodeChar())); if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) { if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); - // This method is only called for enter or backspace when speaking to old - // applications - // (target SDK <= 15 (Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)), or for - // digits. - // When talking to new applications we never use this method because it's - // inherently - // racy and has unpredictable results, but for backward compatibility we - // continue - // sending the key events for only Enter and Backspace because some applications - // mistakenly catch them to do some stuff. switch (keyEvent.getKeyCode()) { case KeyEvent.KEYCODE_ENTER: mCommittedTextBeforeComposingText.append("\n"); @@ -769,7 +548,6 @@ public void sendKeyEvent(final KeyEvent keyEvent) { mComposingText.delete(mComposingText.length() - 1, mComposingText.length()); } if (mExpectedSelStart > 0 && mExpectedSelStart == mExpectedSelEnd) { - // TODO: Handle surrogate pairs. mExpectedSelStart -= 1; } mExpectedSelEnd = mExpectedSelStart; @@ -784,7 +562,7 @@ public void sendKeyEvent(final KeyEvent keyEvent) { default: final int codePoint = keyEvent.getUnicodeChar(); if (Character.isISOControl(codePoint)) - break; // don't append text if there is no actual text + break; final String text = StringUtils.newSingleCodePointString(codePoint); mCommittedTextBeforeComposingText.append(text); mExpectedSelStart += text.length(); @@ -802,23 +580,12 @@ public void setComposingRegion(final int start, final int end) { checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); - final int moveBy = mExpectedSelStart - start; // determine now, as mExpectedSelStart may change in - // getTextBeforeCursor + final int moveBy = mExpectedSelStart - start; final CharSequence textBeforeCursor = getTextBeforeCursor(Constants.EDITOR_CONTENTS_CACHE_SIZE + (end - start), 0); mCommittedTextBeforeComposingText.setLength(0); - // also clear composing text, otherwise we may append existing text - // this can happen when we're a little out of sync with the editor mComposingText.setLength(0); if (!TextUtils.isEmpty(textBeforeCursor)) { - // The cursor is not necessarily at the end of the composing text, but we have - // its - // position in mExpectedSelStart and mExpectedSelEnd. In this case we want the - // start - // of the text, so we should use mExpectedSelStart. In other words, the - // composing - // text starts (mExpectedSelStart - start) characters before the end of - // textBeforeCursor final int indexOfStartOfComposingText = Math.max(textBeforeCursor.length() - moveBy, 0); mComposingText.append(textBeforeCursor.subSequence(indexOfStartOfComposingText, textBeforeCursor.length())); @@ -830,20 +597,6 @@ public void setComposingRegion(final int start, final int end) { } } - /** - * Set the composing text with background color. - * - * @param newComposingText the composing text to be set - * @param newCursorPosition the new cursor position - * @param backgroundColor the background color to be set to the composing - * text. Set - * {@link Color#TRANSPARENT} to disable the background - * color. - * @param coloredTextLength the length of text, in Java chars, which should be - * rendered with - * the given background color. - * @return Params match InputLogic#setComposingTextInternalWithBackgroundColor - */ public boolean setComposingTextWithBackgroundColor(final CharSequence newComposingText, final int newCursorPosition, final int backgroundColor, final int coloredTextLength) { final CharSequence composingTextToBeSet; @@ -860,9 +613,17 @@ public boolean setComposingTextWithBackgroundColor(final CharSequence newComposi return setComposingText(composingTextToBeSet, newCursorPosition); } - // return whether the text was (probably) set correctly - // unfortunately this is necessary in some cases public boolean setComposingText(final CharSequence text, final int newCursorPosition) { + // --- EKLENEN KARA LİSTE KONTROLÜ --- + if (text != null && isWordBlocked(text.toString())) { + mComposingText.setLength(0); + if (isConnected()) { + mIC.setComposingText("", 1); + } + return false; + } + // ------------------------------------ + if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) @@ -871,20 +632,12 @@ public boolean setComposingText(final CharSequence text, final int newCursorPosi mExpectedSelEnd = mExpectedSelStart; mComposingText.setLength(0); mComposingText.append(text); - // TODO: support values of newCursorPosition != 1. At this time, this is never - // called with - // newCursorPosition != 1. + if (isConnected()) { if (DebugFlags.DEBUG_ENABLED) - Log.d(TAG, "setting composing text of length " + text.length()); // don't log actual text + Log.d(TAG, "setting composing text of length " + text.length()); mIC.setComposingText(text, newCursorPosition); if (!Settings.getValues().mInputAttributes.mShouldShowSuggestions && text.length() > 0) { - // We have a field that disables suggestions, but still committed text is set. - // This might lead to weird bugs (e.g. - // https://github.com/Helium314/HeliBoard/issues/225), so better do - // a sanity check whether the wanted text has been set. - // Note that the check may also fail because the text field is not yet updated, - // so we don't want to check everything! final CharSequence lastChar = mIC.getTextBeforeCursor(1, 0); if (lastChar == null || lastChar.length() == 0 || text.charAt(text.length() - 1) != lastChar.charAt(0)) { @@ -899,19 +652,6 @@ public boolean setComposingText(final CharSequence text, final int newCursorPosi return true; } - /** - * Set the selection of the text editor. - *

- * Calls through to {@link InputConnection#setSelection(int, int)}. - * - * @param start the character index where the selection should start. - * @param end the character index where the selection should end. - * @return Returns true on success, false on failure: either the input - * connection is no longer - * valid when setting the selection or when retrieving the text cache at - * that point, or - * invalid arguments were passed. - */ public boolean setSelection(final int start, final int end) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); @@ -950,9 +690,7 @@ public boolean performContextMenuAction(final int actionId) { public void selectAll() { if (!isConnected()) return; - if (mExpectedSelStart != mExpectedSelEnd && mExpectedSelStart == 0 && !hasTextAfterCursor()) { // all text - // already - // selected + if (mExpectedSelStart != mExpectedSelEnd && mExpectedSelStart == 0 && !hasTextAfterCursor()) { mIC.setSelection(mExpectedSelEnd, mExpectedSelEnd); } else mIC.performContextMenuAction(android.R.id.selectAll); @@ -961,7 +699,7 @@ public void selectAll() { public void selectWord(final SpacingAndPunctuations spacingAndPunctuations, final String script) { if (!isConnected()) return; - if (mExpectedSelStart != mExpectedSelEnd) { // already something selected + if (mExpectedSelStart != mExpectedSelEnd) { mIC.setSelection(mExpectedSelEnd, mExpectedSelEnd); return; } @@ -980,11 +718,9 @@ public void copyText(final boolean getSelection) { } CharSequence text = null; if (getSelection) { - // copy selected text, and if nothing is selected copy the whole text text = getSelectedText(InputConnection.GET_TEXT_WITH_STYLES); } if (text == null || text.length() == 0) { - // we have no selection, get the whole text final ExtractedTextRequest etr = new ExtractedTextRequest(); etr.flags = InputConnection.GET_TEXT_WITH_STYLES; etr.hintMaxChars = Integer.MAX_VALUE; @@ -1007,10 +743,6 @@ public void commitCorrection(final CorrectionInfo correctionInfo) { checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); - // This has no effect on the text field and does not change its content. It only - // makes - // TextView flash the text for a second based on indices contained in the - // argument. if (isConnected()) { mIC.commitCorrection(correctionInfo); } @@ -1025,9 +757,7 @@ public void commitCompletion(final CompletionInfo completionInfo) { checkConsistencyForDebug(); CharSequence text = completionInfo.getText(); if (DebugFlags.DEBUG_ENABLED) - Log.d(TAG, "committing completion of length " + text.length()); // don't log actual text - // text should never be null, but just in case, it's better to insert nothing - // than to crash + Log.d(TAG, "committing completion of length " + text.length()); if (null == text) text = ""; mCommittedTextBeforeComposingText.append(text); @@ -1053,11 +783,6 @@ public NgramContext getNgramContextFromNthPreviousWord( final int checkLength = NUM_CHARS_TO_GET_BEFORE_CURSOR - 1; final String reference = prev.length() <= checkLength ? prev.toString() : prev.subSequence(prev.length() - checkLength, prev.length()).toString(); - // TODO: right now the following works because mComposingText holds the part of - // the - // composing text that is before the cursor, but this is very confusing. We - // should - // fix it. final StringBuilder internal = new StringBuilder() .append(mCommittedTextBeforeComposingText).append(mComposingText); if (internal.length() > checkLength) { @@ -1071,14 +796,6 @@ public NgramContext getNgramContextFromNthPreviousWord( return NgramContextUtils.getNgramContextFromNthPreviousWord(prev, spacingAndPunctuations, n); } - /** - * Returns the text surrounding the cursor. - * - * @param spacingAndPunctuations the rules for spacing and punctuation - * @param script the script we consider to be writing words, as - * one of ScriptUtils.SCRIPT_* - * @return a range containing the text surrounding the cursor - */ @Nullable public TextRange getWordRangeAtCursor(final SpacingAndPunctuations spacingAndPunctuations, final String script) { @@ -1105,11 +822,9 @@ public TextRange getWordRangeAtCursor(final SpacingAndPunctuations spacingAndPun public boolean isCursorTouchingWord(final SpacingAndPunctuations spacingAndPunctuations, boolean checkTextAfter) { if (checkTextAfter && isCursorFollowedByWordCharacter(spacingAndPunctuations)) { - // If what's after the cursor is a word character, then we're touching a word. return true; } if (mComposingText.length() > 0) { - // a composing region should always count as a word return true; } return StringUtilsKt.endsWithWordCodepoint(mCommittedTextBeforeComposingText.toString(), @@ -1144,23 +859,14 @@ public boolean sameAsTextBeforeCursor(final CharSequence text) { public boolean revertDoubleSpacePeriod(final SpacingAndPunctuations spacingAndPunctuations) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); - // Here we test whether we indeed have a period and a space before us. This - // should not - // be needed, but it's there just in case something went wrong. final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0); if (!TextUtils.equals(spacingAndPunctuations.mSentenceSeparatorAndSpace, textBeforeCursor)) { - // Theoretically we should not be coming here if there isn't ". " before the - // cursor, but the application may be changing the text while we are typing, so - // anything goes. We should not crash. Log.d(TAG, "Tried to revert double-space combo but we didn't find \"" + spacingAndPunctuations.mSentenceSeparatorAndSpace + "\" just before the cursor."); return false; } - // Double-space results in ". ". A backspace to cancel this should result in a - // single - // space in the text field, so we replace ". " with a single space. deleteTextBeforeCursor(2); final String singleSpace = " "; commitText(singleSpace, 1); @@ -1170,20 +876,9 @@ public boolean revertDoubleSpacePeriod(final SpacingAndPunctuations spacingAndPu public boolean revertSwapPunctuation() { if (DEBUG_BATCH_NESTING) checkBatchEdit(); - // Here we test whether we indeed have a space and something else before us. - // This should not - // be needed, but it's there just in case something went wrong. final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0); - // NOTE: This does not work with surrogate pairs. Hopefully when the keyboard is - // able to - // enter surrogate pairs this code will have been removed. if (TextUtils.isEmpty(textBeforeCursor) || (Constants.CODE_SPACE != textBeforeCursor.charAt(1))) { - // We may only come here if the application is changing the text while we are - // typing. - // This is quite a broken case, but not logically impossible, so we shouldn't - // crash, - // but some debugging log may be in order. Log.d(TAG, "Tried to revert a swap of punctuation but we didn't " + "find a space just before the cursor."); return false; @@ -1194,79 +889,22 @@ public boolean revertSwapPunctuation() { return true; } - /** - * Heuristic to determine if this is an expected update of the cursor. - *

- * Sometimes updates to the cursor position are late because of their - * asynchronous nature. - * This method tries to determine if this update is one, based on the values of - * the cursor - * position in the update, and the currently expected position of the cursor - * according to - * LatinIME's internal accounting. If this is not a belated expected update, - * then it should - * mean that the user moved the cursor explicitly. - * This is quite robust, but of course it's not perfect. In particular, it will - * fail in the - * case we get an update A, the user types in N characters so as to move the - * cursor to A+N but - * we don't get those, and then the user places the cursor between A and A+N, - * and we get only - * this update and not the ones in-between. This is almost impossible to achieve - * even trying - * very very hard. - * - * @param oldSelStart The value of the old selection in the update. - * @param newSelStart The value of the new selection in the update. - * @param oldSelEnd The value of the old selection end in the update. - * @param newSelEnd The value of the new selection end in the update. - * @return whether this is a belated expected update or not. - */ public boolean isBelatedExpectedUpdate(final int oldSelStart, final int newSelStart, final int oldSelEnd, final int newSelEnd, final int composingSpanStart, final int composingSpanEnd) { - // This update is "belated" if we are expecting it. That is, mExpectedSelStart - // and - // mExpectedSelEnd match the new values that the TextView is updating TO. if (mExpectedSelStart == newSelStart && mExpectedSelEnd == newSelEnd) { if (composingSpanEnd - composingSpanStart < mComposingText.length()) { - // composing span is smaller than expected, maybe changed by the app (see #1141) - // larger composing span is ok, because mComposingText only contains the word up - // to the cursor return false; } return true; } - // This update is not belated if mExpectedSelStart and mExpectedSelEnd match the - // old - // values, and one of newSelStart or newSelEnd is updated to a different value. - // In this - // case, it is likely that something other than the IME has moved the selection - // endpoint - // to the new value. if (mExpectedSelStart == oldSelStart && mExpectedSelEnd == oldSelEnd && (oldSelStart != newSelStart || oldSelEnd != newSelEnd)) return false; - // If neither of the above two cases hold, then the system may be having trouble - // keeping up - // with updates. If 1) the selection is a cursor, 2) newSelStart is between - // oldSelStart - // and mExpectedSelStart, and 3) newSelEnd is between oldSelEnd and - // mExpectedSelEnd, then - // assume a belated update. return (newSelStart == newSelEnd) && (newSelStart - oldSelStart) * (mExpectedSelStart - newSelStart) >= 0 && (newSelEnd - oldSelEnd) * (mExpectedSelEnd - newSelEnd) >= 0; } - /** - * Looks at the text just before the cursor to find out if it looks like a URL. - *

- * The weakest point here is, if we don't have enough text bufferized, we may - * fail to realize - * we are in URL situation, but other places in this class have the same - * limitation and it - * does not matter too much in the practice. - */ public boolean textBeforeCursorLooksLikeURL() { return StringUtils.lastPartLooksLikeURL(mCommittedTextBeforeComposingText); } @@ -1321,40 +959,10 @@ public CharSequence textBeforeCursorUntilLastWhitespaceOrDoubleSlash() { return mCommittedTextBeforeComposingText.subSequence(startIndex, mCommittedTextBeforeComposingText.length()); } - /** - * Looks at the text just before the cursor to find out if we are inside a - * double quote. - *

- * As with #textBeforeCursorLooksLikeURL, this is dependent on how much text we - * have cached. - * However this won't be a concrete problem in most situations, as the cache is - * almost always - * long enough for this use. - */ public boolean isInsideDoubleQuoteOrAfterDigit() { return StringUtils.isInsideDoubleQuoteOrAfterDigit(mCommittedTextBeforeComposingText); } - /** - * Try to get the text from the editor to expose lies the framework may have - * been - * telling us. Concretely, when the device rotates and when the keyboard reopens - * in the same - * text field after having been closed with the back key, the frameworks tells - * us about where - * the cursor used to be initially in the editor at the time it first received - * the focus; this - * may be completely different from the place it is upon rotation. Since we - * don't have any - * means to get the real value, try at least to ask the text view for some - * characters and - * detect the most damaging cases: when the cursor position is declared to be - * much smaller - * than it really is. - * (renamed the method, because we clearly ask the editorInfo to provide initial - * selection, no reason to complain about it - * being initial and thus possibly outdated) - */ public void tryFixIncorrectCursorPosition() { mIC = mParent.getCurrentInputConnection(); final CharSequence textBeforeCursor = getTextBeforeCursor( @@ -1362,46 +970,18 @@ public void tryFixIncorrectCursorPosition() { final CharSequence selectedText = isConnected() ? mIC.getSelectedText(0 /* flags */) : null; if (null == textBeforeCursor || (!TextUtils.isEmpty(selectedText) && mExpectedSelEnd == mExpectedSelStart)) { - // If textBeforeCursor is null, we have no idea what kind of text field we have - // or if - // thinking about the "cursor position" actually makes any sense. In this case - // we - // remember a meaningless cursor position. Contrast this with an empty string, - // which is - // valid and should mean the cursor is at the start of the text. - // Also, if we expect we don't have a selection but we DO have non-empty - // selected text, - // then the framework lied to us about the cursor position. In this case, we - // should just - // revert to the most basic behavior possible for the next action (backspace in - // particular comes to mind), so we remember a meaningless cursor position which - // should - // result in degraded behavior from the next input. - // Interestingly, in either case, chances are any action the user takes next - // will result - // in a call to onUpdateSelection, which should set things right. mExpectedSelStart = mExpectedSelEnd = Constants.NOT_A_CURSOR_POSITION; } else { final int textLength = textBeforeCursor.length(); if (textLength < Constants.EDITOR_CONTENTS_CACHE_SIZE && (textLength > mExpectedSelStart || mExpectedSelStart < Constants.EDITOR_CONTENTS_CACHE_SIZE)) { - // It should not be possible to have only one of those variables be - // NOT_A_CURSOR_POSITION, so if they are equal, either the selection is - // zero-sized - // (simple cursor, no selection) or there is no cursor/we don't know its pos final boolean wasEqual = mExpectedSelStart == mExpectedSelEnd; mExpectedSelStart = textLength; - // We can't figure out the value of mLastSelectionEnd :( - // But at least if it's smaller than mLastSelectionStart something is wrong, - // and if they used to be equal we also don't want to make it look like there is - // a - // selection. if (wasEqual || mExpectedSelStart > mExpectedSelEnd) { mExpectedSelEnd = mExpectedSelStart; } } else { - // better re-read the correct position instead of guessing from incomplete data reloadCursorPosition(); } } @@ -1424,9 +1004,6 @@ public int getExpectedSelectionEnd() { return mExpectedSelEnd; } - /** - * @return whether there is a selection currently active. - */ public boolean hasSelection() { return mExpectedSelEnd != mExpectedSelStart; } @@ -1435,25 +1012,6 @@ public boolean isCursorPositionKnown() { return INVALID_CURSOR_POSITION != mExpectedSelStart; } - /** - * Requests the editor to call back - * {@link InputMethodManager#updateCursorAnchorInfo}. - * - * @param enableMonitor {@code true} to request the editor to call - * back the method whenever the - * cursor/anchor position is changed. - * @param requestImmediateCallback {@code true} to request the editor to call - * back the method - * as soon as possible to notify the current - * cursor/anchor position to the input method. - * @return {@code true} if the request is accepted. Returns {@code false} - * otherwise, which - * includes "not implemented" or "rejected" or "temporarily unavailable" - * or whatever which - * prevents the application from fulfilling the request. (TODO: Improve - * the API when it turns - * out that we actually need more detailed error codes) - */ public boolean requestCursorUpdates(final boolean enableMonitor, final boolean requestImmediateCallback) { mIC = mParent.getCurrentInputConnection(); if (!isConnected()) { @@ -1463,4 +1021,20 @@ public boolean requestCursorUpdates(final boolean enableMonitor, final boolean r | (requestImmediateCallback ? InputConnection.CURSOR_UPDATE_IMMEDIATE : 0); return mIC.requestCursorUpdates(cursorUpdateMode); } + + // --- EKLENEN KARA LİSTE KONTROLÜ İÇİN YARDIMCI METOD --- + /** + * DİKKAT: Bu metodu LeanType'ın asıl kara liste mantığına bağlaman gerekiyor. + * Şimdilik örnek olarak false döndürüyor. + */ + private boolean isWordBlocked(String text) { + if (TextUtils.isEmpty(text)) return false; + + String normalizedWord = text.trim().toLowerCase(); + + // Örnek kullanım: + // return BlacklistManager.getInstance().isBlocked(normalizedWord); + + return false; + } } From 602b8ea481ba64737daf2e7a6f9d83607a980cc5 Mon Sep 17 00:00:00 2001 From: AZADAYAZ <95386329+AZADAYAZ@users.noreply.github.com> Date: Fri, 17 Jul 2026 06:24:53 +0300 Subject: [PATCH 02/15] Update InputLogic.java --- .../helium314/keyboard/latin/inputlogic/InputLogic.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java index f037806fd..8671ef4ae 100644 --- a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java +++ b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java @@ -1655,10 +1655,12 @@ private void handleSeparatorEvent(final Event event, final InputTransaction inpu * @param inputTransaction The transaction in progress. */ private void handleBackspaceEvent(final Event event, final InputTransaction inputTransaction) { - final String currentKeyboardScript = inputTransaction.getSettingsValues().mCurrentKeyboardScript; + final String currentKeyboardScript = inputTransaction.getSettingsValues().mCurrentKeyboardScript; mSpaceState = SpaceState.NONE; mDeleteCount++; - + if (mConnection.getCodePointBeforeCursor() == ' ') { + mSpaceState = SpaceState.NONE; + } if (mLastExpandedText != null && !event.isKeyRepeat()) { final int expectedCursor = mConnection.getExpectedSelectionEnd(); if (expectedCursor == mLastExpandedCursorPosition) { From 17ad21e384ec18af68ccef4c2f12c2fb101e4c97 Mon Sep 17 00:00:00 2001 From: AZADAYAZ <95386329+AZADAYAZ@users.noreply.github.com> Date: Thu, 30 Jul 2026 03:55:38 +0300 Subject: [PATCH 03/15] Update strings.xml Co-authored-by: LeanBitLab <173956434+LeanBitLab@users.noreply.github.com> --- app/src/main/res/values-tr/strings.xml | 1702 ++++++++++++++++++------ 1 file changed, 1308 insertions(+), 394 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 0bbbec972..7856f9664 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,447 +1,1361 @@ - "Kişi adlarını denetle" - "Tuşa basıldığında titret" - "Tuşa basıldığında ses çıkar" - Tuşa basıldığında açılır pencere aç +--> + + + LeanType Yazım Denetleyici + LeanType + + LeanType Ayarları + + LeanType Yazım Denetleyici Ayarları + + Tuşa basıldığında titreşim + + Rahatsız etme modunda titreşim + + Tuşa basıldığında ses + + Emoji önerileri + + Normal önerilerde emoji sözlüğünü kullan + + Satır içi emoji araması + + Bir kelimenin önünde ':' varsa yalnızca emojileri öner + + Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. + + Uzun basmada emoji açıklamasını göster + + Tuşa basıldığında açılır pencere + Tercihler - Hareketle yazma - "Metin düzeltme" - "Gelişmiş" - "Tema" - "Bölünmüş klavyeyi etkinleştir" - "Diğer giriş yöntemine geç" - "Dil değiştirme tuşu" - "%s ms" - "Sistem varsayılanı" - "Öneri ve düzeltmeler için Kişiler\'deki adları kullan" - "Kişisel öneriler" - "Çift boşlukla nokta ekle" - "Boşluk çubuğuna iki kez dokunmak nokta ve ardından bir boşluk ekler" - "Otomatik büyük harf yap" - "Her cümlenin ilk harfini büyük harf yapar" - "Kişisel sözlük" - "Ana sözlük" - "Düzeltme önerilerini göster" - "Yazarken, önerilen kelimeleri görüntüle" - "Rahatsız edici kelimeleri engelle" - "Rahatsız edici olabilecek kelimeleri önermez" - "Otomatik düzelt" - Boşluk tuşu ve noktalama işaretleri yanlış yazılan kelimeleri otomatik düzeltir - "Kapalı" - "Ölçülü" - "Geniş ölçekte" - "Çok geniş ölçekte" - "Sonraki kelime önerileri" - "Öneride bulunurken önceki kelimeyi kullanır" - "Hareketle yazmayı etkinleştir" - "Kelime girmek için parmağınızı harflerin üzerinde kaydırın" - "Hareket izini göster" - "Dinamik kayan önizleme" - "Kelime öbeği hareketi" - "Hareketle girişte boşlukları, boşluk tuşuna kaydırarak girin" - "İngilizce (BK)" - "İngilizce (ABD)" - "İspanyolca (ABD)" - "Hingilizce" - "Sırpça (Latin alfabesi)" - %s (Geleneksel) - %s (Kompakt) - "Dil yok" - "Emoji" - "Ekle" - "Kaldır" - "Kaydet" - "Dil" - "Düzen" - "Tuşa basma titreşim süresi" - "Tuşa basma ses seviyesi" - "Tuşa uzun basma gecikmesi" - "Fiziksel klavye için emoji" - "Fiziksel Alt tuşu, emoji paletini gösterir" - "Varsayılan" - %s uygulamasına hoş geldiniz - "Hareketle Yazmayı içerir" - "Başlayın" - %s uygulamasını kurma - %s uygulamasını etkinleştirin - Lütfen \"%s\" uygulamasını Dil ve giriş ayarlarınızda işaretleyin. Bu, uygulamaya cihazınızda çalışma yetkisi verecektir. - "Ayarlarda etkinleştir" - %s uygulamasına geçin - Sonra, \"%s\" uygulamasını etkin metin giriş yönteminiz olarak seçin. - "Giriş yöntemini değiştir" - Tebrikler, artık hazırsın! - Artık %s ile tüm favori uygulamalarınızda yazabilirsiniz. - "Tamamlandı" - "Uygulama simgesini göster" - "Uygulama simgesini başlatıcıda gösterir" - "Ek sözlükler" - "Sözlük mevcut" - "Ayarlar" - "Sil" - Sürüm %1$s - "Kısayol:" - "Dil:" - Bir kelime yaz - "İsteğe bağlı kısayol" - "Kelimeyi düzenle" - "Tüm diller için" - "Diğer diller…" + + Kaydırarak yazma + + Metin düzeltme + + Gelişmiş + + Tema + + Girdi + + Ek tuşlar + Pano geçmişi + Düzeltmeler + + Boşluk + + Öneriler + Deneysel + Çeşitli - Sınır yok - Gizli modu zorla - Yeni sözcüklerin öğrenilmesini devre dışı bırak - Sayı satırı - Boşluk tuşuna uzun süre basmak, giriş yöntemi seçim menüsünü gösterecektir - LeanType yazım denetleyicisi ayarları - Klavye yükseklik ölçeği - Kadırarak silme - Tuş kenarlıkları - Otomatik gündüz/gece modu - LeanType yazım denetleyicisi - %sdak. - Öneriler + + Yapılandırma + + Görseller & Önizleme + + Davranış + + Gelişmiş Hareketler + + Dokunmatik yüzey + + Bölünmüş klavyeyi etkinleştir + + Bölünmüş klavyeyi etkinleştir (yatay) + + Bölünme mesafesi + + Diğer giriş yöntemlerine geç + + Dili değiştir + + Her ikisini de değiştir + + Dil değiştirme tuşu + + Dil değiştirme tuşu davranışı + Emoji tuşu - Pano geçmişini etkinleştir - Devre dışı bırakılırsa, pano tuşu varsa pano içeriğini yapıştıracaktır - Geçmiş saklama süresi - Her zaman sayı satırını göster - Diğer tuşlar - Tuş ipuçlarını göster - Uzun basma ipuçlarını göster - Boşluk tuşuyla giriş yöntemini değiştir - %s (Akkhor) - Bir kerede metnin daha büyük bölümlerini seçmek ve silmek için silme tuşundan hızlıca kaydırın - Görünüm sistem ayarlarını takip edecektir - LeanType ayarları - Giriş - Ek tuşlar - Noktalama işaretlerinden sonra otomatik boşluk - Yeni bir sözcük yazarken noktalama işaretlerinden sonra otomatik olarak boşluk ekle - Otomatik düzeltme güveni - "Giriş yöntemini seçin" - "Geri al" - "Yeniden yap" - Önerileri geliştirmek için kişilerden ve yazdığın verilerden bilgi edin - "Git" - "İleri" - "Geri" - "Bitti" - "Gönder" - "Arama" - "Dur" - "Bekle" - Uyarı: Bu ayarı devre dışı bırakmak öğrenilmiş verileri temizler + + %s ms + + %s min + + Sistem varsayılanı + + Sınırsız + + Kişi adlarını ara + + Öneriler ve düzeltmeler için Kişilerdeki adları kullan + + Uygulama adlarını ara + + Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan + + Kişiselleştirilmiş öneriler + + Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir + Kişisel sözlüğe kelime ekle + + Öğrenilen kelimeleri saklamak için cihazın kişisel sözlüğünü kullan + + Çift boşlukla nokta + + Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler + + Otomatik büyük harf + + Her cümlenin ilk kelimesini büyük harf yap + + Kişisel sözlük + Engellenen kelimeler + Önerilerden engellenen kelimeleri yönet + Bir kelimeyi engelle + Kelime zaten engellenmiş + Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? + + Ana sözlük + + Düzeltme önerilerini göster + + Yazarken önerilen kelimeleri göster + Her zaman önerileri göster - İkisini de değiştir - Yedekle - Yedekle ve geri yükle + + Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) + + Web düzenleme alanları için her zaman önerileri gösterme + + 'Her zaman önerileri göster' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) + + Potansiyel olarak saldırgan kelimeleri engelle + + Potansiyel olarak saldırgan kelimeleri önermeyin + + Otomatik düzeltme + + Boşluk çubuğu ve noktalama işaretleri yanlış yazılmış kelimeleri otomatik düzeltir + Otomatik düzeltme açık + Boşluk çubuğu ve noktalama + Sadece boşluk çubuğu + Sadece noktalama + + Daha fazla otomatik düzeltme + + Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar + + Otomatik düzeltme güven düzeyi + + Kısayolları otomatik düzeltme + + Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir + + Geri tuşu otomatik düzeltmeyi geri alır + + Kapalı + + Ilımlı + + Agresif + + Çok agresif + + Ortadaki öneriyi her zaman kullan + + Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. + + Sonraki kelime önerileri + + Öneri oluştururken önceki kelimeyi kullan + + Kişisel & öğrenilmiş kelimelere öncelik ver + + Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. + + Öğrenilen kelime güçlendirme seviyesi + + Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. + + Öğrenilen kelimeler için bağlam eşleşmesi gerekli + + Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner + + Anında otomatik boşluk + Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. + + + İlk kelime önerileri + + Cümlenin başında girdi yoksa önerileri göster + + Noktalama önerileri + + Başka öneri yoksa noktalama işaretlerini göster + + Pano içeriğini öner + + Son kopyalanan pano içeriğini öneri olarak göster + + Son ekran görüntülerini öner + + Son alınan ekran görüntülerini öneri olarak göster + + SMS'ten OTP'yi otomatik oku + + Gelen SMS'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster + + OTP önerisini kapat + + Önerilen ekran görüntülerini sıkıştır + + Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. + + Kaydırarak yazmayı etkinleştir + + Harflerin üzerinde kaydırarak bir kelime girin + + Kaydırma izini göster + + Kayan önizleme + + Kaydırırken önerilen kelimeyi göster + + Dinamik kayan önizleme + + Kaydırma sırasında önizlemeyi hareket ettir + + İfade kaydırma + + Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin + + Hızlı yazma bekleme süresi + + Her zaman anında başla + + Kaydırma izi görünme süresi + + Pano geçmişini etkinleştir + + Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır + + Geçmiş saklama süresi + + Sabitlenmiş öğeleri üstte göster + Sabitlenmiş öğeleri varsayılan olarak daralt + Pano temizleme simgesi + Pano temizleme düğmesi için simge stilini seçin + Çöp kutusu + Süpür / Hepsini temizle + Eğimli çizgiler + Çapraz çizgili pano taslağı + Klasik pano + Sabitlendi + + Panodaki öğeleri ara... + + Öğe bulunamadı + + Öğe silindi + + Sonuç bulunamadı + Tüm geçmişi temizlemek istediğinizden emin misiniz? + Tümünü temizle + + Kaydırarak silme + + Silme tuşundan kaydırma yaparak aynı anda daha büyük metin parçalarını seçip silebilirsiniz. + + Yedekleme ve geri yükleme + + Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır + Yedekleme hatası: %s - Yedeklemeyi yüklerken hata: %s - Dili değiştir + + Yedeği geri yüklerken hata: %s + + Yedek + Geri yükle + + Yedek geri yüklendi + + timestamp key için biçim + Çok dilli yazma - Kitaplığı yükle - Kitaplığı sil - Diller ve Düzenler - Daha fazla otomatik düzeltme - Öğrenilmiş kelimeleri depolamak için cihaz kişisel sözlüğünü kullan + + Sözlüğü bulunan diller + + Kaydırarak yazma kütüphanesini yükle + + Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın + + + Kaydırarak yazma yöntemi + Kaydırarak yazma için algoritma seçin + Yerel kütüphane (swypelib gerektirir) + Yedek motor (saf Java) + + Bu kütüphaneye \'%s\' için ihtiyacınız olacak. Uyumsuz kütüphaneler Kaydırarak yazma kullanılırken çökme yapabilir. + \n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen kütüphaneyi kullanın. + + Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? + + Kütüphaneyi yükle + + Kütüphaneyi sil + + Kütüphaneyi indir + + Kaydırma jest kütüphanesi indiriliyor… + + İndirme tamamlandı! Yeniden başlatılıyor… + + İndirme başarısız: %s + + El yazısı eklentisini yükle + El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın + Bir el yazısı eklentisi APK'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. + Eklenti APK'sını yükle + Eklentiyi sil + El yazısı eklentisi başarıyla içe aktarıldı + El yazısı eklentisi APK'sı yüklenemedi + El yazısı + İndirilen modeli sil + El yazısı modeli silindi + El yazısı eklentisi gerekli + Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. + Eklentiyi yükle + + Noktalama sonrası otomatik boşluk + + Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. + + Emoji sonrası otomatik boşluk + + Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. + + Bir öneri seçildikten sonra otomatik boşluk + + Kaydırarak yazmadan önce otomatik boşluk + + Kaydırarak yazdıktan sonra otomatik boşluk + + Shift'e basıldığında otomatik boşluk yok + + Shift bekleyen otomatik boşluğu kaldırır + + Noktalama öncesi boşluğu koru + + Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. + + Açılır pencerede diakritik işaretli daha fazla harf göster + + Klavye dillerinde tanımlı varyantları göster + + Çok yaygın varyantları ekle (varsayılan) + + Yaygın varyantları ekle + + Tüm kullanılabilir varyantları ekle + + URL algılama + + URL'leri ve benzerlerini tek bir kelime olarak algılamaya çalış + + Gizli modu zorunlu kıl + Dokunmatik yüzey + Metin düzenleme + Modu seç + Tam ekran dokunmatik yüzey + Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle + + Yeni kelimelerin öğrenilmesini devre dışı bırak + + Daha fazla tuş + + Diller & Düzenler + + Sayı satırı + + Sayı satırını her zaman göster + + Simgeler görünümünde sayı satırını göster + + Kompakt simgeler için sayı satırı + + Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir + Sayı satırını yerelleştir - Gölgeli - İçerik kopyalandı - Bilinmeyen kitaplık dosyası. Bunun güvenilir bir kaynaktan geldiğine ve \'%s\' için olduğuna emin misin? - Kayan önizleme - Kaydırırken önerilen kelimeyi gör - Hızlı yazma bekleme süresi - Bir hareket sırasında önizlemeyi taşı - Hareket izi ömrü - Bağlantı vb. tek kelime olarak tespit etmeye çalış + + Yerel rakamları Latin rakamlara tercih et + + Sayı satırında ipuçlarını göster + + Uygulamaya göre dili hatırla + + Tuş ipuçlarını göster + + Uzun basma ipuçlarını göster + + Açılır tuş sıralaması ve ipucu kaynağı + + İpucu kaynağını seç + + Açılır tuş sırasını seç + + Üst düzey alan adları (TLD) açılır tuşlarını göster + + URL ve e-posta adresleri yazarken nokta tuşunun açılırlarını üst düzey alan adlarıyla değiştir + Sayı satırı - Dil (öncelikli) + @string/subtype_locale + Dil (öncelik) Düzen Semboller + + Araç çubuğu modu + + Araç çubuğu tuşları ve öneriler + + Yalnızca araç çubuğu tuşları + + Yalnızca öneriler + + Gizli + + Pano ve emoji araç çubuklarını da gizle + Araç çubuğu tuşlarını seç + + @android:string/paste + @android:string/copy + @android:string/cut Pano Panoyu temizle - İşlevsel tuşlar + + Pano araması + + İndir + İndiriliyor… + İndirme başarısız oldu + Yüklendi + Ses girişi + @string/layout_numpad + Ayarlar + @android:string/selectAll + Kelimeyi seç + Tek elle modu + Kayan + Bölünmüş klavye + Tam sola + Tam sağa + Sayfa başı + Sayfa sonu + Sol + Sağ + Yukarı + Aşağı + Kelime sola + Kelime sağa + Sayfa yukarı + Sayfa aşağı + Geri al + Yinele + Pano geçmişini kapat + Emoji + + Metni düzelt + Metin düzeltme… + Metin düzeltildi + Metin düzeltme başarısız: %s + Düzeltilecek metin yok + Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. + Gemini API Anahtarı + Metin düzeltme için Google Gemini API anahtarınızı girin + API anahtarını girin + API Anahtarı Al + Gemini Modeli + Metin düzeltme için AI modelini seçin + API Anahtarını Test Et + API anahtarı geçerli! + API anahtarı testi başarısız: %s + API anahtarı test ediliyor… + Tüm ağ erişimini devre dışı bırak + Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. + Sistem Uygulama bilgilerini aç + İzinleri ve pil kullanımını Android ayarlarında yönetin + LeanType ayarlarında ağ erişimi devre dışı bırakıldı + Yapay Zeka Sağlayıcısı + Metin düzeltme için Yapay Zeka servisini seçin + Google Gemini + Araç çubuğunu ayır + Önerileri araç çubuğundan ayır + Araç çubuğu tuşlarını otomatik olarak genişlet + Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet + Araç çubuğunda indirme düğmesini göster + Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster + Groq + HF/OpenAI-uyumlu + API Jetonu + HuggingFace veya OpenAI-uyumlu API anahtarınızı girin + API Jetonu + Groq API anahtarınızı girin + API anahtarını girin + API anahtarını girin + Groq Anahtarını Al + API Belirteci Al + API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + Model + Groq modelini seçin + model-name + Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + API Uç Noktası + API uç nokta URL'si + https://api.groq.com/openai/v1/chat/completions + Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. + Güvensiz bağlantılara izin ver + HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. + Düzenler + Tema & Özel Arka Planlar + Sözlükler & Yazma Geçmişi + Pano Geçmişi + Genel Ayarlar + Dahil edilecek öğeleri seçin: + + https://generativelanguage.googleapis.com/v1beta/models?key=%1$s + https://api.groq.com/openai/v1/models + https://api.openai.com/v1/chat/completions + https://api.groq.com/openai/v1/chat/completions + Modeli hafızada tut + Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) + + Çevir + Çeviriliyor… + Metin çevrildi + Çeviri başarısız: %s + Çevrilecek metin yok + Çeviri hedef dili + Çevirmek istediğiniz dili seçin + Çeviri Modeli + Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. + + + + İngilizce + İspanyolca + Fransızca + Almanca + İtalyanca + Portekizce + Çince (Basitleştirilmiş) + Çince (Geleneksel) + Japonca + Korece + Arapça + Rusça + Hintçe + Bengalce + Endonezce + Flemenkçe + Türkçe + Lehçe + Ukraynaca + İsveççe + Danca + Norveççe + Fince + Yunanca + İbranice + Tayca + Vietnamca + Tamilce + Telugu + Marathi + Gujarati + Kannada + Malayalam + Urduca + Farsça (Farsi) + Svahili + Romence + Çekçe + Macarca + Filipince (Tagalog) + Malayca + Sırpça + Hırvatça + Bulgarca + Slovakça + Slovence + Litvanca + Letonca + Estonca + Katalanca + Baskça + + + + English + Spanish + French + German + Italian + Portuguese + Chinese (Simplified) + Chinese (Traditional) + Japanese + Korean + Arabic + Russian + Hindi + Bengali + Indonesian + Dutch + Turkish + Polish + Ukrainian + Swedish + Danish + Norwegian + Finnish + Greek + Hebrew + Thai + Vietnamese + Tamil + Telugu + Marathi + Gujarati + Kannada + Malayalam + Urdu + Persian (Farsi) + Swahili + Romanian + Czech + Hungarian + Filipino (Tagalog) + Malay + Serbian + Croatian + Bulgarian + Slovak + Slovenian + Lithuanian + Latvian + Estonian + Catalan + Basque + + + Pano araç çubuğu tuşlarını seç + + Sabitlenmiş araç çubuğu tuşlarını seçin + + Uzun basmada araç çubuğu tuşunu sabitleyin + + Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır + + Uzun basma ipucu noktalarını göster + + Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin + + İşlevsel ipuçlarını göster + + Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster + + Yinelenen açılırları kaldır + + Temel düzen üzerinde zaten bulunan açılır tuşları gizle + + Boşluk tuşuyla giriş yöntemini değiştir + + Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar + + Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç + + Tuş aralıklarını daralt + Daraltma seviyesi + En küçük + Küçük + Orta + Büyük + En büyük + + Klavye yüksekliği ölçeği + + Alt dolgu ölçeği + + Yan dolgu ölçeği + + Klavye yazı tipi ölçeği + + Emoji görünümü yazı tipi ölçeği + + Emoji tuş boyutunu yazı tipi boyutuna göre ölçeklendir + + Varsayılan emoji ten rengi + + Nötr + + Boşluk çubuğundaki özel metin + + Dosyadan özel yazı tipi ayarla + + Dosyadan özel emoji yazı tipi ayarla + + Sistem emoji yazı tipini kullan + + Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) + + İngilizce (UK) + + İngilizce (US) + + İspanyolca (US) + + Sırpça (Latin) + + Hinglish + + Mansi + + Kaitag + + Dagbani + + Sesotho + + Dargwa (Urakhi) + + Mari (Doğu) + + %1$s (%2$s) + + %s (Genişletilmiş) + + %s (Geleneksel) + + %s (Akkhor) + + %s (Probhat) + + %s (Baishakhi) + + %s (Khipro) + + %s (Kompakt) + + %s (Fonetik) + + %s (Sebeolsik 390) + + %s (Sebeolsik Final) + + %s (Öğrenci) + + Dil yok + + Emoji + + Ekle + + Kaldır + + Kaydet + + Yükle + + Dil + + Düzen + + Özel düzen ekle + + Uyumlu bir formatta dosya seçin. Formatlar hakkında bilgi %s adresinde mevcuttur. + + Dosya yükle + + Dosyaya kaydet + + Panoya kopyala + + Dosya okunamıyor + + Özel düzen %s gerçekten silinsin mi? + + Uyarı: düzen şu anda kullanılıyor + Özel düzen ekle + + Düzen hatası: %s + + Ham düzeni düzenlemek için dokun + + İkincil düzenler + Özel düzen 1 + Özel düzen 2 + Özel düzen 3 + Özel düzen 4 + Özel düzen 5 + + Fonksiyon tuşları + + Fonksiyon tuşları (büyük ekran) + + Fonksiyon tuşları (Khipro) + İşlevsel tuşlar (Semboller) + İşlevsel tuşlar (Daha fazla sembol) + + Semboller + Semboller (Arapça) + Daha fazla sembol + Telefon + Telefon sembolleri - Sayılar + + Rakamlar + Sayısal tuş takımı - Arka plan görseli ayarla + Sayısal tuş takımı (yatay) - Bir daha gösterme - %s (deneysel) - Siyah - Giriş başlarsa veya metin seçilirse araç çubuğunu göster - Araç çubuğunu otomatik gizle - Öneriler mevcut olduğunda araç çubuğunu gizle - Araç çubuğunu otomatik göster + + Sayı satırı + + Sayı satırı (temel) + + Emoji alt satırı + + Eylem tuşlu Emoji alt satırı + + Pano alt satırı + + Eylem tuşlu Pano alt satırı + + Arka plan görüntüsünü ayarla + + Arka plan görüntüsünü ayarla (yatay) + + Belirlenmemişse, portre görüntüsü kullanılacaktır. + Para birimlerini özelleştir - Yalnızca ana renkleri göster - Tüm renkleri göster - Ana ve en fazla 6 ikincil para birimi sembolünü boşlukla ayırarak ayarla - Anahtar boşluklarını daralt - Sayısal tuş takımı için sembol tuşuna uzun bas - Alt dolgu ölçeği - burada - Dil değiştirme tuşu davranışı - Yaygın varyantları ekle - Mevcut tüm varyantları ekle - %s düzeni silinsin mi? - Düzen hatası: %s + + Ana ve en fazla 6 ikincil para birimi simgesini boşlukla ayrılmış olarak ayarlayın + + Ana klavyeye şu işlemden sonra geç… + + Emoji görünümünde emoji seçme + + Pano geçmişi öğesi seçme + + Semboller görünümünde diğer tuşlardan sonra enter veya boşluk basıldığında + + Sayısal tuş takımında diğer tuşlardan sonra enter veya boşluğa basılması + + Gün veya gece modu için görüntü ayarlansın mı? + + Gün + Gece - Ham düzeni düzenlemek için dokun - Görsel gündüz veya gece modu için ayarlansın mı? - Gündüz - Kullanıcı tarafından eklenen \"%s\" sözlüğü kaldırılsın mı? - Holo Beyaz - Renkli gezinme çubuğu - Kullanıcı tanımlı - Boşluk çubuğu arka planı - Boşluk çubuğu metni - Hareketli giriş - Kullanıcı tarafından eklenen \"%1$s\" sözlüğü değiştirilsin mi? -\n -\nMevcut sözlük: -\n %2$s -\n -\nYeni sözlük: -\n%3$s - Bölünmüş mesafe - Giriş alanı tarafından açıkça talep edilmese bile otomatik düzeltme - Her zaman orta öneriyi kullan - Boşluk veya noktalama işaretine basıldığında ortadaki öneri girilecektir - Açılır pencerede aksanlı daha fazla harf göster - Klavye dillerinde tanımlanan varyantları göster - Latin sayıları yerine yerel olanı tercih et - Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir tane yaz. - Fark edilmeyebilecek özellikleri göster - cihaz korumalı depolama - Pano geçmişini kapat - Pano araç çubuğu tuşlarını seç - Bir tuşa uzun süre basmak ek işlevleri tetikliyorsa ipuçlarını göster - Özel düzen ekle - Semboller - Dil seç - %s (Genişletilmiş) - Uyumlu formatta bir dosya seç. Formatlarla ilgili bilgi %s mevcuttur. - Dosyayı yükle - Panoya kopyala - Yükle - Dosyaya kaydet + + Tuş basma titreşim süresi + + Tuş basma titreşim gücü + + Tuş basma ses düzeyi + + Tuş uzun basma gecikmesi + + Emoji sürümünü geçersiz kıl + + Fiziksel klavye için Emoji + + Fiziksel Alt tuşu emoji paletini gösterir + + Varsayılan + + "Hoş geldiniz, %s" + + Kaydırarak yazma ile + + Başla + + "%s'yi ayarlama" + + "%s'i etkinleştir" + + "Lütfen Diller & giriş ayarlarınızda \"%s\" öğesini işaretleyin. Bu, cihazınızda çalışmasına izin verecektir." + + Ayarlar'da etkinleştir + + "%s'e geç" + + "Sonra, aktif metin girişi yöntemi olarak \"%s\" öğesini seçin." + + Giriş yöntemlerini değiştir + + "Tebrikler, her şey hazır!" + + Artık tüm favori uygulamalarınızda %s ile yazabilirsiniz. + + Klavveyi yapılandır + + Tamamlandı + + Uygulama simgesini göster + + Başlatıcıda uygulama simgesini göster + + Ek sözlükler + Sözlükler - Klavyeyi yapılandır - Dosyadan sözlük ekle - Sıklık: - Renkler - Çikolata - Orman - Açık Mavi - Dinamik renkler - Mavi Gri - Kahverengi - Menekşe - Vurgu - Gizli özelliklerin açıklaması - ► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevsellik sağlar: <br> \n\t• panoya kopyala &#65515; yapıştır <br> \n\t• sola/sağa hareket et &#65515; kelime sola/sağa <br> \n\t• yukarı/aşağı hareket et &#65515; sayfa yukarı/aşağı <br> \n\t• kelime sola/sağa &#65515; satır başı/sonu <br> \n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> \n\t• kopyala &#65515; kes <br> \n\t• kelime seç &#8596; tümünü seç <br> \n\t• geri al &#8596; yinele <br> <br> \n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, onları öneri şeridine sabitler. <br> <br> \n► Virgül tuşuna uzun basarak Pano Görünümü, Emoji Görünümü, Tek El Modu, Ayarlar veya Dil Değiştir\'e erişebilirsin: <br> \n\t• Emoji Görünümü ve Dil Değiştir, ilgili tuşu etkinleştirdiysen kaybolur; <br> \n\t• Bazı düzenler için bu, Virgül tuşu değil, aynı konumdaki başka bir tuş olabilir (örneğin, Dvorak düzeninde bu tuş \'q\'dur). <br> <br> \n► Gizli mod etkinleştirildiğinde, hiçbir kelime öğrenilmeyecek ve son eklenen emojilere yeni bir emoji eklenmeyecektir. <br> <br> \n► Gizli mod simgesine basarak araç çubuğuna erişebilirsin. <br> <br> \n► Kaydırmalı tuş girişi: Shift tuşundan başka bir tuşa kaydırarak tek bir büyük harf yazabilirsin: <br> \n\t• Bu, ayrıca \'123\' tuşu için semboller klavyesinden tek bir sembol yazmak ve ilgili tuşlar için de çalışır. <br> <br> \n► Shift veya sembol tuşunu basılı tut, bir veya daha fazla tuşa bas ve ardından önceki klavyeye dönmek için Shift veya sembol tuşunu bırak. <br> <br> \n► Öneri şeridindeki bir öneriye uzun basarak daha fazla öneriyi ve bu öneriyi kaldırmak için bir silme düğmesini gösterir. <br> <br> \n► Bir öneriye yukarı kaydırarak daha fazla öneriyi aç ve seçmek için öneri üzerinde bırak. <br> <br> \n► Pano geçmişindeki bir girdiye uzun basarak onu sabitleyebilirsin (sabitlediğin sürece panoda kalır). <br> <br> \n► Pano görünümünde bir girdiyi kaldırmak için sola kaydır (sabitlediğin sürece hariç). <br> <br> \n► Metni seç ve büyük/küçük harflerini değiştirmek için Shift tuşuna bas. <br> <br> \n► Sözlükleri bir dosya gezgini ile açarak ekleyebilirsin: <br> \n\t• Bu yalnızca <i>content-uris</i> ile çalışır, <i>file-uris</i> ile çalışmaz, yani bazı dosya gezginlerinde çalışmayabilir. <br> <br> \n► Kök erişimiyle manuel yedekleme yapan kullanıcılar için: <br> \n\t• Android 7\'den başlayarak, paylaşılan tercih dosyası varsayılan konumda değildir, çünkü uygulama %s kullanmaktadır. Bu, cihaz kilitlenmeden önce, örneğin açılışta, ayarların okunabilmesi için gereklidir; <br> \n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumunda bulunur, ancak bu cihaz ve Android sürümüne bağlı olarak değişebilir. <br> <br> \n<i><b>Hata ayıklama modu / hata ayıklama APK\'sı</b></i> <br> <br> \n► Bir öneriye uzun basarak kaynak sözlüğü göster. <br> <br> \n► Hata ayıklama APK\'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsin, ancak bu yalnızca sözlükleri günlüğe dökmek için sınırlı fayda sağlar. <br> \n\t• Yayın APK\'sı için, <i>Hakkında</i> kısmındaki sürüme birkaç kez dokunman gerekir, ardından Gelişmiş Tercihler içinde hata ayıklama ayarlarını bulabilirsin. <br> \n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puan ve kaynak sözlük gösteren küçük sayılar olacaktır. <br> <br> \n► Bir uygulama çökmesi durumunda, Ayarları açtığında çökme günlüklerini isteyip istemediğin sorulacaktır. <br> <br> \n► Çok dilli yazım kullanırken, boşluk tuşu şu anda kullanılan dili belirlemek için kullanılan bir güven değerini gösterir. <br> <br> \n► Önerilerin üzerinde bazı iç puan ve kaynak sözlük gösteren küçük sayılar olacaktır (devre dışı bırakılabilir). - Dikey boşluk çubuğu kaydırma hareketi - Yok - İmleci taşı - Sayfa başlangıcı - Sayfa sonu - Sağ - Yukarı - Aşağı - Kaitag + Dahili ana sözlük - Sözlük dosyası yüklenirken hata oluştu - Bir kelime ekle + + "Dosyadan sözlük ekle" + + "Dil seç" + + "Kullanıcı tarafından eklenen \"%1$s\" sözlüğü gerçekten değiştirilsin mi?\n +Geçerli sözlük: +%2$s\n +Yeni sözlük: +%3$s" + + "Sözlüğü değiştir" + + "Kullanıcı tarafından eklenen sözlük \"%s\" gerçekten silinsin mi?" + + "Bir sözlük olmadan yalnızca daha önce girdiğiniz metinler için öneriler alırsınız.<br> + Sözlükleri %1$s indirebilirsiniz." + + "Bir daha gösterme" + + "Eklemek için bir sözlük seçin. .dict formatındaki sözlükleri %s üzerinden indirebilirsiniz." + + "buradan" + + "%s (deneysel)" + + "Hata: Seçilen dosya geçerli bir sözlük dosyası değil" + + "Hata: yazı sistemi bu klavye ile uyumlu değil" + + "Sözlük dosyası yüklenirken hata oluştu" + + Sözlük indirilebilir + + + Sil + + Sürüm %s + + Kısayol: + + Ağırlık: + + Dil: + + Bir kelime yazın + + İsteğe bağlı kısayol + + Kelimeyi düzenle + + Tüm diller için + + Daha fazla dil… + + Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir kelime girin. + + Kelime ekle + Bu sözlükteki tüm kelimeleri silmek istediğinizden emin misiniz? + + Stil + + Simge stili + + Yuvarlak + + Renkler + Renkler (gece) - Pembe - Kum - Rengi otomatik olarak seç - Kapat - Ayarları açmak için dile dokun - Hareketle yazma kitaplığını yükle - Hareketle yazmayı etkinleştirmek için yerel bir kitaplık sağla - \'%s\' için kütüphaneye ihtiyacın olacak. Hareketle yazma kullanılırken uyumsuz kitaplıklar çökebilir. -\n -\nUyarı: Harici kodun yüklenmesi güvenlik riski oluşturabilir. Yalnızca güvenilir bir kaynaktan gelen kitaplığı kullan. - Açılır tuş sırasını seç - İpucu kaynağını seç - Emoji - Sözlüğü değiştir - Sürüm - GitHub\'da görüntüle - Öneri şeridi metni - Hakkında - Günlüğü kaydet - Açık kaynak lisansı - GNU Genel Kamu Lisansı v3.0 - Tuş arka planı - Yakın zamanda kopyalanan pano içeriğini öneri olarak göster - Pano içeriğini öner - Ses girişi - Yatay boşluk çubuğu kaydırma hareketi - Sağdan sola klavye alt türü seçildiğinde yönü ters çevir - Değişken araç çubuğu yönü - Dosya okunamıyor + + Tuş kenarlıkları + + Otomatik gündüz/gece modu + + Görünüm sistem ayarlarını takip edecek + + Gezinme çubuğu rengini ayarla + Açık - Yuvarlatılmış - %s (Probhat) - Sol - Sayfa yukarı - Kelime sola - Kelime sağa - Kelime seç - Tek el modu - Tam sol - Tam sağ - Sayfa aşağı - Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma işlemlerini devre dışı bırakacaktır - İşlevsel ipuçlarını göster - Sabitlenmiş araç çubuğu tuşlarını seç - Uzun basıldığında araç çubuğu tuşunu sabitle - %s (Sebeolsik 390) - %s (Sebeolsik Final) - Stil + + Holo Beyaz + Koyu - Sonrasında ana klavyeye geç… - Sembol görünümünde diğer tuşlardan sonra enter veya boşluk tuşuna basma - Emoji görünümünde emojiyi seçme - Pano geçmişi girişini seçme + Daha koyu - Yaygın varyantları ekle (varsayılan) - Temel düzende zaten bulunan açılır tuşları gizle - Araç çubuğu - Gereksiz açılır pencereleri kaldır - Sayısal tuş takımını aç kapa - %s (Öğrenci) - Eklemek için bir sözlük seç .dict biçimindeki sözlükler %s indirilebilir. - Hata: Seçilen dosya geçerli bir sözlük dosyası değil - Hata: komut dosyası bu klavyeyle uyumlu değil + + Siyah + + Dinamik renkler + + Mavi-gri + + Kahverengi + + Çikolata + + Bulutlu + + Orman + + İndigo + + Nane ve Pembe + + Pembe + + Kum + + Eflatun + + Kullanıcı Tanımlı + + LeanBitLab Açık + + LeanBitLab Koyu + + + Rengi otomatik seç + + Sadece ana renkleri göster + Daha fazla renk göster - Bu ayar dahili olarak kullanılan tüm renkleri ortaya çıkarır. Renk listesi herhangi bir zamanda değişebilir. Varsayılan renk rastgeledir ve adlar çevrilmeyecektir. + + Tüm renkleri göster + + Bu ayar, dahili olarak kullanılan tüm renkleri açığa çıkarır. Renk listesi her an değişebilir. Varsayılan, normal renklerden türetilir ve adlar çevrilmeyecektir. + Klavye arka planı - İşlevsel tuş arka planı + Tuş metni + Tuş ipucu metni - Her zaman anında başla - Mansi - Bağlantı tespiti - Diğer uygulamaların önerileri devre dışı bırakma isteklerini göz ardı et (sorunlara neden olabilir) + + Öneri şeridi metni + + Tuş arka planı + + İşlev tuşu arka planı + + Boşluk çubuğu arka planı + + Boşluk çubuğu metni + + Vurgu + + Kaydırarak yazma + + "Renkleri %s bölümünde bulabilir ve paylaşabilirsiniz." + + "Düzenleri %s bölümünde bulabilir ve paylaşabilirsiniz." + + "tartışma bölümü" + + Hakkında + + Sürüm + + GitHub'da Görüntüle + + Projeyi destekle + + LeanType geliştirilmesini destekleyin + + Bu projeyi destekleyin + Bu proje tamamen topluluk tarafından yürütülüyor ve geliştirmeyi sürdürebilmek için bağışlara dayanıyor. Bu klavyeyi yararlı buluyorsanız lütfen desteklemeyi düşünün! + Bir daha gösterme + Destekle + Şimdi değil + + FEATURES.md'ye git + + Ana özelliklerin listesi ve klavye kılavuzu + + + Kütüphaneler + Kaydırarak yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. + Kaydırarak yazma Kütüphanesi + Ana Sözlükler + Emoji Kütüphaneleri + El Yazısı Girişi Eklentisi + Sözlük Yükleme Kılavuzu + Yeni bir sözlük eklemek için:\n1. Diliniz için bir .dict dosyası edinin.\n2. \"Sözlükleri Yönet\" öğesine dokunun.\n3. Artı (+) düğmesini kullanarak dosyayı içe aktarın. + Etkin + Yüklü değil + + Günlüğü kaydet + + Açık kaynak lisansı + + GNU General Public License v3.0 + + Kapat + + Ayarları açmak için dile dokunun + + Giriş yöntemini seçin + Doğrudan geçiş hedefi (IME) + Özel tuş kodu seçeneği kullanıldığında doğrudan geçilecek giriş yöntemi + Yok + Uygulama dili + Ayarlar ekranı ve klavye arayüzünün dilini değiştirin + Sistem varsayılanı + Görünüm - Kaydet yada dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır - "Sözlük olmadan yalnızca daha önce girdiğin metin için öneriler alırsın.<br> -\n %1$s sözlüklerini indirebilir veya \"%2$s\" için bir sözlüğün doğrudan %3$s indirilip indirilemeyeceğini kontrol edebilirsin." - Sayı satırı - Simge stili - Boşluk çubuğu özel metni - Emoji alt satırı - Pano alt satırı - Giriș + + Araç çubuğu + Yapay Zeka entegrasyonu + Özel Yapay Zeka tuşları + Numaralandırılmış araç çubuğu tuşlarını kendi istemlerinizle özelleştirin + + Gizli özelliklerin açıklaması + + Gözden kaçabilecek özellikleri göster + + cihaz korumalı depolama + + ► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevler sağlar: <br> +\n\t• pano &#65515; yapıştır <br> +\n\t• sola/sağa taşı &#65515; sözcük sola/sağa <br> +\n\t• yukarı/aşağı taşı &#65515; sayfa yukarı/aşağı <br> +\n\t• sözcük sola/sağa &#65515; satır başı/sonu <br> +\n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> +\n\t• kopyala &#65515; kes <br> +\n\t• sözcük seç &#8596; tümünü seç <br> +\n\t• geri al &#8596; yinele <br> <br> +\n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, bunları öneri şeridine sabitler. <br> <br> +\n► Pano Görünümü, Emoji Görünümü, Tek Elle Mod, Ayarlar veya Dil Değiştirme'ye erişmek için Virgül tuşuna uzun basın: <br> +\n\t• İlgili tuş etkinse Emoji Görünümü ve Dil Değiştirme kaybolur; <br> +\n\t• Bazı düzenlerde bu, Virgül\\\'ün tuşu değil, aynı konumdaki tuştur (ör. Dvorak\\\'ta \\\'q\\\' kullanılır). <br> <br> +\n► Gizli mod etkinleştirildiğinde hiçbir sözcük öğrenilmez ve son kullanılanlara emoji eklenmez. <br> <br> +\n► Araç çubuğuna erişmek için Gizli mod simgesine basın. <br> <br> +\n► Kaydırmalı tuş girişi: Tek bir büyük harf yazmak için Shift tuşundan başka bir tuşa kaydırın: <br> +\n\t• Bu, semboller klavyesinden tek bir sembol yazmak üzere \\\'?123\\\' tuşu ve ilgili tuşlar için de geçerlidir. <br> <br> +\n► Önceki klavyeye dönmek için Shift veya sembol tuşunu basılı tutun, bir ya da daha fazla tuşa basın ve ardından Shift veya sembol tuşunu bırakın. <br> <br> +\n► Daha fazla öneriyi ve bu öneriyi kaldırmak için silme düğmesini göstermek üzere öneri şeridindeki bir öneriye uzun basın. <br> <br> +\n► Daha fazla öneriyi açmak için bir öneriden yukarı kaydırın ve onu seçmek için önerinin üzerinde bırakın. <br> <br> +\n► Pano geçmişindeki bir girişi sabitlemek için ona uzun basın (sabitlemeyi kaldırana kadar panoda tutulur). <br> <br> +\n► Pano\\\'da bir girdiyi kaldırmak için sola kaydırın (sabitlenmiş değilse). <br> <br> +\n► Metni seçin ve sözcükleri BÜYÜK HARF, küçük harf ve Baş Harfleri Büyük arasında değiştirmek için Shift tuşuna basın. <br> <br> +\n► Bir dosya gezgininde açarak sözlük ekleyebilirsiniz: <br> +\n\t• Bu yalnızca <i>content-uris</i> ile çalışır; <i>file-uris</i> ile çalışmaz. Bu nedenle bazı dosya gezginlerinde çalışmayabilir. <br> <br> +\n► Kök erişimiyle elle yedekleme yapan kullanıcılar için: <br> +\n\t• Android 7'den itibaren uygulama %s kullandığından, paylaşılan tercihler dosyası varsayılan konumda değildir. Bu, ayarların cihaz kilidi açılmadan önce, örneğin açılışta, okunabilmesi için gereklidir; <br> +\n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumundadır; ancak bu, cihaza ve Android sürümüne bağlı olabilir. <br> <br> +\n<i><b>Hata ayıklama modu / hata ayıklama APK'sı</b></i> <br> <br> +\n► Kaynak sözlüğü göstermek için bir öneriye uzun basın. <br> <br> +\n► Hata ayıklama APK'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsiniz; ancak günlük dosyasına sözlük dökme dışında faydası sınırlıdır. <br> +\n\t• Yayın APK'sında, <i>Hakkında</i> bölümündeki sürüme birkaç kez dokunmanız gerekir; ardından <i>Gelişmiş Tercihler</i> içindeki hata ayıklama ayarlarını bulabilirsiniz. <br> +\n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür. <br> <br> +\n► Uygulama çökerse, Ayarlar uygulamasını açtığınızda çökme günlüklerini isteyip istemediğiniz sorulur. <br> <br> +\n► Çok dilli yazma kullanılırken boşluk çubuğunda, geçerli kullanılan dili belirlemek için kullanılan bir güven değeri gösterilir. <br> <br> +\n► Önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür (devre dışı bırakılabilir). + Önerileri iyileştirmek için iletişimlerinizden ve yazdığınız verilerden öğrenin + + Git + + İleri + + Önceki + + Bitti + + Gönder + + Ara + + Duraklat + + Bekleyin + + Giriş + Sekme + Sil - Boşluk - Geçersiz ad - Sayı satırı (temel) - Emoji görüntüleme boyutu - Araç çubuğunu göster/gizle - Rahatsız etme kipinde titret - Emoji boyutunu yazı tipi boyutuna göre ölçeklendir - İkincil düzenler - Caps lock - Bir sözcük yazmadan önce otomatik boşluk ekle + Shift - Uygulama adlarında ara - Öneriler ve düzeltmeler için yüklü uygulamaların adlarını kullan - Araç çubuğu kipi - Sayı satırında ipuçlarını göster - Bölünmüş klavye - Varsayılan emoji cilt tonu - Doğal + + Shift (etkin) + + Büyük harf kilidi + Boşluk (sayı düzeni) - Etkin kısayolları otomatik düzeltme ile genişlet - Shift basarken otomatik boşluk ekleme - Yalnızca araç çubuğu tuşları - Yalnızca öneriler - Gizli - Pano ve emoji araç çubuklarını da gizle - Klavye yazı tipi boyutu - Dosyadan özel yazı tipi seç - Emoji sürümünü geçersiz kıl - Zaman damgası anahtarı için biçim - Bir sözcük yazma hareketinden sonra otomatik boşluk ekle - Uzun basmada emoji açıklamasını göster - Bir öneri seçildikten sonra otomatik boşluk ekle - %1$s (%2$s) - Emoji öner - Normal önerilerde emoji sözlüğünü kullanın - Yatay - Web düzenleme alanları için her zaman öneriler gösterme - Web düzenleme alanları (çoğunlukla tarayıcılarda bulunur), her zaman önerileri göster ayarıyla ilgili sorunların çok yaygın bir nedenidir - Kısayolları otomatik düzelt - Sil tuşu otomatik düzeltmeyi geri alır - Noktalama önerileri - Başka öneri bulunamadığında noktalama işaretlerini göster - Yedekleme geri yüklendi - Sözlükleri olan diller - Büyük harf tuşu, bekleyen otomatik boşluğu kaldırır - Açılır pencere tuş sırası ve ipuçları kaynağı - URL\'leri ve e-posta adreslerini yazarken nokta tuşunun açılır pencerelerini üst düzey alan adlarıyla değiştirin - Araç çubuğu tuşları ve öneriler - Yan dolgu ölçeği - Dagbani - Sotho dili - Uyarı: düzen şu anda kullanımda - İşlev tuşları (büyük ekran) - Arka plan resmi ayarla (yatay) - Ayar yapılmazsa, dikey resim kullanılacaktır - Sayısal tuş takımındaki diğer tuşlardan sonra Enter veya boşluk tuşuna basmak - %s içinde renkleri bulabilir ve paylaşabilirsiniz. - %s içinde düzenleri bulabilir ve paylaşabilirsiniz. - tartışma bölümü - Wiki\'ye git - Wiki, herhangi bir GitHub kullanıcısı tarafından geliştirilebilir! - Tek elle modunu sonlandır - Tek elle kullanım modunu yeniden boyutlandır + + Tek elle modu sonlandır + + Tek elle modu yeniden boyutlandır + + Tek elle kullanım tarafını değiştir + Ses girişi devre dışı + + Araç çubuğunu göster / gizle + + @string/show_language_switch_key + + Sıfır genişlikli birleştirici + + Sıfır genişlikli birleştirmeyen + Çöp kutusu + + Yatay boşluk tuşu kaydırma hareketi + + Dikey boşluk tuşu kaydırma hareketi + + Hiçbiri + + İmleci taşı + + Sayısal tuş takımını aç/kapat + Klavyeyi gizle + + Dokunmatik yüzey modu + Dokunmatik yüzey hassasiyeti + Otomatik büyük harf kullanımını zorla + Parolalar hariç tüm metin alanlarında cümle başı büyük harfi zorla + + Değişken araç çubuğu yönü + + Sağdan sola yazan bir klavye alt türü seçildiğinde yönü ters çevir + + Sadece fiziksel klavye bağlıyken araç çubuğunu göster + + Sistem ayarlarında sanal klavyeyi göstermeyi ayrıca etkinleştirmeniz gerekir + Dil değiştirme kaydırma mesafesi - Araç çubuğu tuş kodlarını özelleştirin - Tüm özelleştirilmiş anahtar kodlarını gerçekten silmek istiyor musunuz? - Anahtar kodu + + Araç çubuğu tuş kodlarını özelleştir + + Tüm özelleştirilmiş tuş kodları gerçekten silinsin mi? + + Tuş kodu + Uzun basma kodu - Simgeleri özelleştirin - Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak mı istiyorsunuz? - %s\'yi gerçekten silmek istiyor musunuz? + + Araç çubuğunu otomatik göster + Açıldığında araç çubuğunu otomatik göster + Metin seçildiğinde araç çubuğunu otomatik göster + + Klavye açıldığında araç çubuğunu göster + Metin seçildiğinde araç çubuğunu göster + + Araç çubuğunu otomatik gizle + + Öneriler kullanılabilir olduğunda araç çubuğunu gizle + + Aşağı kaydırarak kapat + + Klavyeyi gizlemek için araç çubuğunu aşağı kaydırın + + Sabitlenmiş tuşları otomatik gizle + + Araç çubuğu genişletildiğinde sabitlenmiş tuşları gizle + Araç çubuğu durumunu hatırla + Araç çubuğunu oturumlar arasında ve yazarken genişletilmiş ya da daraltılmış halde tutar + + Dil seçiciyi kapat + + İçerik kopyalandı + + Simgeleri özelleştir + + Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak istiyor musunuz? + + Gerçekten %s silinsin mi? + + Geçersiz ad + Özel alt tür - Bölünmüş klavyeyi etkinleştir (yatay) - TLD açılır pencere tuşlarını göster - Dargwa (Urakhi) - %s (Baishakhi) - %s (Fonetik) - Tek elle kullanım tarafını değiştir - Sıfır genişlikli bağlantı elemanı - Satır içi emoji araması - Yalnızca sözcüğün önünde iki nokta üst üste varsa emoji öner - Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. %s\'den .dict biçimindeki sözlükler indirilebilir. - İğnelenmiş öğeleri üstte göster - Her uygulama için dili hatırla - Mari (Doğu) - Shift (kaydırılmış) + + Yatay + Çevrimdışı Model + Yerel LLM'yi yönet + Çevrimdışı Yapay Zeka Maksimum Token Sayısı + Oluşturulan düzeltmenin maksimum uzunluğu + Özel… + Özel (%1$d token) + Sıcaklık + Rastgeleliği kontrol eder: daha düşük değerler daha odaklı ve öngörülebilir sonuçlar üretir + Top-P (Çekirdek Örnekleme) + Kelime çeşitliliğini kontrol eder: daha düşük değerler daha az olası seçenekleri eler + Top-K + Seçimleri en olası K token ile sınırlar + Min-P + En olası token'a göreli minimum olasılık eşiği + Düşünme sürecini göster + Model üretirse akıl yürütme sürecini ve içsel düşünme token'larını göster + + + Ultra Hızlı (12 token) + Hızlı (20 token) + Dengeli (32 token) + Doğru (64 token) + Derin (128 token) + + + 12 + 20 + 32 + 64 + 128 + + + Bu uygulama resim yapıştırmayı desteklemiyor + Emoji geçmişini temizle + Son kullandığınız emojileri silmek istediğinizden emin misiniz? + Klavye taşımak için sürükleyin + Klavye boyutunu değiştirmek için sürükleyin + Yüzen klavyeyi açık tut + Girdi tamamlandığında yüzen klavyeyi gizleme + + Metin düzenleme modunu koru + Girdi tamamlandığında metin düzenleme modundan çıkma + Çok kelimeli önerileri devre dışı bırak + Birden çok birleşik kelimeden oluşan önerileri engelle (Türkçe için önerilir) + + + Yükselt + Güncelleme var + Sözlük Deposu + Sözlükleri tarayıcınızda doğrudan göz atın veya indirin From 4424315781dc276274f4ad995fcbdc29171575d7 Mon Sep 17 00:00:00 2001 From: AZADAYAZ <95386329+AZADAYAZ@users.noreply.github.com> Date: Thu, 30 Jul 2026 04:14:58 +0300 Subject: [PATCH 04/15] Update strings.xml Co-authored-by: LeanBitLab <245915690+LeanBitLab@users.noreply.github.com> From 223f3ec3e34eda91b37ffeff6e313ac1319b1b6d Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 01:40:22 +0000 Subject: [PATCH 05/15] Fix edge key popup: use hitbox bounds in squaredDistanceToEdge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Edge keys (leftmost and rightmost column keys like 1, Q, A and 0, Ü, İ) have their touch hitbox extended via markAsLeftEdge() and markAsRightEdge() to respond to touches near the screen edges. However, squaredDistanceToEdge() was using the visual bounds (getX(), mWidth, getY(), mHeight) instead of the extended hitbox (mHitBox) for distance calculations. This caused a mismatch: isOnKey() correctly recognized touches in the extended hitbox area, but squaredDistanceToEdge() calculated a large distance from the visual edge, making the pointer tracker think the finger had left the key. As a result, key preview popups never appeared on edge keys during normal tapping, and long-press popup panels could not detect finger position on the extended area. This change makes squaredDistanceToEdge() use mHitBox bounds consistently, fixing popup behavior for edge keys while preserving existing behavior for interior keys where hitbox equals visual bounds. Fixes: #292 --- .../main/java/helium314/keyboard/keyboard/Key.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/keyboard/Key.java b/app/src/main/java/helium314/keyboard/keyboard/Key.java index e8cd1f274..f9e42b764 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/Key.java +++ b/app/src/main/java/helium314/keyboard/keyboard/Key.java @@ -955,13 +955,14 @@ public boolean isOnKey(final int x, final int y) { * @param x the x-coordinate of the point * @param y the y-coordinate of the point * @return the square of the distance of the point from the nearest edge of the - * key + * key (using the hitbox, which may be larger than the visual bounds + * for edge keys) */ public int squaredDistanceToEdge(final int x, final int y) { - final int left = getX(); - final int right = left + mWidth; - final int top = getY(); - final int bottom = top + mHeight; + final int left = mHitBox.left; + final int right = mHitBox.right - 1; + final int top = mHitBox.top; + final int bottom = mHitBox.bottom - 1; final int edgeX = x < left ? left : Math.min(x, right); final int edgeY = y < top ? top : Math.min(y, bottom); final int dx = x - edgeX; From 591cb8f5837bcb994cd4488ecfbb3becb3bb89db Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 01:58:26 +0000 Subject: [PATCH 06/15] Fix CI build: remove duplicate string entries in values-tr/strings.xml After merge conflict resolution, 32 string entries were duplicated (pinned_toolbar_keys, quick_pin_toolbar_keys, show_popup_keys_main, etc.). This caused Resource and asset merger to fail with: 'Found item String/pinned_toolbar_keys more than one time' Remove the duplicates, keeping the first occurrence of each key. --- app/src/main/res/values-tr/strings.xml | 32 -------------------------- 1 file changed, 32 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e134030d9..8bfa7c1bf 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -673,8 +673,6 @@ Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin İşlevsel ipuçlarını göster -Sabitlenmiş araç çubuğu tuşlarını seç -Uzun basıldığında araç çubuğu tuşunu sabitle %s (Sebeolsik 390) %s (Sebeolsik Final) Stil @@ -684,7 +682,6 @@ Emoji görünümünde emojiyi seçme Pano geçmişi girişini seçme Daha koyu -Yaygın varyantları ekle (varsayılan) Temel düzende zaten bulunan açılır tuşları gizle Araç çubuğu Gereksiz açılır pencereleri kaldır @@ -700,10 +697,7 @@ Tuş metni Tuş ipucu metni Mansi -Bağlantı tespiti -Diğer uygulamaların önerileri devre dışı bırakma isteklerini göz ardı et (sorunlara neden olabilir) Görünüm -Kaydet yada dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır "Sözlük olmadan yalnızca daha önce girdiğin metin için öneriler alırsın.<br> \n %1$s sözlüklerini indirebilir veya \"%2$s\" için bir sözlüğün doğrudan %3$s indirilip indirilemeyeceğini kontrol edebilirsin." Sayı satırı @@ -718,44 +712,18 @@ Sayı satırı (temel) Emoji görüntüleme boyutu Araç çubuğunu göster/gizle -Rahatsız etme kipinde titret Emoji boyutunu yazı tipi boyutuna göre ölçeklendir İkincil düzenler Caps lock -Hareketle sözcük yazmadan önce otomatik boşluk ekle Shift -Uygulama adlarında ara -Öneriler ve düzeltmeler için yüklü uygulamaların adlarını kullan -Araç çubuğu kipi Varsayılan emoji cilt tonu Doğal Boşluk (sayı düzeni) -Etkin kısayolları otomatik düzeltme ile genişlet -Shift basarken otomatik boşluk ekleme -Yalnızca araç çubuğu tuşları -Yalnızca öneriler -Gizli Klavye yazı tipi boyutu Dosyadan özel yazı tipi seç Emoji sürümünü geçersiz kıl -Zaman damgası anahtarı için biçim -Hareketle sözcük yazdıktan sonra otomatik boşluk ekle -Bir öneri seçildikten sonra otomatik boşluk ekle %1$s (%2$s) -Emoji öner -Normal önerilerde emoji sözlüğünü kullanın Yatay -Web düzenleme alanları için her zaman öneriler gösterme -Web düzenleme alanları (çoğunlukla tarayıcılarda bulunur), her zaman önerileri göster ayarıyla ilgili sorunların çok yaygın bir nedenidir -Kısayolları otomatik düzelt -Sil tuşu otomatik düzeltmeyi geri alır -Başka öneri bulunamadığında noktalama işaretlerini göster -Yedekleme geri yüklendi -Sözlükleri olan diller -Büyük harf tuşu, bekleyen otomatik boşluğu kaldırır -Açılır pencere tuş sırası ve ipuçları kaynağı -URL\'leri ve e-posta adreslerini yazarken nokta tuşunun açılır pencerelerini üst düzey alan adlarıyla değiştirin -Araç çubuğu tuşları ve öneriler From 3dbc19a83f930274df623d0186cd197ee1182d05 Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 02:07:56 +0000 Subject: [PATCH 07/15] Fix Android build: escape single quotes in Turkish string resources In Android XML string resources, single quotes must be escaped as \'. Unescaped single quotes cause 'Invalid unicode escape sequence' errors during AAPT2 compilation. This fixes the CI build error for PR #391. --- app/src/main/res/values-tr/strings.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8bfa7c1bf..53b92c1ea 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -25,7 +25,7 @@ Satır içi emoji araması - Bir kelimenin önünde ':' varsa yalnızca emojileri öner + Bir kelimenin önünde \':\' varsa yalnızca emojileri öner Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. @@ -138,7 +138,7 @@ Web düzenleme alanları için her zaman önerileri gösterme - 'Her zaman önerileri göster' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) + \'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) Potansiyel olarak saldırgan kelimeleri engelle @@ -212,9 +212,9 @@ Son alınan ekran görüntülerini öneri olarak göster - SMS'ten OTP'yi otomatik oku + SMS\'ten OTP\'yi otomatik oku - Gelen SMS'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster + Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster OTP önerisini kapat @@ -326,11 +326,11 @@ El yazısı eklentisini yükle El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın - Bir el yazısı eklentisi APK'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. - Eklenti APK'sını yükle + Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. + Eklenti APK\'sını yükle Eklentiyi sil El yazısı eklentisi başarıyla içe aktarıldı - El yazısı eklentisi APK'sı yüklenemedi + El yazısı eklentisi APK\'sı yüklenemedi El yazısı İndirilen modeli sil El yazısı modeli silindi @@ -352,7 +352,7 @@ Kaydırarak yazdıktan sonra otomatik boşluk - Shift'e basıldığında otomatik boşluk yok + Shift\'e basıldığında otomatik boşluk yok Shift bekleyen otomatik boşluğu kaldırır @@ -372,7 +372,7 @@ URL algılama - URL'leri ve benzerlerini tek bir kelime olarak algılamaya çalış + URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış Gizli modu zorunlu kıl Dokunmatik yüzey @@ -522,7 +522,7 @@ model-name Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. API Uç Noktası - API uç nokta URL'si + API uç nokta URL\'si https://api.groq.com/openai/v1/chat/completions Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. Güvensiz bağlantılara izin ver From 1252300a116752e7f0b21d4d28a8eb7fbe553965 Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 17:21:20 +0000 Subject: [PATCH 08/15] Fix deficiencies in PR 379, add missing strings from upstream, and translate Turkish comments to English --- .../keyboard/latin/RichInputConnection.java | 12 +- app/src/main/res/values-tr/strings.xml | 1466 ++++++++--------- 2 files changed, 719 insertions(+), 759 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java index 65bf6906c..ccc955380 100644 --- a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java +++ b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java @@ -278,7 +278,7 @@ public void commitCodePoint(final int codePoint) { } public void commitText(final CharSequence text, final int newCursorPosition) { - // --- EKLENEN KARA LİSTE KONTROLÜ --- + // --- ADDED BLACKLIST CONTROL --- if (text != null && isWordBlocked(text.toString())) { mComposingText.setLength(0); if (isConnected()) { @@ -651,7 +651,7 @@ public boolean setComposingTextWithBackgroundColor(final CharSequence newComposi } public boolean setComposingText(final CharSequence text, final int newCursorPosition) { - // --- EKLENEN KARA LİSTE KONTROLÜ --- + // --- ADDED BLACKLIST CONTROL --- if (text != null && isWordBlocked(text.toString())) { mComposingText.setLength(0); if (isConnected()) { @@ -1059,17 +1059,17 @@ public boolean requestCursorUpdates(final boolean enableMonitor, final boolean r return mIC.requestCursorUpdates(cursorUpdateMode); } - // --- EKLENEN KARA LİSTE KONTROLÜ İÇİN YARDIMCI METOD --- + // --- HELPER METHOD FOR ADDED BLACKLIST CONTROL --- /** - * DİKKAT: Bu metodu LeanType'ın asıl kara liste mantığına bağlaman gerekiyor. - * Şimdilik örnek olarak false döndürüyor. + * NOTE: You need to connect this method to LeanType's actual blacklist logic. + * For now, it returns false as an example. */ private boolean isWordBlocked(String text) { if (TextUtils.isEmpty(text)) return false; String normalizedWord = text.trim().toLowerCase(); - // Örnek kullanım: + // Example usage: // return BlacklistManager.getInstance().isBlocked(normalizedWord); return false; diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 53b92c1ea..4297a1205 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,793 +1,753 @@ - - + - - LeanType Yazım Denetleyici - LeanType - - LeanType Ayarları - - LeanType Yazım Denetleyici Ayarları - - Tuşa basıldığında titreşim - - Rahatsız etme modunda titreşim - - Tuşa basıldığında ses - - Emoji önerileri - - Normal önerilerde emoji sözlüğünü kullan - - Satır içi emoji araması - - Bir kelimenin önünde \':\' varsa yalnızca emojileri öner - - Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. - - Uzun basmada emoji açıklamasını göster - - Tuşa basıldığında açılır pencere - - Tercihler - - Kaydırarak yazma - - Metin düzeltme - - Gelişmiş - - Tema - - Girdi - - Ek tuşlar - - Pano geçmişi - - Düzeltmeler - - Boşluk - - Öneriler - - Deneysel - - Çeşitli - - Yapılandırma - - Görseller & Önizleme - - Davranış - - Gelişmiş Hareketler - - Dokunmatik yüzey - - Bölünmüş klavyeyi etkinleştir - - Bölünmüş klavyeyi etkinleştir (yatay) - - Bölünme mesafesi - - Diğer giriş yöntemlerine geç - - Dili değiştir - - Her ikisini de değiştir - - Dil değiştirme tuşu - - Dil değiştirme tuşu davranışı - - Emoji tuşu - %s ms - %s min - - Sistem varsayılanı - - Sınırsız - - Kişi adlarını ara - - Öneriler ve düzeltmeler için Kişilerdeki adları kullan - - Uygulama adlarını ara - - Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan - - Kişiselleştirilmiş öneriler - - Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir - + FEATURES.md\'ye git + Ana özelliklerin listesi ve klavye kılavuzu + GitHub\'da Görüntüle + Projeyi destekle + LeanType geliştirilmesini destekleyin + Hiçbiri + Ekle + Bir kelimeyi engelle + Özel düzen ekle + Eklemek için bir sözlük seç .dict biçimindeki sözlükler %s indirilebilir. + "Dosyadan sözlük ekle" Kişisel sözlüğe kelime ekle - Öğrenilen kelimeleri saklamak için cihazın kişisel sözlüğünü kullan - - Çift boşlukla nokta - - Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler - + Pano geçmişi girişini seçme + Emoji görünümünde emojiyi seçme + Sayısal tuş takımında diğer tuşlardan sonra enter veya boşluğa basılması + Sembol görünümünde diğer tuşlardan sonra enter veya boşluk tuşuna basma + HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. + Güvensiz bağlantılara izin ver + Google Gemini + Groq + HF/OpenAI-uyumlu + Metin düzeltme için Yapay Zeka servisini seçin + Yapay Zeka Sağlayıcısı + Tüm renkleri göster + Bu ayar dahili olarak kullanılan tüm renkleri ortaya çıkarır. Renk listesi herhangi bir zamanda değişebilir. Varsayılan renk rastgeledir ve adlar çevrilmeyecektir. + LeanType Yazım Denetleyici Ayarları + Ayarlar ekranı ve klavye arayüzünün dilini değiştirin + Sistem varsayılanı + Uygulama dili Otomatik büyük harf - Her cümlenin ilk kelimesini büyük harf yap - - Kişisel sözlük - Engellenen kelimeler - Önerilerden engellenen kelimeleri yönet - Bir kelimeyi engelle - Kelime zaten engellenmiş - Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? - - Ana sözlük - - Düzeltme önerilerini göster - - Yazarken önerilen kelimeleri göster - - Her zaman önerileri göster - - Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) - - Web düzenleme alanları için her zaman önerileri gösterme - - \'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) - - Potansiyel olarak saldırgan kelimeleri engelle - - Potansiyel olarak saldırgan kelimeleri önermeyin - - Otomatik düzeltme - + Kısayolları otomatik düzeltme + Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir + Otomatik düzeltme güven düzeyi Boşluk çubuğu ve noktalama işaretleri yanlış yazılmış kelimeleri otomatik düzeltir + Agresif + Ilımlı + Kapalı + Çok agresif Otomatik düzeltme açık Boşluk çubuğu ve noktalama - Sadece boşluk çubuğu Sadece noktalama - - Daha fazla otomatik düzeltme - - Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar - - Otomatik düzeltme güven düzeyi - - Kısayolları otomatik düzeltme - - Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir - + Sadece boşluk çubuğu + Sabitlenmiş tuşları otomatik gizle + Araç çubuğu genişletildiğinde sabitlenmiş tuşları gizle + Araç çubuğunu otomatik gizle + Öneriler kullanılabilir olduğunda araç çubuğunu gizle + SMS\'ten OTP\'yi otomatik oku + Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster + Araç çubuğunu otomatik göster + Açıldığında araç çubuğunu otomatik göster + Metin seçildiğinde araç çubuğunu otomatik göster + Metin seçildiğinde araç çubuğunu göster + Klavye açıldığında araç çubuğunu göster + Araç çubuğu tuşlarını otomatik olarak genişlet + Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet + Rengi otomatik seç + Otomatik düzeltme + Emoji sonrası otomatik boşluk + Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. + Kaydırarak yazdıktan sonra otomatik boşluk + Noktalama sonrası otomatik boşluk + Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. + Bir öneri seçildikten sonra otomatik boşluk + Kaydırarak yazmadan önce otomatik boşluk + "%s (deneysel)" Geri tuşu otomatik düzeltmeyi geri alır - - Kapalı - - Ilımlı - - Agresif - - Çok agresif - - Ortadaki öneriyi her zaman kullan - - Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. - + Pano Geçmişi + Sözlükler & Yazma Geçmişi + Genel Ayarlar + Düzenler + Tema & Özel Arka Planlar + Yedekleme hatası: %s + Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır + Yedekleme ve geri yükleme + Yedek geri yüklendi + Dahil edilecek öğeleri seçin: Sonraki kelime önerileri - Öneri oluştururken önceki kelimeyi kullan - - Kişisel & öğrenilmiş kelimelere öncelik ver - - Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. - - Öğrenilen kelime güçlendirme seviyesi - - Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. - - Öğrenilen kelimeler için bağlam eşleşmesi gerekli - - Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner - - Anında otomatik boşluk - Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. - - - İlk kelime önerileri - - Cümlenin başında girdi yoksa önerileri göster - - Noktalama önerileri - - Başka öneri yoksa noktalama işaretlerini göster - - Pano içeriğini öner - - Son kopyalanan pano içeriğini öneri olarak göster - - Son ekran görüntülerini öner - - Son alınan ekran görüntülerini öneri olarak göster - - SMS\'ten OTP\'yi otomatik oku - - Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster - - OTP önerisini kapat - - Önerilen ekran görüntülerini sıkıştır - - Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. - - Kaydırarak yazmayı etkinleştir - - Harflerin üzerinde kaydırarak bir kelime girin - - Kaydırma izini göster - - Kayan önizleme - - Kaydırırken önerilen kelimeyi göster - - Dinamik kayan önizleme - - Kaydırma sırasında önizlemeyi hareket ettir - - İfade kaydırma - - Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin - - Hızlı yazma bekleme süresi - - Her zaman anında başla - - Kaydırma izi görünme süresi - - Pano geçmişini etkinleştir - - Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır - - Geçmiş saklama süresi - - Sabitlenmiş öğeleri üstte göster - Sabitlenmiş öğeleri varsayılan olarak daralt + Kelime zaten engellenmiş + Önerilerden engellenen kelimeleri yönet + Yedek + Varsayılan + Dosya yükle + Geri yükle + Dosyaya kaydet + "Dil seç" + Özel düzen ekle + Ortadaki öneriyi her zaman kullan + Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. + Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? + Tümünü temizle + Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? + Panoyu temizle Pano temizleme simgesi - Pano temizleme düğmesi için simge stilini seçin Çöp kutusu - Süpür / Hepsini temizle - Eğimli çizgiler Çapraz çizgili pano taslağı Klasik pano - Sabitlendi - - Panodaki öğeleri ara... - + Pano temizleme düğmesi için simge stilini seçin + Süpür / Hepsini temizle + Eğimli çizgiler + Son kullandığınız emojileri silmek istediğinizden emin misiniz? + Emoji geçmişini temizle + Logu temizle + Pano + Tüm geçmişi temizlemek istediğinizden emin misiniz? Öğe bulunamadı - + Sabitlenmiş öğeleri varsayılan olarak daralt + Sabitlenmiş öğeleri üstte göster + Geçmiş saklama süresi Öğe silindi - Sonuç bulunamadı - Tüm geçmişi temizlemek istediğinizden emin misiniz? - Tümünü temizle - + Sabitlendi + Pano araması + Panodaki öğeleri ara... + Pano araç çubuğu tuşlarını seç + Pano geçmişini kapat + Dil seçiciyi kapat + Kompakt simgeler için sayı satırı + Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir + Önerilen ekran görüntülerini sıkıştır + Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. + https://api.openai.com/v1/chat/completions + https://generativelanguage.googleapis.com/v1beta/models?key=%1$s + https://api.groq.com/openai/v1/chat/completions + https://api.groq.com/openai/v1/models + @android:string/copy + Panoya kopyala + Numaralandırılmış araç çubuğu tuşlarını kendi istemlerinizle özelleştirin + Özel Yapay Zeka tuşları + Dosyadan özel emoji yazı tipi ayarla + Dosyadan özel yazı tipi seç + Özel alt tür + Arka plan görüntüsünü ayarla + Arka plan görüntüsünü ayarla (yatay) + Para birimlerini özelleştir + Ana ve en fazla 6 ikincil para birimi simgesini boşlukla ayrılmış olarak ayarlayın + Simgeleri özelleştir + Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak istiyor musunuz? + Tüm özelleştirilmiş tuş kodları gerçekten silinsin mi? + Araç çubuğu tuş kodlarını özelleştir + @android:string/cut + Otomatik gündüz/gece modu + Görünüm sistem ayarlarını takip edecek + Gün + Gün veya gece modu için görüntü ayarlansın mı? + Gece + Sil + Gerçekten %s silinsin mi? + İndirilen modeli sil + Özel düzen %s gerçekten silinsin mi? Kaydırarak silme - Silme tuşundan kaydırma yaparak aynı anda daha büyük metin parçalarını seçip silebilirsiniz. - - Yedekleme ve geri yükleme - - Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır - - Yedekleme hatası: %s - - Yedeği geri yüklerken hata: %s - - Yedek - - Geri yükle - - Yedek geri yüklendi - - timestamp key için biçim - - Çok dilli yazma - - Sözlüğü bulunan diller - - Kaydırarak yazma kütüphanesini yükle - - Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın - - + Kapat + Sözlük indirilebilir + Ek sözlükler + Hata: Seçilen dosya geçerli bir sözlük dosyası değil + Hata: komut dosyası bu klavyeyle uyumlu değil + "buradan" + "Sözlük dosyası yüklenirken hata oluştu" + Sözlükler + Sözlükleri tarayıcınızda doğrudan göz atın veya indirin + Sözlük Deposu + Güncelleme var + Yok + Özel tuş kodu seçeneği kullanıldığında doğrudan geçilecek giriş yöntemi + Doğrudan geçiş hedefi (IME) + Birden çok birleşik kelimeden oluşan önerileri engelle (Türkçe için önerilir) + Çok kelimeli önerileri devre dışı bırak + Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. + Tüm ağ erişimini devre dışı bırak + Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir + "tartışma bölümü" + Aşağı + İndir + İndirme başarısız oldu + İndiriliyor… + Engellenen kelimeler + Ham düzeni düzenlemek için dokun + Kişisel sözlük + Emoji + Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. + Pano geçmişini etkinleştir + Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır + Bölünmüş klavyeyi etkinleştir + Bölünmüş klavyeyi etkinleştir (yatay) + Dosya okunamıyor + İlk kelime önerileri + Cümlenin başında girdi yoksa önerileri göster + Kayan + Klavye taşımak için sürükleyin + Klavye boyutunu değiştirmek için sürükleyin + Parolalar hariç tüm metin alanlarında cümle başı büyük harfi zorla + Otomatik büyük harf kullanımını zorla + Tam sola + Tam sağa + API anahtarını girin + API anahtarı testi başarısız: %s + Metin düzeltme için Google Gemini API anahtarınızı girin + Gemini API Anahtarı + API anahtarı geçerli! + Metin düzeltme için AI modelini seçin + Gemini Modeli + LeanType ayarlarında ağ erişimi devre dışı bırakıldı + API Anahtarını Test Et + API anahtarı test ediliyor… + Hızlı yazma bekleme süresi + Her zaman anında başla + Kaydırma sırasında önizlemeyi hareket ettir + Kayan önizleme + Kaydırırken önerilen kelimeyi göster + Dinamik kayan önizleme + Kaydırarak yazmayı etkinleştir + Harflerin üzerinde kaydırarak bir kelime girin Kaydırarak yazma yöntemi - Kaydırarak yazma için algoritma seçin - Yerel kütüphane (swypelib gerektirir) Yedek motor (saf Java) - - Bu kütüphaneye \'%s\' için ihtiyacınız olacak. Uyumsuz kütüphaneler Kaydırarak yazma kullanılırken çökme yapabilir. - \n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen kütüphaneyi kullanın. - - Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? - - Kütüphaneyi yükle - - Kütüphaneyi sil - - Kütüphaneyi indir - - Kaydırma jest kütüphanesi indiriliyor… - - İndirme tamamlandı! Yeniden başlatılıyor… - - İndirme başarısız: %s - - El yazısı eklentisini yükle - El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın - Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. - Eklenti APK\'sını yükle - Eklentiyi sil - El yazısı eklentisi başarıyla içe aktarıldı - El yazısı eklentisi APK\'sı yüklenemedi - El yazısı - İndirilen modeli sil - El yazısı modeli silindi - El yazısı eklentisi gerekli - Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. - Eklentiyi yükle - - Noktalama sonrası otomatik boşluk - - Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. - - Emoji sonrası otomatik boşluk - - Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. - - Bir öneri seçildikten sonra otomatik boşluk - - Kaydırarak yazmadan önce otomatik boşluk - - Kaydırarak yazdıktan sonra otomatik boşluk - - Shift\'e basıldığında otomatik boşluk yok - - Shift bekleyen otomatik boşluğu kaldırır - - Noktalama öncesi boşluğu koru - - Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. - - Açılır pencerede diakritik işaretli daha fazla harf göster - - Klavye dillerinde tanımlı varyantları göster - - Çok yaygın varyantları ekle (varsayılan) - - Yaygın varyantları ekle - - Tüm kullanılabilir varyantları ekle - - URL algılama - - URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış - + Yerel kütüphane (swypelib gerektirir) + Kaydırarak yazma için algoritma seçin + Kaydırma izini göster + İfade kaydırma + Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin + Kaydırma izi görünme süresi + API Anahtarı Al + "Renkleri %s bölümünde bulabilir ve paylaşabilirsiniz." + Groq Anahtarını Al + API Belirteci Al + "Düzenleri %s bölümünde bulabilir ve paylaşabilirsiniz." + GNU General Public License v3.0 + API anahtarını girin + Groq API anahtarınızı girin + API Jetonu + El yazısı + El yazısı modeli silindi + Eklentiyi yükle + El yazısı eklentisi gerekli + Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. + ► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevler sağlar: <br> +\n\t• pano &#65515; yapıştır <br> +\n\t• sola/sağa taşı &#65515; sözcük sola/sağa <br> +\n\t• yukarı/aşağı taşı &#65515; sayfa yukarı/aşağı <br> +\n\t• sözcük sola/sağa &#65515; satır başı/sonu <br> +\n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> +\n\t• kopyala &#65515; kes <br> +\n\t• sözcük seç &#8596; tümünü seç <br> +\n\t• geri al &#8596; yinele <br> <br> +\n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, bunları öneri şeridine sabitler. <br> <br> +\n► Pano Görünümü, Emoji Görünümü, Tek Elle Mod, Ayarlar veya Dil Değiştirme\'ye erişmek için Virgül tuşuna uzun basın: <br> +\n\t• İlgili tuş etkinse Emoji Görünümü ve Dil Değiştirme kaybolur; <br> +\n\t• Bazı düzenlerde bu, Virgül\\\'ün tuşu değil, aynı konumdaki tuştur (ör. Dvorak\\\'ta \\\'q\\\' kullanılır). <br> <br> +\n► Gizli mod etkinleştirildiğinde hiçbir sözcük öğrenilmez ve son kullanılanlara emoji eklenmez. <br> <br> +\n► Araç çubuğuna erişmek için Gizli mod simgesine basın. <br> <br> +\n► Kaydırmalı tuş girişi: Tek bir büyük harf yazmak için Shift tuşundan başka bir tuşa kaydırın: <br> +\n\t• Bu, semboller klavyesinden tek bir sembol yazmak üzere \\\'?123\\\' tuşu ve ilgili tuşlar için de geçerlidir. <br> <br> +\n► Önceki klavyeye dönmek için Shift veya sembol tuşunu basılı tutun, bir ya da daha fazla tuşa basın ve ardından Shift veya sembol tuşunu bırakın. <br> <br> +\n► Daha fazla öneriyi ve bu öneriyi kaldırmak için silme düğmesini göstermek üzere öneri şeridindeki bir öneriye uzun basın. <br> <br> +\n► Daha fazla öneriyi açmak için bir öneriden yukarı kaydırın ve onu seçmek için önerinin üzerinde bırakın. <br> <br> +\n► Pano geçmişindeki bir girişi sabitlemek için ona uzun basın (sabitlemeyi kaldırana kadar panoda tutulur). <br> <br> +\n► Pano\\\'da bir girdiyi kaldırmak için sola kaydırın (sabitlenmiş değilse). <br> <br> +\n► Metni seçin ve sözcükleri BÜYÜK HARF, küçük harf ve Baş Harfleri Büyük arasında değiştirmek için Shift tuşuna basın. <br> <br> +\n► Bir dosya gezgininde açarak sözlük ekleyebilirsiniz: <br> +\n\t• Bu yalnızca <i>content-uris</i> ile çalışır; <i>file-uris</i> ile çalışmaz. Bu nedenle bazı dosya gezginlerinde çalışmayabilir. <br> <br> +\n► Kök erişimiyle elle yedekleme yapan kullanıcılar için: <br> +\n\t• Android 7\'den itibaren uygulama %s kullandığından, paylaşılan tercihler dosyası varsayılan konumda değildir. Bu, ayarların cihaz kilidi açılmadan önce, örneğin açılışta, okunabilmesi için gereklidir; <br> +\n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumundadır; ancak bu, cihaza ve Android sürümüne bağlı olabilir. <br> <br> +\n<i><b>Hata ayıklama modu / hata ayıklama APK\'sı</b></i> <br> <br> +\n► Kaynak sözlüğü göstermek için bir öneriye uzun basın. <br> <br> +\n► Hata ayıklama APK\'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsiniz; ancak günlük dosyasına sözlük dökme dışında faydası sınırlıdır. <br> +\n\t• Yayın APK\'sında, <i>Hakkında</i> bölümündeki sürüme birkaç kez dokunmanız gerekir; ardından <i>Gelişmiş Tercihler</i> içindeki hata ayıklama ayarlarını bulabilirsiniz. <br> +\n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür. <br> <br> +\n► Uygulama çökerse, Ayarlar uygulamasını açtığınızda çökme günlüklerini isteyip istemediğiniz sorulur. <br> <br> +\n► Çok dilli yazma kullanılırken boşluk çubuğunda, geçerli kullanılan dili belirlemek için kullanılan bir güven değeri gösterilir. <br> <br> +\n► Önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür (devre dışı bırakılabilir). + Gözden kaçabilecek özellikleri göster + cihaz korumalı depolama + Gizli özelliklerin açıklaması + İpucu kaynağını seç + https://api.groq.com/openai/v1/chat/completions + API uç nokta URL\'si + API Uç Noktası + model-name + Groq modelini seçin + Model + Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + API anahtarını girin + HuggingFace veya OpenAI-uyumlu API anahtarınızı girin + API Jetonu + Simge stili + Bu uygulama resim yapıştırmayı desteklemiyor + LeanType + LeanType Ayarları + Anında otomatik boşluk + Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. Gizli modu zorunlu kıl - Dokunmatik yüzey - Metin düzenleme - Modu seç - Tam ekran dokunmatik yüzey - Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle - - Yeni kelimelerin öğrenilmesini devre dışı bırak - - Daha fazla tuş - + Satır içi emoji araması + Bir kelimenin önünde \':\' varsa yalnızca emojileri öner + Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. + Yüklendi + Dahili ana sözlük + Tuş kenarlıkları + Tuş kodu + Düzen + Çöp kutusu + Sil + Bitti + Giriș + Git + @string/show_language_switch_key + İleri + Duraklat + Önceki + Tek elle modu yeniden boyutlandır + Ara + Gönder + Shift + Caps lock + Shift (kaydırılmış) + Ses girişi devre dışı + Boşluk (sayı düzeni) + Tek elle modu sonlandır + Tek elle kullanım tarafını değiştir + Sekme + Araç çubuğunu göster/gizle + Bekleyin + Sıfır genişlikli birleştirici + Sıfır genişlikli birleştirmeyen + Yatay Diller & Düzenler - - Sayı satırı - - Sayı satırını her zaman göster - - Simgeler görünümünde sayı satırını göster - - Kompakt simgeler için sayı satırı - - Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir - + Dil değiştirme tuşu davranışı + Her ikisini de değiştir + Diğer giriş yöntemlerine geç + Diller + Pano alt satırı + Eylem tuşlu Pano alt satırı + Özel düzen 1 + Özel düzen 2 + Özel düzen 3 + Özel düzen 4 + Özel düzen 5 + Emoji alt satırı + Eylem tuşlu Emoji alt satırı + Düzen hatası: %s + Fonksiyon tuşları + Fonksiyon tuşları (Khipro) + İşlevsel tuşlar (Semboller) + İşlevsel tuşlar (Daha fazla sembol) + Fonksiyon tuşları (büyük ekran) + Uyarı: düzen şu anda kullanılıyor + Rakamlar + Sayı satırı + Sayı satırı (temel) + Sayısal tuş takımı + Sayısal tuş takımı (yatay) + Telefon + Telefon sembolleri + Semboller + Semboller (Arapça) + Daha fazla sembol + Sol + Yeni bir sözlük ekle:\n1. Obtain a .dict file for your language.\n2. Tap \"Manage Dictionaries\".\n3. Use the plus (+) button to import the file. + Sözlük Yükleme Kılavuzu + Ana Sözlükler + Emoji Kütüphaneleri + Hareketle Yazma Kütüphanesi + El Yazısı Giriş Eklentisi + Hareketle yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. + Sözlük Kütüphaneleri + Aktif + indirilmedi + Açık kaynak lisansı + Yükle + Kaydırarak yazma kütüphanesini yükle + Kütüphaneyi sil + Kütüphaneyi indir + Kütüphaneyi yükle + İndirme başarısız: %s + İndirme tamamlandı! Yeniden başlatılıyor… + Kaydırma jest kütüphanesi indiriliyor… + Bu kütüphaneye \'%s\' için ihtiyacınız olacak. Uyumsuz kütüphaneler Kaydırarak yazma kullanılırken çökme yapabilir. + \n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen kütüphaneyi kullanın. + Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın + El yazısı eklentisini yükle + Eklentiyi sil + Eklenti APK\'sını yükle + El yazısı eklentisi APK\'sı yüklenemedi + Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. + El yazısı eklentisi başarıyla içe aktarıldı + El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın + Çeviri eklentisini yükle + Eklentiyi sil + Çeviri eklentisi APK\'sı yüklenemedi + Çeviri eklentisi başarıyla içe aktarıldı + Çeviri motorunu etkinleştirmek için bir APK eklentisi sağlayın + Sözlüğü bulunan diller Sayı satırını yerelleştir - Yerel rakamları Latin rakamlara tercih et - + Log temizlendi + Log seçenekleri + Uzun basma kodu + Sadece ana renkleri göster + Ana sözlük + Uyumlu bir formatta dosya seçin. Formatlar hakkında bilgi %s adresinde mevcuttur. + Daha fazla otomatik düzeltme + Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar + Daha fazla renk göster + Daha fazla tuş + Geçersiz ad + En büyük + En küçük + Orta + Büyük + Küçük + Öğrenilen kelime güçlendirme seviyesi + Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. + Öğrenilen kelimeler için bağlam eşleşmesi gerekli + Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner + "Bir daha gösterme" + "Sözlük olmadan yalnızca daha önce girdiğin metin için öneriler alırsın.<br> +\n %1$s sözlüklerini indirebilir veya \"%2$s\" için bir sözlüğün doğrudan %3$s indirilip indirilemeyeceğini kontrol edebilirsin." + Sayı satırı Sayı satırında ipuçlarını göster - + Simgeler görünümünde sayı satırını göster + Sayı satırını her zaman göster + @string/layout_numpad + Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) + Modeli hafızada tut + Özel (%1$d token) + Özel… + Oluşturulan düzeltmenin maksimum uzunluğu + Çevrimdışı Yapay Zeka Maksimum Token Sayısı + En olası token\'a göreli minimum olasılık eşiği + Min-P + Yerel LLM\'yi yönet + Çevrimdışı Model + Model üretirse akıl yürütme sürecini ve içsel düşünme token\'larını göster + Düşünme sürecini göster + Rastgeleliği kontrol eder: daha düşük değerler daha odaklı ve öngörülebilir sonuçlar üretir + Sıcaklık + Seçimleri en olası K token ile sınırlar + Top-K + Kelime çeşitliliğini kontrol eder: daha düşük değerler daha az olası seçenekleri eler + Top-P (Çekirdek Örnekleme) + Tek elle modu + Sistem Uygulama bilgilerini aç + İzinleri ve pil kullanımını Android ayarlarında yönetin + Sayfa aşağı + Sayfa sonu + Sayfa başı + Sayfa yukarı + @android:string/paste + Girdi tamamlandığında yüzen klavyeyi gizleme + Yüzen klavyeyi açık tut + Girdi tamamlandığında metin düzenleme modundan çıkma + Metin düzenleme modunu koru + Sabitlenmiş araç çubuğu tuşlarını seçin + @string/subtype_locale + Dil (öncelik) + Düzen + Sayı satırı + Semboller + Tuşa basıldığında açılır pencere + Açılır tuş sırasını seç + Açılır tuş sıralaması ve ipucu kaynağı + Her zaman önerileri göster + Web düzenleme alanları için her zaman önerileri gösterme + \'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) + Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) + Potansiyel olarak saldırgan kelimeleri önermeyin + Potansiyel olarak saldırgan kelimeleri engelle + Alt dolgu ölçeği + Emoji görüntüleme boyutu + Emoji boyutunu yazı tipi boyutuna göre ölçeklendir + Varsayılan emoji cilt tonu + Doğal + Fiziksel klavye için Emoji + Fiziksel Alt tuşu emoji paletini gösterir + Klavye yazı tipi boyutu + Yeni kelimelerin öğrenilmesini devre dışı bırak + Emoji sürümünü geçersiz kıl + Tuş uzun basma gecikmesi + Klavye yüksekliği ölçeği + Tuş basma ses düzeyi + Tuş basma titreşim gücü + Tuş basma titreşim süresi + Dil değiştirme kaydırma mesafesi + Boşluk tuşuyla giriş yöntemini değiştir + Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar + Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç + Tuş aralıklarını daralt + Daraltma seviyesi + Düzeltme önerilerini göster + Yazarken önerilen kelimeleri göster + Yan dolgu ölçeği + Boşluk çubuğu özel metni + Sistem emoji yazı tipini kullan + Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) + Noktalama öncesi boşluğu koru + Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. + Kişisel & öğrenilmiş kelimelere öncelik ver + Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. + Metni düzelt + Metin düzeltme başarısız: %s + Metin düzeltme… + Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. + Düzeltilecek metin yok + Metin düzeltildi + Uzun basmada araç çubuğu tuşunu sabitleyin + Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır + Yinele + Araç çubuğu durumunu hatırla + Araç çubuğunu oturumlar arasında ve yazarken genişletilmiş ya da daraltılmış halde tutar + Kaldır + "Kullanıcı tarafından eklenen sözlük \"%s\" gerçekten silinsin mi?" + Gereksiz açılır pencereleri kaldır + Temel düzende zaten bulunan açılır tuşları gizle + "Sözlüğü değiştir" + "Kullanıcı tarafından eklenen \"%1$s\" sözlüğü gerçekten değiştirilsin mi?\n +Geçerli sözlük: +%2$s\n +Yeni sözlük: +%3$s" + Yedeği geri yüklerken hata: %s + Sağ + Kaydet + Günlüğü kaydet + Dosyaya kaydet Uygulamaya göre dili hatırla - + Çok dilli yazma + @android:string/selectAll + Vurgu + Klavye arka planı + İşlevsel tuş arka planı + Kaydırarak yazma + Tuş metni + Tuş arka planı + Tuş ipucu metni + Boşluk çubuğu arka planı + Boşluk çubuğu metni + Öneri şeridi metni + Giriş yöntemini seçin + Modu seç + Kelimeyi seç + Ayarlar + Ek tuşlar + Davranış + Pano geçmişi + Yapılandırma + Düzeltmeler + Deneysel + Gelişmiş Hareketler + Girdi + Çeşitli + Boşluk + Öneriler + Dokunmatik yüzey + Görseller & Önizleme + Sınırsız + Hakkında + Gelişmiş + Yapay Zeka entegrasyonu + Görünüm + Metin düzeltme + Kaydırarak yazma + Tercihler + İkincil düzenler + Tema + Araç çubuğu + Sistem varsayılanı + Tamamlandı + Başla + Ayarlar\'da etkinleştir + "Lütfen Diller & giriş ayarlarınızda \"%s\" öğesini işaretleyin. Bu, cihazınızda çalışmasına izin verecektir." + "%s\'i etkinleştir" + Giriş yöntemlerini değiştir + "Sonra, aktif metin girişi yöntemi olarak \"%s\" öğesini seçin." + "%s\'e geç" + Klavveyi yapılandır + Artık tüm favori uygulamalarınızda %s ile yazabilirsiniz. + "Tebrikler, her şey hazır!" + "%s\'yi ayarlama" + Kaydırarak yazma ile + "Hoş geldiniz, %s" + Logu paylaş + Shift\'e basıldığında otomatik boşluk yok + Shift bekleyen otomatik boşluğu kaldırır + Araç çubuğunda indirme düğmesini göster + Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster + Uzun basmada emoji açıklamasını göster + Emoji tuşu Tuş ipuçlarını göster - Uzun basma ipuçlarını göster - - Açılır tuş sıralaması ve ipucu kaynağı - - İpucu kaynağını seç - - Açılır tuş sırasını seç - + Yatay boşluk tuşu kaydırma hareketi + Dil değiştirme tuşu + İşlevsel ipuçlarını göster + Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster + Tüm kullanılabilir varyantları ekle + Çok yaygın varyantları ekle (varsayılan) + Yaygın varyantları ekle + Klavye dillerinde tanımlı varyantları göster + Açılır pencerede diakritik işaretli daha fazla harf göster + Uygulama simgesini göster + Başlatıcıda uygulama simgesini göster Üst düzey alan adları (TLD) açılır tuşlarını göster - URL ve e-posta adresleri yazarken nokta tuşunun açılırlarını üst düzey alan adlarıyla değiştir - - Sayı satırı - @string/subtype_locale - Dil (öncelik) - Düzen - Semboller - - Araç çubuğu modu - - Araç çubuğu tuşları ve öneriler - - Yalnızca araç çubuğu tuşları - - Yalnızca öneriler - - Gizli - - Pano ve emoji araç çubuklarını da gizle - - Araç çubuğu tuşlarını seç - - @android:string/paste - @android:string/copy - @android:string/cut - Pano - Panoyu temizle - - Pano araması - - İndir - İndiriliyor… - İndirme başarısız oldu - Yüklendi - Ses girişi - @string/layout_numpad - Ayarlar - @android:string/selectAll - Kelimeyi seç - Tek elle modu - Kayan - Bölünmüş klavye - Tam sola - Tam sağa - Sayfa başı - Sayfa sonu - Sol - Sağ - Yukarı - Aşağı - Kelime sola - Kelime sağa - Sayfa yukarı - Sayfa aşağı - Geri al - Yinele - Pano geçmişini kapat - Emoji - - Metni düzelt - Metin düzeltme… - Metin düzeltildi - Metin düzeltme başarısız: %s - Düzeltilecek metin yok - Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. - Gemini API Anahtarı - Metin düzeltme için Google Gemini API anahtarınızı girin - API anahtarını girin - API Anahtarı Al - Gemini Modeli - Metin düzeltme için AI modelini seçin - API Anahtarını Test Et - API anahtarı geçerli! - API anahtarı testi başarısız: %s - API anahtarı test ediliyor… - Tüm ağ erişimini devre dışı bırak - Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. - Sistem Uygulama bilgilerini aç - İzinleri ve pil kullanımını Android ayarlarında yönetin - LeanType ayarlarında ağ erişimi devre dışı bırakıldı - Yapay Zeka Sağlayıcısı - Metin düzeltme için Yapay Zeka servisini seçin - Google Gemini + Dikey boşluk tuşu kaydırma hareketi + Tuşa basıldığında ses + Klavyeyi gizle + İmleci taşı + Sayısal tuş takımını aç kapa + Dokunmatik yüzey modu + LeanType Yazım Denetleyici + Bölünmüş klavye + Bölünme mesafesi Araç çubuğunu ayır Önerileri araç çubuğundan ayır - Araç çubuğu tuşlarını otomatik olarak genişlet - Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet - Araç çubuğunda indirme düğmesini göster - Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster - Groq - HF/OpenAI-uyumlu - API Jetonu - HuggingFace veya OpenAI-uyumlu API anahtarınızı girin - API Jetonu - Groq API anahtarınızı girin - API anahtarını girin - API anahtarını girin - Groq Anahtarını Al - API Belirteci Al - API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. - Model - Groq modelini seçin - model-name - Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. - API Uç Noktası - API uç nokta URL\'si - https://api.groq.com/openai/v1/chat/completions - Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. - Güvensiz bağlantılara izin ver - HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. - Düzenler - Tema & Özel Arka Planlar - Sözlükler & Yazma Geçmişi - Pano Geçmişi - Genel Ayarlar - Dahil edilecek öğeleri seçin: - - https://generativelanguage.googleapis.com/v1beta/models?key=%1$s - https://api.groq.com/openai/v1/models - https://api.openai.com/v1/chat/completions - https://api.groq.com/openai/v1/chat/completions - Modeli hafızada tut - Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) - - Çevir - Çeviriliyor… - Metin çevrildi + OTP önerisini kapat + Bu proje tamamen topluluk tarafından yürütülüyor ve geliştirmeyi sürdürebilmek için bağışlara dayanıyor. Bu klavyeyi yararlı buluyorsanız lütfen desteklemeyi düşünün! + Bir daha gösterme + Şimdi değil + Destekle + Bu projeyi destekleyin + Yuvarlak + %s (Akkhor) + %s (Baishakhi) + Dagbani + Dargwa (Urakhi) + Emoji + İngilizce (UK) + İngilizce (US) + İspanyolca (US) + %s (Kompakt) + %s (Genişletilmiş) + %s (Fonetik) + %s (Sebeolsik 390) + %s (Sebeolsik Final) + %s (Öğrenci) + %s (Geleneksel) + Hinglish + %s (Khipro) + Dil + Mari (Doğu) + Mansi + Dil yok + %s (Probhat) + Sırpça (Latin) + Sesotho + %1$s (%2$s) + Kaitag + Pano içeriğini öner + Son kopyalanan pano içeriğini öneri olarak göster + Emoji önerileri + Normal önerilerde emoji sözlüğünü kullan + Noktalama önerileri + Başka öneri yoksa noktalama işaretlerini göster + Son ekran görüntülerini öner + Son alınan ekran görüntülerini öneri olarak göster + Belirlenmemişse, portre görüntüsü kullanılacaktır. + Sonrasında ana klavyeye geç… + Dili değiştir + Metin düzenleme + Ayarları açmak için dile dokunun + Renkler + Renkler (gece) + Siyah + Mavi-gri + Kahverengi + Çikolata + Bulutlu + Koyu + Daha koyu + Dinamik renkler + Orman + Holo Beyaz + İndigo + LeanBitLab Koyu + LeanBitLab Açık + Açık + Nane ve Pembe + Pembe + Kum + Kullanıcı Tanımlı + Eflatun + Gezinme çubuğu rengini ayarla + Stil + timestamp key için biçim + İçerik kopyalandı + Pano ve emoji araç çubuklarını da gizle + Araç çubuğu tuşlarını seç + Uzun basma ipucu noktalarını göster + Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin + Araç çubuğu modu + Araç çubuğu tuşları ve öneriler + Gizli + Yalnızca öneriler + Yalnızca araç çubuğu tuşları + Sadece fiziksel klavye bağlıyken araç çubuğunu göster + Sistem ayarlarında sanal klavyeyi göstermeyi ayrıca etkinleştirmeniz gerekir + Aşağı kaydırarak kapat + Klavyeyi gizlemek için araç çubuğunu aşağı kaydırın + Dokunmatik yüzey + Tam ekran dokunmatik yüzey + Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle + Dokunmatik yüzey hassasiyeti + Çevir Çeviri başarısız: %s + Çeviriliyor… + Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. + Çeviri Modeli Çevrilecek metin yok - Çeviri hedef dili + Metin çevrildi Çevirmek istediğiniz dili seçin - Çeviri Modeli - Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. - - - - İngilizce - İspanyolca - Fransızca - Almanca - İtalyanca - Portekizce - Çince (Basitleştirilmiş) - Çince (Geleneksel) - Japonca - Korece - Arapça - Rusça - Hintçe - Bengalce - Endonezce - Flemenkçe - Türkçe - Lehçe - Ukraynaca - İsveççe - Danca - Norveççe - Fince - Yunanca - İbranice - Tayca - Vietnamca - Tamilce - Telugu - Marathi - Gujarati - Kannada - Malayalam - Urduca - Farsça (Farsi) - Svahili - Romence - Çekçe - Macarca - Filipince (Tagalog) - Malayca - Sırpça - Hırvatça - Bulgarca - Slovakça - Slovence - Litvanca - Letonca - Estonca - Katalanca - Baskça - - - - English - Spanish - French - German - Italian - Portuguese - Chinese (Simplified) - Chinese (Traditional) - Japanese - Korean - Arabic - Russian - Hindi - Bengali - Indonesian - Dutch - Turkish - Polish - Ukrainian - Swedish - Danish - Norwegian - Finnish - Greek - Hebrew - Thai - Vietnamese - Tamil - Telugu - Marathi - Gujarati - Kannada - Malayalam - Urdu - Persian (Farsi) - Swahili - Romanian - Czech - Hungarian - Filipino (Tagalog) - Malay - Serbian - Croatian - Bulgarian - Slovak - Slovenian - Lithuanian - Latvian - Estonian - Catalan - Basque - - - Pano araç çubuğu tuşlarını seç - - Sabitlenmiş araç çubuğu tuşlarını seçin - - Uzun basmada araç çubuğu tuşunu sabitleyin - - Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır - - Uzun basma ipucu noktalarını göster - - Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin - - İşlevsel ipuçlarını göster -%s (Sebeolsik 390) -%s (Sebeolsik Final) -Stil -Koyu -Sonrasında ana klavyeye geç… -Sembol görünümünde diğer tuşlardan sonra enter veya boşluk tuşuna basma -Emoji görünümünde emojiyi seçme -Pano geçmişi girişini seçme -Daha koyu -Temel düzende zaten bulunan açılır tuşları gizle -Araç çubuğu -Gereksiz açılır pencereleri kaldır -Sayısal tuş takımını aç kapa -%s (Öğrenci) -Eklemek için bir sözlük seç .dict biçimindeki sözlükler %s indirilebilir. -Hata: Seçilen dosya geçerli bir sözlük dosyası değil -Hata: komut dosyası bu klavyeyle uyumlu değil -Daha fazla renk göster -Bu ayar dahili olarak kullanılan tüm renkleri ortaya çıkarır. Renk listesi herhangi bir zamanda değişebilir. Varsayılan renk rastgeledir ve adlar çevrilmeyecektir. -Klavye arka planı -İşlevsel tuş arka planı -Tuş metni -Tuş ipucu metni -Mansi -Görünüm -"Sözlük olmadan yalnızca daha önce girdiğin metin için öneriler alırsın.<br> -\n %1$s sözlüklerini indirebilir veya \"%2$s\" için bir sözlüğün doğrudan %3$s indirilip indirilemeyeceğini kontrol edebilirsin." -Sayı satırı -Simge stili -Boşluk çubuğu özel metni -Emoji alt satırı -Pano alt satırı -Giriș -Sekme -Sil -Geçersiz ad -Sayı satırı (temel) -Emoji görüntüleme boyutu -Araç çubuğunu göster/gizle -Emoji boyutunu yazı tipi boyutuna göre ölçeklendir -İkincil düzenler -Caps lock -Shift -Varsayılan emoji cilt tonu -Doğal -Boşluk (sayı düzeni) -Klavye yazı tipi boyutu -Dosyadan özel yazı tipi seç -Emoji sürümünü geçersiz kıl -%1$s (%2$s) -Yatay - - - - - - - - - - -Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster -Boşluk tuşuyla giriş yöntemini değiştir -Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar -Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç -Tuş aralıklarını daralt -Daraltma seviyesi -En küçük -Küçük -Orta -Büyük -En büyük -Klavye yüksekliği ölçeği -Alt dolgu ölçeği - - - - - - - - - - - - - - - - - - -Yan dolgu ölçeği -Dosyadan özel emoji yazı tipi ayarla -Sistem emoji yazı tipini kullan -Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) -İngilizce (UK) -İngilizce (US) -İspanyolca (US) -Sırpça (Latin) -Hinglish -Kaitag -Dagbani -Sesotho -Dargwa (Urakhi) -Mari (Doğu) - -Shift (kaydırılmış) -Sözlük Kütüphaneleri -Hareketle yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. -Hareketle Yazma Kütüphanesi -Ana Sözlükler -Emoji Kütüphaneleri -El Yazısı Giriş Eklentisi -Sözlük Yükleme Kılavuzu -Yeni bir sözlük ekle:\n1. Obtain a .dict file for your language.\n2. Tap \"Manage Dictionaries\".\n3. Use the plus (+) button to import the file. -Aktif -indirilmedi + Çeviri hedef dili + Çeviri için motor seçin (Eklenti veya AI) + Çeviri Motoru + Geri al + Yukarı + Yükselt + URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış + URL algılama + Uygulama adlarını ara + Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan + Kişi adlarını ara + Öneriler ve düzeltmeler için Kişilerdeki adları kullan + Çift boşlukla nokta + Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler + Kişiselleştirilmiş öneriler + Önerileri iyileştirmek için iletişimlerinizden ve yazdığınız verilerden öğrenin + Kelime ekle + Bu sözlükteki tüm kelimeleri silmek istediğinizden emin misiniz? + Dil: + İsteğe bağlı kısayol + Kısayol: + Ağırlık: + Bir kelime yazın + Tüm diller için + Kelimeyi düzenle + Daha fazla dil… + Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir kelime girin. + Değişken araç çubuğu yönü + Sağdan sola yazan bir klavye alt türü seçildiğinde yönü ters çevir + Sürüm + Sürüm %s + Rahatsız etme modunda titreşim + Tuşa basıldığında titreşim + Ses girişi + Kelime sola + Kelime sağa + \ No newline at end of file From 2046ec970f8c01981b53adddb7fe30ae6e85e8dc Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 17:29:48 +0000 Subject: [PATCH 09/15] Revert unrelated changes in RichInputConnection and InputLogic, keeping only the intended fix and string improvements --- .../keyboard/latin/RichInputConnection.java | 504 +++++++++++++++--- .../keyboard/latin/inputlogic/InputLogic.java | 6 +- 2 files changed, 444 insertions(+), 66 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java index ccc955380..02457fe4b 100644 --- a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java +++ b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java @@ -50,6 +50,18 @@ import java.util.concurrent.TimeUnit; +/** + * Enrichment class for InputConnection to simplify interaction and add + * functionality. + *

+ * This class serves as a wrapper to be able to simply add hooks to any calls to + * the underlying + * InputConnection. It also keeps track of a number of things to avoid having to + * call upon IPC + * all the time to find out what text is in the buffer, when we need it to + * determine caps mode + * for example. + */ public final class RichInputConnection implements PrivateCommandPerformer { private static final String TAG = "RichInputConnection"; private static final boolean DBG = false; @@ -59,7 +71,18 @@ public final class RichInputConnection implements PrivateCommandPerformer { private static final int NUM_CHARS_TO_GET_AFTER_CURSOR = 40; private static final int INVALID_CURSOR_POSITION = -1; + /** + * The amount of time a {@link #reloadTextCache} call needs to take for the + * keyboard to enter + * the {@link #hasSlowInputConnection} state. + * Reduced from 1000ms to 300ms for faster detection of slow connections. + */ private static final long SLOW_INPUT_CONNECTION_ON_FULL_RELOAD_MS = 300; + /** + * The amount of time a {@link #getTextBeforeCursor} or + * {@link #getTextAfterCursor} call needs + * to take for the keyboard to enter the {@link #hasSlowInputConnection} state. + */ private static final long SLOW_INPUT_CONNECTION_ON_PARTIAL_RELOAD_MS = 200; private static final int OPERATION_GET_TEXT_BEFORE_CURSOR = 0; @@ -72,19 +95,60 @@ public final class RichInputConnection implements PrivateCommandPerformer { "GET_WORD_RANGE_AT_CURSOR", "RELOAD_TEXT_CACHE" }; + /** + * The amount of time the keyboard will persist in the + * {@link #hasSlowInputConnection} state + * after observing a slow InputConnection event. + * Reduced from 10 minutes to 2 minutes for faster recovery from temporary slowness. + */ private static final long SLOW_INPUTCONNECTION_PERSIST_MS = TimeUnit.MINUTES.toMillis(2); - private int mExpectedSelStart = INVALID_CURSOR_POSITION; - private int mExpectedSelEnd = INVALID_CURSOR_POSITION; + /** + * This variable contains an expected value for the selection start position. + * This is where the + * cursor or selection start may end up after all the keyboard-triggered updates + * have passed. We + * keep this to compare it to the actual selection start to guess whether the + * move was caused by + * a keyboard command or not. + * It's not really the selection start position: the selection start may not be + * there yet, and + * in some cases, it may never arrive there. + */ + private int mExpectedSelStart = INVALID_CURSOR_POSITION; // in chars, not code points + /** + * The expected selection end. Only differs from mExpectedSelStart if a + * non-empty selection is + * expected. The same caveats as mExpectedSelStart apply. + */ + private int mExpectedSelEnd = INVALID_CURSOR_POSITION; // in chars, not code points + /** + * This contains the committed text immediately preceding the cursor and the + * composing + * text, if any. It is refreshed when the cursor moves by calling upon the + * TextView. + */ private final StringBuilder mCommittedTextBeforeComposingText = new StringBuilder(); + /** + * This contains the currently composing text, as LatinIME thinks the TextView + * is seeing it. + */ private final StringBuilder mComposingText = new StringBuilder(); + /** + * This variable is a temporary object used in + * {@link #commitText(CharSequence,int)} + * to avoid object creation. + */ private final SpannableStringBuilder mTempObjectForCommitText = new SpannableStringBuilder(); private final InputMethodService mParent; private InputConnection mIC; private int mNestLevel; + /** + * The timestamp of the last slow InputConnection operation + */ private long mLastSlowInputConnectionTime = -SLOW_INPUTCONNECTION_PERSIST_MS; public RichInputConnection(final InputMethodService parent) { @@ -97,6 +161,12 @@ public boolean isConnected() { return mIC != null; } + /** + * Returns whether or not the underlying InputConnection is slow. When true, we + * want to avoid + * calling InputConnection methods that trigger an IPC round-trip (e.g., + * getTextAfterCursor). + */ public boolean hasSlowInputConnection() { return (SystemClock.uptimeMillis() - mLastSlowInputConnectionTime) <= SLOW_INPUTCONNECTION_PERSIST_MS; } @@ -200,6 +270,8 @@ public void ensureBatchEditClosed() { public boolean resetCachesUponCursorMoveAndReturnSuccess(final int newSelStart, final int newSelEnd, final boolean shouldFinishComposition) { mComposingText.setLength(0); + // Set expected positions before reload so the cache is built with the correct + // cursor context — avoids a second IPC round-trip when position has changed. final int oldExpectedSelStart = mExpectedSelStart; final int oldExpectedSelEnd = mExpectedSelEnd; mExpectedSelStart = newSelStart; @@ -207,6 +279,7 @@ public boolean resetCachesUponCursorMoveAndReturnSuccess(final int newSelStart, final boolean didReloadTextSuccessfully = reloadTextCache(); if (!didReloadTextSuccessfully) { Log.d(TAG, "Will try to retrieve text later."); + // selection is set to INVALID_CURSOR_POSITION if reloadTextCache return false return false; } if (mExpectedSelStart != newSelStart || mExpectedSelEnd != newSelEnd) { @@ -219,8 +292,18 @@ public boolean resetCachesUponCursorMoveAndReturnSuccess(final int newSelStart, return true; } + /** + * Reload the cached text from the InputConnection. + * + * @return true if successful + */ private boolean reloadTextCache() { mCommittedTextBeforeComposingText.setLength(0); + // Clearing composing text was not in original AOSP and OpenBoard, but why? + // should actually + // be necessary when reloading text. Only when called by setSelection, + // mComposingText isn't + // always empty, but looks like things still work normally mComposingText.setLength(0); mIC = mParent.getCurrentInputConnection(); if (!isConnected()) { @@ -235,6 +318,8 @@ private boolean reloadTextCache() { Constants.EDITOR_CONTENTS_CACHE_SIZE, 0 /* flags */); if (null == textBeforeCursor) { + // For some reason the app thinks we are not connected to it. This looks like a + // framework bug... Fall back to ground state and return false. mExpectedSelStart = INVALID_CURSOR_POSITION; mExpectedSelEnd = INVALID_CURSOR_POSITION; Log.w(TAG, "Unable to connect to the editor to retrieve text."); @@ -256,6 +341,7 @@ private void reloadCursorPosition() { private void checkBatchEdit() { if (mNestLevel != 1) { + // TODO: exception instead Log.e(TAG, "Batch edit level incorrect : " + mNestLevel); Log.e(TAG, DebugLogUtils.getStackTrace(4)); } @@ -266,6 +352,11 @@ public void finishComposingText() { checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); + // TODO: this is not correct! The cursor is not necessarily after the composing + // text. + // In the practice right now this is only called when input ends so it will be + // reset so + // it works, but it's wrong and should be fixed. mCommittedTextBeforeComposingText.append(mComposingText); mComposingText.setLength(0); if (isConnected()) { @@ -277,17 +368,13 @@ public void commitCodePoint(final int codePoint) { commitText(StringUtils.newSingleCodePointString(codePoint), 1); } + /** + * Calls {@link InputConnection#commitText(CharSequence, int)}. + * + * @param text The text to commit. This may include styles. + * @param newCursorPosition The new cursor position around the text. + */ public void commitText(final CharSequence text, final int newCursorPosition) { - // --- ADDED BLACKLIST CONTROL --- - if (text != null && isWordBlocked(text.toString())) { - mComposingText.setLength(0); - if (isConnected()) { - mIC.commitText("", 1); - } - return; - } - // ------------------------------------ - if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) @@ -295,7 +382,12 @@ public void commitText(final CharSequence text, final int newCursorPosition) { if (DebugFlags.DEBUG_ENABLED) Log.d(TAG, "committing " + text.length() + " characters"); mCommittedTextBeforeComposingText.append(text); - + // TODO: the following is exceedingly error-prone. Right now when the cursor is + // in the + // middle of the composing word mComposingText only holds the part of the + // composing text + // that is before the cursor, so this actually works, but it's terribly + // confusing. Fix this. mExpectedSelStart += text.length() - mComposingText.length(); mExpectedSelEnd = mExpectedSelStart; mComposingText.setLength(0); @@ -308,7 +400,10 @@ public void commitText(final CharSequence text, final int newCursorPosition) { final int spanStart = mTempObjectForCommitText.getSpanStart(span); final int spanEnd = mTempObjectForCommitText.getSpanEnd(span); final int spanFlags = mTempObjectForCommitText.getSpanFlags(span); - + // We have to adjust the end of the span to include an additional character. + // This is to avoid splitting a unicode surrogate pair. + // See helium314.keyboard.latin.common.Constants.UnicodeSurrogate + // See https://b.corp.google.com/issues/19255233 if (0 < spanEnd && spanEnd < mTempObjectForCommitText.length()) { final char spanEndChar = mTempObjectForCommitText.charAt(spanEnd - 1); final char nextChar = mTempObjectForCommitText.charAt(spanEnd); @@ -336,6 +431,27 @@ public boolean hasTextAfterCursor() { return !TextUtils.isEmpty(after); } + /** + * Gets the caps modes we should be in after this specific string. + *

+ * This returns a bit set of TextUtils#CAP_MODE_*, masked by the inputType + * argument. + * This method also supports faking an additional space after the string passed + * in argument, + * to support cases where a space will be added automatically, like in phantom + * space + * state for example. + * Note that for English, we are using American typography rules (which are not + * specific to + * American English, it's just the most common set of rules for English). + * + * @param inputType a mask of the caps modes to test for. + * @param spacingAndPunctuations the values of the settings to use for locale + * and separators. + * @param hasSpaceBefore if we should consider there should be a space + * after the string. + * @return the caps modes that should be on as a set of bits + */ public int getCursorCapsMode(final int inputType, final SpacingAndPunctuations spacingAndPunctuations, final boolean hasSpaceBefore) { mIC = mParent.getCurrentInputConnection(); @@ -344,16 +460,33 @@ public int getCursorCapsMode(final int inputType, } if (!TextUtils.isEmpty(mComposingText)) { if (hasSpaceBefore) { + // If we have some composing text and a space before, then we should have + // MODE_CHARACTERS and MODE_WORDS on. return (TextUtils.CAP_MODE_CHARACTERS | TextUtils.CAP_MODE_WORDS) & inputType; } + // We have some composing text - we should be in MODE_CHARACTERS only. return TextUtils.CAP_MODE_CHARACTERS & inputType; } + // TODO: this will generally work, but there may be cases where the buffer + // contains SOME + // information but not enough to determine the caps mode accurately. This may + // happen after + // heavy pressing of delete, for example DEFAULT_TEXT_CACHE_SIZE - 5 times or + // so. + // getCapsMode should be updated to be able to return a "not enough info" result + // so that + // we can get more context only when needed. if (TextUtils.isEmpty(mCommittedTextBeforeComposingText) && 0 != mExpectedSelStart) { if (!reloadTextCache()) { Log.w(TAG, "Unable to connect to the editor. " + "Setting caps mode without knowing text."); } } + // This never calls InputConnection#getCapsMode - in fact, it's a static method + // that + // never blocks or initiates IPC. + // TODO: don't call #toString() here. Instead, all accesses to + // mCommittedTextBeforeComposingText should be done on the main thread. return CapsModeUtils.getCapsMode(mCommittedTextBeforeComposingText.toString(), inputType, spacingAndPunctuations, hasSpaceBefore); } @@ -383,16 +516,27 @@ public int getCharBeforeBeforeCursor() { @Nullable public CharSequence getTextBeforeCursor(final int n, final int flags) { final int cachedLength = mCommittedTextBeforeComposingText.length() + mComposingText.length(); + // If we have enough characters to satisfy the request, or if we have all + // characters in + // the text field, then we can return the cached version right away. + // However, if we don't have an expected cursor position, then we should always + // go fetch the cache again (as it happens, INVALID_CURSOR_POSITION < 0, so we + // need to + // test for this explicitly) if (INVALID_CURSOR_POSITION != mExpectedSelStart && (cachedLength >= n || cachedLength >= mExpectedSelStart)) { + // Thread-safety: snapshot mComposingText via toString() since it may be + // mutated on the main thread while this runs on a worker thread. final String composingSnapshot = mComposingText.toString(); final String committedSnapshot = mCommittedTextBeforeComposingText.toString(); final int totalLen = committedSnapshot.length() + composingSnapshot.length(); if (totalLen <= n) { + // Common case: return everything without trimming — avoid StringBuilder if (composingSnapshot.isEmpty()) return committedSnapshot; if (committedSnapshot.isEmpty()) return composingSnapshot; return committedSnapshot + composingSnapshot; } + // Rare case: need to trim from the front final String combined = committedSnapshot + composingSnapshot; return combined.substring(combined.length() - n); } @@ -413,8 +557,18 @@ private CharSequence getTextBeforeCursorAndDetectLaggyConnection( final CharSequence result = mIC.getTextBeforeCursor(n, flags); detectLaggyConnection(operation, timeout, startTime); + // only do the consistency check if we actually have text (i.e. we're not coming + // from some reload / reset) if ((mCommittedTextBeforeComposingText.length() > 0 || mComposingText.length() > 0) && result != null && !checkTextBeforeCursorConsistency(result)) { + // inconsistent state can occur for (at least) two reasons + // 1. the app actively changes text field content, e.g. joplin when deleting + // list markers like "2." + // 2. the app has outdated contents in the text field, e.g. com.farmerbb.notepad + // returns the + // just deleted char right after deletion, instead of the correct one + // todo: understand where this inconsistent state comes from, is it really the + // other app's fault, or is it HeliBoard? Log.w(TAG, "cached text out of sync, reloading"); reloadCursorPosition(); reloadTextCache(); @@ -422,12 +576,20 @@ private CharSequence getTextBeforeCursorAndDetectLaggyConnection( return result; } + // checks whether the end of cached text before cursor is the same as end of the + // given CharSequence + // this is done to find inconsistencies that arise in some text fields when + // characters are deleted, but also in some other cases + // only checks the end for performance reasons + // may need to check more than just the last character, because the text may end + // in e.g. rrrrr and even there a single car offset should be found private boolean checkTextBeforeCursorConsistency(final CharSequence textField) { final int lastIndex = textField.length() - 1; if (lastIndex == -1) return true; final char lastChar = textField.charAt(lastIndex); final int composingLength = mComposingText.length(); + // Fast-path: check last character without loop overhead (covers >90% of consistent cases) final char lastCachedChar; if (composingLength > 0) { lastCachedChar = mComposingText.charAt(composingLength - 1); @@ -435,32 +597,41 @@ private boolean checkTextBeforeCursorConsistency(final CharSequence textField) { lastCachedChar = mCommittedTextBeforeComposingText.charAt( mCommittedTextBeforeComposingText.length() - 1); } else { - return true; + return true; // empty cache, nothing to compare } if (lastCachedChar != lastChar) - return false; + return false; // last char mismatch → inconsistent + // If last char differs from second-to-last in the text field, no need for full scan if (lastIndex > 0 && textField.charAt(lastIndex - 1) != lastChar) return true; for (int i = 0; i <= lastIndex; i++) { + // get last minus i character and compare final char currentTextFieldChar = textField.charAt(lastIndex - i); final char currentCachedChar; if (i < composingLength) { + // take char from composing text currentCachedChar = mComposingText.charAt(composingLength - 1 - i); } else { + // take last char from mCommittedTextBeforeComposingText, consider composing + // length final int index = mCommittedTextBeforeComposingText.length() - 1 - (i - composingLength); if (index < mCommittedTextBeforeComposingText.length() && index >= 0) currentCachedChar = mCommittedTextBeforeComposingText.charAt(index); else - return lastIndex > 100; + return lastIndex > 100; // still let it pass if the same character is repeated many times, but + // cached text too short } if (currentTextFieldChar != currentCachedChar) + // different character -> inconsistent return false; if (lastChar != currentTextFieldChar) + // not the same, and no inconsistency found so far -> unlikely there is one that + // won't be found later -> return early return true; } - return true; + return true; // no inconsistency found after going through everything } @Nullable @@ -492,6 +663,7 @@ private void detectLaggyConnection(final int operation, final long timeout, fina StatsUtils.onInputConnectionLaggy(operation, duration); mLastSlowInputConnectionTime = SystemClock.uptimeMillis(); } else if (duration < timeout / 5 && hasSlowInputConnection()) { + // we have a fast connection now, maybe the slowness was just a hickup mLastSlowInputConnectionTime -= SLOW_INPUTCONNECTION_PERSIST_MS / 2; Log.d(TAG, "InputConnection: much faster now, reducing persist time"); } @@ -500,6 +672,11 @@ private void detectLaggyConnection(final int operation, final long timeout, fina public void deleteTextBeforeCursor(final int beforeLength) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); + // TODO: the following is incorrect if the cursor is not immediately after the + // composition. + // Right now we never come here in this case because we reset the composing + // state before we + // come here in this case, but we need to fix this. if (DebugFlags.DEBUG_ENABLED) Log.d(TAG, "deleting " + beforeLength + " characters before cursor"); final int remainingChars = mComposingText.length() - beforeLength; @@ -507,6 +684,7 @@ public void deleteTextBeforeCursor(final int beforeLength) { mComposingText.setLength(remainingChars); } else { mComposingText.setLength(0); + // Never cut under 0 final int len = Math.max(mCommittedTextBeforeComposingText.length() + remainingChars, 0); mCommittedTextBeforeComposingText.setLength(len); @@ -515,6 +693,10 @@ public void deleteTextBeforeCursor(final int beforeLength) { mExpectedSelStart -= beforeLength; mExpectedSelEnd -= beforeLength; } else { + // There are fewer characters before the cursor in the buffer than we are being + // asked to + // delete. Only delete what is there, and update the end with the amount + // deleted. mExpectedSelEnd -= mExpectedSelStart; mExpectedSelStart = 0; } @@ -562,12 +744,22 @@ public void performEditorAction(final int actionId) { public void sendKeyEvent(final KeyEvent keyEvent) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); - if (DebugFlags.DEBUG_ENABLED) + if (DebugFlags.DEBUG_ENABLED) // no details, might be too sensitive Log.d(TAG, "key event with action " + keyEvent.getAction() + ", is control: " + Character.isISOControl(keyEvent.getUnicodeChar())); if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) { if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); + // This method is only called for enter or backspace when speaking to old + // applications + // (target SDK <= 15 (Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)), or for + // digits. + // When talking to new applications we never use this method because it's + // inherently + // racy and has unpredictable results, but for backward compatibility we + // continue + // sending the key events for only Enter and Backspace because some applications + // mistakenly catch them to do some stuff. switch (keyEvent.getKeyCode()) { case KeyEvent.KEYCODE_ENTER: mCommittedTextBeforeComposingText.append("\n"); @@ -585,6 +777,7 @@ public void sendKeyEvent(final KeyEvent keyEvent) { mComposingText.delete(mComposingText.length() - 1, mComposingText.length()); } if (mExpectedSelStart > 0 && mExpectedSelStart == mExpectedSelEnd) { + // TODO: Handle surrogate pairs. mExpectedSelStart -= 1; } mExpectedSelEnd = mExpectedSelStart; @@ -599,7 +792,7 @@ public void sendKeyEvent(final KeyEvent keyEvent) { default: final int codePoint = keyEvent.getUnicodeChar(); if (Character.isISOControl(codePoint)) - break; + break; // don't append text if there is no actual text final String text = StringUtils.newSingleCodePointString(codePoint); mCommittedTextBeforeComposingText.append(text); mExpectedSelStart += text.length(); @@ -617,12 +810,23 @@ public void setComposingRegion(final int start, final int end) { checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); - final int moveBy = mExpectedSelStart - start; + final int moveBy = mExpectedSelStart - start; // determine now, as mExpectedSelStart may change in + // getTextBeforeCursor final CharSequence textBeforeCursor = getTextBeforeCursor(Constants.EDITOR_CONTENTS_CACHE_SIZE + (end - start), 0); mCommittedTextBeforeComposingText.setLength(0); + // also clear composing text, otherwise we may append existing text + // this can happen when we're a little out of sync with the editor mComposingText.setLength(0); if (!TextUtils.isEmpty(textBeforeCursor)) { + // The cursor is not necessarily at the end of the composing text, but we have + // its + // position in mExpectedSelStart and mExpectedSelEnd. In this case we want the + // start + // of the text, so we should use mExpectedSelStart. In other words, the + // composing + // text starts (mExpectedSelStart - start) characters before the end of + // textBeforeCursor final int indexOfStartOfComposingText = Math.max(textBeforeCursor.length() - moveBy, 0); mComposingText.append(textBeforeCursor.subSequence(indexOfStartOfComposingText, textBeforeCursor.length())); @@ -634,6 +838,20 @@ public void setComposingRegion(final int start, final int end) { } } + /** + * Set the composing text with background color. + * + * @param newComposingText the composing text to be set + * @param newCursorPosition the new cursor position + * @param backgroundColor the background color to be set to the composing + * text. Set + * {@link Color#TRANSPARENT} to disable the background + * color. + * @param coloredTextLength the length of text, in Java chars, which should be + * rendered with + * the given background color. + * @return Params match InputLogic#setComposingTextInternalWithBackgroundColor + */ public boolean setComposingTextWithBackgroundColor(final CharSequence newComposingText, final int newCursorPosition, final int backgroundColor, final int coloredTextLength) { final CharSequence composingTextToBeSet; @@ -650,17 +868,9 @@ public boolean setComposingTextWithBackgroundColor(final CharSequence newComposi return setComposingText(composingTextToBeSet, newCursorPosition); } + // return whether the text was (probably) set correctly + // unfortunately this is necessary in some cases public boolean setComposingText(final CharSequence text, final int newCursorPosition) { - // --- ADDED BLACKLIST CONTROL --- - if (text != null && isWordBlocked(text.toString())) { - mComposingText.setLength(0); - if (isConnected()) { - mIC.setComposingText("", 1); - } - return false; - } - // ------------------------------------ - if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) @@ -669,26 +879,32 @@ public boolean setComposingText(final CharSequence text, final int newCursorPosi mExpectedSelEnd = mExpectedSelStart; mComposingText.setLength(0); mComposingText.append(text); - + // TODO: support values of newCursorPosition != 1. At this time, this is never + // called with + // newCursorPosition != 1. if (isConnected()) { if (DebugFlags.DEBUG_ENABLED) - Log.d(TAG, "setting composing text of length " + text.length()); + Log.d(TAG, "setting composing text of length " + text.length()); // don't log actual text mIC.setComposingText(text, newCursorPosition); - if (!Settings.getValues().mInputAttributes.mShouldShowSuggestions && text.length() > 0) { - final CharSequence lastChar = mIC.getTextBeforeCursor(1, 0); - if (lastChar == null || lastChar.length() == 0 - || text.charAt(text.length() - 1) != lastChar.charAt(0)) { - Log.w(TAG, "did set " + text + ", but got " + mIC.getTextBeforeCursor(text.length(), 0) - + " as last character"); - return false; - } - } } if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); return true; } + /** + * Set the selection of the text editor. + *

+ * Calls through to {@link InputConnection#setSelection(int, int)}. + * + * @param start the character index where the selection should start. + * @param end the character index where the selection should end. + * @return Returns true on success, false on failure: either the input + * connection is no longer + * valid when setting the selection or when retrieving the text cache at + * that point, or + * invalid arguments were passed. + */ public boolean setSelection(final int start, final int end) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); @@ -727,7 +943,9 @@ public boolean performContextMenuAction(final int actionId) { public void selectAll() { if (!isConnected()) return; - if (mExpectedSelStart != mExpectedSelEnd && mExpectedSelStart == 0 && !hasTextAfterCursor()) { + if (mExpectedSelStart != mExpectedSelEnd && mExpectedSelStart == 0 && !hasTextAfterCursor()) { // all text + // already + // selected mIC.setSelection(mExpectedSelEnd, mExpectedSelEnd); } else mIC.performContextMenuAction(android.R.id.selectAll); @@ -736,7 +954,7 @@ public void selectAll() { public void selectWord(final SpacingAndPunctuations spacingAndPunctuations, final String script) { if (!isConnected()) return; - if (mExpectedSelStart != mExpectedSelEnd) { + if (mExpectedSelStart != mExpectedSelEnd) { // already something selected mIC.setSelection(mExpectedSelEnd, mExpectedSelEnd); return; } @@ -755,9 +973,11 @@ public void copyText(final boolean getSelection) { } CharSequence text = null; if (getSelection) { + // copy selected text, and if nothing is selected copy the whole text text = getSelectedText(InputConnection.GET_TEXT_WITH_STYLES); } if (text == null || text.length() == 0) { + // we have no selection, get the whole text final ExtractedTextRequest etr = new ExtractedTextRequest(); etr.flags = InputConnection.GET_TEXT_WITH_STYLES; etr.hintMaxChars = Integer.MAX_VALUE; @@ -780,6 +1000,10 @@ public void commitCorrection(final CorrectionInfo correctionInfo) { checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug(); + // This has no effect on the text field and does not change its content. It only + // makes + // TextView flash the text for a second based on indices contained in the + // argument. if (isConnected()) { mIC.commitCorrection(correctionInfo); } @@ -794,7 +1018,9 @@ public void commitCompletion(final CompletionInfo completionInfo) { checkConsistencyForDebug(); CharSequence text = completionInfo.getText(); if (DebugFlags.DEBUG_ENABLED) - Log.d(TAG, "committing completion of length " + text.length()); + Log.d(TAG, "committing completion of length " + text.length()); // don't log actual text + // text should never be null, but just in case, it's better to insert nothing + // than to crash if (null == text) text = ""; mCommittedTextBeforeComposingText.append(text); @@ -820,6 +1046,11 @@ public NgramContext getNgramContextFromNthPreviousWord( final int checkLength = NUM_CHARS_TO_GET_BEFORE_CURSOR - 1; final String reference = prev.length() <= checkLength ? prev.toString() : prev.subSequence(prev.length() - checkLength, prev.length()).toString(); + // TODO: right now the following works because mComposingText holds the part of + // the + // composing text that is before the cursor, but this is very confusing. We + // should + // fix it. final StringBuilder internal = new StringBuilder() .append(mCommittedTextBeforeComposingText).append(mComposingText); if (internal.length() > checkLength) { @@ -833,6 +1064,14 @@ public NgramContext getNgramContextFromNthPreviousWord( return NgramContextUtils.getNgramContextFromNthPreviousWord(prev, spacingAndPunctuations, n); } + /** + * Returns the text surrounding the cursor. + * + * @param spacingAndPunctuations the rules for spacing and punctuation + * @param script the script we consider to be writing words, as + * one of ScriptUtils.SCRIPT_* + * @return a range containing the text surrounding the cursor + */ @Nullable public TextRange getWordRangeAtCursor(final SpacingAndPunctuations spacingAndPunctuations, final String script) { @@ -859,9 +1098,11 @@ public TextRange getWordRangeAtCursor(final SpacingAndPunctuations spacingAndPun public boolean isCursorTouchingWord(final SpacingAndPunctuations spacingAndPunctuations, boolean checkTextAfter) { if (checkTextAfter && isCursorFollowedByWordCharacter(spacingAndPunctuations)) { + // If what's after the cursor is a word character, then we're touching a word. return true; } if (mComposingText.length() > 0) { + // a composing region should always count as a word return true; } return StringUtilsKt.endsWithWordCodepoint(mCommittedTextBeforeComposingText.toString(), @@ -896,14 +1137,23 @@ public boolean sameAsTextBeforeCursor(final CharSequence text) { public boolean revertDoubleSpacePeriod(final SpacingAndPunctuations spacingAndPunctuations) { if (DEBUG_BATCH_NESTING) checkBatchEdit(); + // Here we test whether we indeed have a period and a space before us. This + // should not + // be needed, but it's there just in case something went wrong. final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0); if (!TextUtils.equals(spacingAndPunctuations.mSentenceSeparatorAndSpace, textBeforeCursor)) { + // Theoretically we should not be coming here if there isn't ". " before the + // cursor, but the application may be changing the text while we are typing, so + // anything goes. We should not crash. Log.d(TAG, "Tried to revert double-space combo but we didn't find \"" + spacingAndPunctuations.mSentenceSeparatorAndSpace + "\" just before the cursor."); return false; } + // Double-space results in ". ". A backspace to cancel this should result in a + // single + // space in the text field, so we replace ". " with a single space. deleteTextBeforeCursor(2); final String singleSpace = " "; commitText(singleSpace, 1); @@ -913,9 +1163,20 @@ public boolean revertDoubleSpacePeriod(final SpacingAndPunctuations spacingAndPu public boolean revertSwapPunctuation() { if (DEBUG_BATCH_NESTING) checkBatchEdit(); + // Here we test whether we indeed have a space and something else before us. + // This should not + // be needed, but it's there just in case something went wrong. final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0); + // NOTE: This does not work with surrogate pairs. Hopefully when the keyboard is + // able to + // enter surrogate pairs this code will have been removed. if (TextUtils.isEmpty(textBeforeCursor) || (Constants.CODE_SPACE != textBeforeCursor.charAt(1))) { + // We may only come here if the application is changing the text while we are + // typing. + // This is quite a broken case, but not logically impossible, so we shouldn't + // crash, + // but some debugging log may be in order. Log.d(TAG, "Tried to revert a swap of punctuation but we didn't " + "find a space just before the cursor."); return false; @@ -926,22 +1187,79 @@ public boolean revertSwapPunctuation() { return true; } + /** + * Heuristic to determine if this is an expected update of the cursor. + *

+ * Sometimes updates to the cursor position are late because of their + * asynchronous nature. + * This method tries to determine if this update is one, based on the values of + * the cursor + * position in the update, and the currently expected position of the cursor + * according to + * LatinIME's internal accounting. If this is not a belated expected update, + * then it should + * mean that the user moved the cursor explicitly. + * This is quite robust, but of course it's not perfect. In particular, it will + * fail in the + * case we get an update A, the user types in N characters so as to move the + * cursor to A+N but + * we don't get those, and then the user places the cursor between A and A+N, + * and we get only + * this update and not the ones in-between. This is almost impossible to achieve + * even trying + * very very hard. + * + * @param oldSelStart The value of the old selection in the update. + * @param newSelStart The value of the new selection in the update. + * @param oldSelEnd The value of the old selection end in the update. + * @param newSelEnd The value of the new selection end in the update. + * @return whether this is a belated expected update or not. + */ public boolean isBelatedExpectedUpdate(final int oldSelStart, final int newSelStart, final int oldSelEnd, final int newSelEnd, final int composingSpanStart, final int composingSpanEnd) { + // This update is "belated" if we are expecting it. That is, mExpectedSelStart + // and + // mExpectedSelEnd match the new values that the TextView is updating TO. if (mExpectedSelStart == newSelStart && mExpectedSelEnd == newSelEnd) { if (composingSpanEnd - composingSpanStart < mComposingText.length()) { + // composing span is smaller than expected, maybe changed by the app (see #1141) + // larger composing span is ok, because mComposingText only contains the word up + // to the cursor return false; } return true; } + // This update is not belated if mExpectedSelStart and mExpectedSelEnd match the + // old + // values, and one of newSelStart or newSelEnd is updated to a different value. + // In this + // case, it is likely that something other than the IME has moved the selection + // endpoint + // to the new value. if (mExpectedSelStart == oldSelStart && mExpectedSelEnd == oldSelEnd && (oldSelStart != newSelStart || oldSelEnd != newSelEnd)) return false; + // If neither of the above two cases hold, then the system may be having trouble + // keeping up + // with updates. If 1) the selection is a cursor, 2) newSelStart is between + // oldSelStart + // and mExpectedSelStart, and 3) newSelEnd is between oldSelEnd and + // mExpectedSelEnd, then + // assume a belated update. return (newSelStart == newSelEnd) && (newSelStart - oldSelStart) * (mExpectedSelStart - newSelStart) >= 0 && (newSelEnd - oldSelEnd) * (mExpectedSelEnd - newSelEnd) >= 0; } + /** + * Looks at the text just before the cursor to find out if it looks like a URL. + *

+ * The weakest point here is, if we don't have enough text bufferized, we may + * fail to realize + * we are in URL situation, but other places in this class have the same + * limitation and it + * does not matter too much in the practice. + */ public boolean textBeforeCursorLooksLikeURL() { return StringUtils.lastPartLooksLikeURL(mCommittedTextBeforeComposingText); } @@ -996,10 +1314,40 @@ public CharSequence textBeforeCursorUntilLastWhitespaceOrDoubleSlash() { return mCommittedTextBeforeComposingText.subSequence(startIndex, mCommittedTextBeforeComposingText.length()); } + /** + * Looks at the text just before the cursor to find out if we are inside a + * double quote. + *

+ * As with #textBeforeCursorLooksLikeURL, this is dependent on how much text we + * have cached. + * However this won't be a concrete problem in most situations, as the cache is + * almost always + * long enough for this use. + */ public boolean isInsideDoubleQuoteOrAfterDigit() { return StringUtils.isInsideDoubleQuoteOrAfterDigit(mCommittedTextBeforeComposingText); } + /** + * Try to get the text from the editor to expose lies the framework may have + * been + * telling us. Concretely, when the device rotates and when the keyboard reopens + * in the same + * text field after having been closed with the back key, the frameworks tells + * us about where + * the cursor used to be initially in the editor at the time it first received + * the focus; this + * may be completely different from the place it is upon rotation. Since we + * don't have any + * means to get the real value, try at least to ask the text view for some + * characters and + * detect the most damaging cases: when the cursor position is declared to be + * much smaller + * than it really is. + * (renamed the method, because we clearly ask the editorInfo to provide initial + * selection, no reason to complain about it + * being initial and thus possibly outdated) + */ public void tryFixIncorrectCursorPosition() { mIC = mParent.getCurrentInputConnection(); final CharSequence textBeforeCursor = getTextBeforeCursor( @@ -1007,18 +1355,46 @@ public void tryFixIncorrectCursorPosition() { final CharSequence selectedText = isConnected() ? mIC.getSelectedText(0 /* flags */) : null; if (null == textBeforeCursor || (!TextUtils.isEmpty(selectedText) && mExpectedSelEnd == mExpectedSelStart)) { + // If textBeforeCursor is null, we have no idea what kind of text field we have + // or if + // thinking about the "cursor position" actually makes any sense. In this case + // we + // remember a meaningless cursor position. Contrast this with an empty string, + // which is + // valid and should mean the cursor is at the start of the text. + // Also, if we expect we don't have a selection but we DO have non-empty + // selected text, + // then the framework lied to us about the cursor position. In this case, we + // should just + // revert to the most basic behavior possible for the next action (backspace in + // particular comes to mind), so we remember a meaningless cursor position which + // should + // result in degraded behavior from the next input. + // Interestingly, in either case, chances are any action the user takes next + // will result + // in a call to onUpdateSelection, which should set things right. mExpectedSelStart = mExpectedSelEnd = Constants.NOT_A_CURSOR_POSITION; } else { final int textLength = textBeforeCursor.length(); if (textLength < Constants.EDITOR_CONTENTS_CACHE_SIZE && (textLength > mExpectedSelStart || mExpectedSelStart < Constants.EDITOR_CONTENTS_CACHE_SIZE)) { + // It should not be possible to have only one of those variables be + // NOT_A_CURSOR_POSITION, so if they are equal, either the selection is + // zero-sized + // (simple cursor, no selection) or there is no cursor/we don't know its pos final boolean wasEqual = mExpectedSelStart == mExpectedSelEnd; mExpectedSelStart = textLength; + // We can't figure out the value of mLastSelectionEnd :( + // But at least if it's smaller than mLastSelectionStart something is wrong, + // and if they used to be equal we also don't want to make it look like there is + // a + // selection. if (wasEqual || mExpectedSelStart > mExpectedSelEnd) { mExpectedSelEnd = mExpectedSelStart; } } else { + // better re-read the correct position instead of guessing from incomplete data reloadCursorPosition(); } } @@ -1041,6 +1417,9 @@ public int getExpectedSelectionEnd() { return mExpectedSelEnd; } + /** + * @return whether there is a selection currently active. + */ public boolean hasSelection() { return mExpectedSelEnd != mExpectedSelStart; } @@ -1049,6 +1428,25 @@ public boolean isCursorPositionKnown() { return INVALID_CURSOR_POSITION != mExpectedSelStart; } + /** + * Requests the editor to call back + * {@link InputMethodManager#updateCursorAnchorInfo}. + * + * @param enableMonitor {@code true} to request the editor to call + * back the method whenever the + * cursor/anchor position is changed. + * @param requestImmediateCallback {@code true} to request the editor to call + * back the method + * as soon as possible to notify the current + * cursor/anchor position to the input method. + * @return {@code true} if the request is accepted. Returns {@code false} + * otherwise, which + * includes "not implemented" or "rejected" or "temporarily unavailable" + * or whatever which + * prevents the application from fulfilling the request. (TODO: Improve + * the API when it turns + * out that we actually need more detailed error codes) + */ public boolean requestCursorUpdates(final boolean enableMonitor, final boolean requestImmediateCallback) { mIC = mParent.getCurrentInputConnection(); if (!isConnected()) { @@ -1058,20 +1456,4 @@ public boolean requestCursorUpdates(final boolean enableMonitor, final boolean r | (requestImmediateCallback ? InputConnection.CURSOR_UPDATE_IMMEDIATE : 0); return mIC.requestCursorUpdates(cursorUpdateMode); } - - // --- HELPER METHOD FOR ADDED BLACKLIST CONTROL --- - /** - * NOTE: You need to connect this method to LeanType's actual blacklist logic. - * For now, it returns false as an example. - */ - private boolean isWordBlocked(String text) { - if (TextUtils.isEmpty(text)) return false; - - String normalizedWord = text.trim().toLowerCase(); - - // Example usage: - // return BlacklistManager.getInstance().isBlocked(normalizedWord); - - return false; - } } diff --git a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java index c59ddbea6..3b4127c92 100644 --- a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java +++ b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java @@ -1772,7 +1772,7 @@ private void handleSeparatorEvent(final Event event, final InputTransaction inpu * @param inputTransaction The transaction in progress. */ private void handleBackspaceEvent(final Event event, final InputTransaction inputTransaction) { - final String currentKeyboardScript = inputTransaction.getSettingsValues().mCurrentKeyboardScript; + final String currentKeyboardScript = inputTransaction.getSettingsValues().mCurrentKeyboardScript; mSpaceState = SpaceState.NONE; mDeleteCount++; @@ -1795,10 +1795,6 @@ private void handleBackspaceEvent(final Event event, final InputTransaction inpu return; } - if (mConnection.getCodePointBeforeCursor() == ' ') { - mSpaceState = SpaceState.NONE; - } - if (mLastExpandedText != null && !event.isKeyRepeat() && helium314.keyboard.latin.utils.TextExpanderUtils.INSTANCE.isBackspaceRevertsEnabled(mLatinIME)) { final int expectedCursor = mConnection.getExpectedSelectionEnd(); From 707a11f1772946ae8140c5681b581fc3bb84dedd Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 17:33:07 +0000 Subject: [PATCH 10/15] Comprehensive audit and fix for strings.xml: ensure all keys present, fix escaping, and update talkback descriptions --- .../strings-talkback-descriptions.xml | 20 +- app/src/main/res/values-tr/strings.xml | 1383 ++++++++--------- 2 files changed, 680 insertions(+), 723 deletions(-) diff --git a/app/src/main/res/values-tr/strings-talkback-descriptions.xml b/app/src/main/res/values-tr/strings-talkback-descriptions.xml index 43f3bf106..e056d13eb 100644 --- a/app/src/main/res/values-tr/strings-talkback-descriptions.xml +++ b/app/src/main/res/values-tr/strings-talkback-descriptions.xml @@ -1,14 +1,10 @@ - - - + + "Şifre tuşlarının sesli okunmasını dinlemek için kulaklık takın." "Mevcut metin: %s" "Metin girilmedi" - "%1$s, %2$s kelimesini %3$s olarak düzeltir" - "%1$s otomatik düzeltme yapar" + "%1$s, %2$s kelimesini %3$s olarak düzeltir" + "%1$s otomatik düzeltme yapar" "Öneri yok" "Bilinmeyen karakter" "Üst karakter" @@ -39,7 +35,7 @@ "Telefon modu" "Telefon sembolleri modu" "Klavye gizli" - "%s klavyesi görüntüleniyor" + "%s klavyesi görüntüleniyor" "tarih" "tarih ve saat" "e-posta" @@ -59,11 +55,13 @@ "Seyahat ve Yerler" "Etkinlik" "İfadeler" - "Büyük Harf %s" + "Büyük Harf %s" "Büyük Harf I" "Büyük Harf I, üst noktalı" "Alternatif karakterler kullanılabilir" "Alternatif karakterler yoksayılır" "Alternatif öneriler kullanılabilir" "Alternatif öneriler yoksayılır" - + Pano önerisi + Gülen yüz + \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 4297a1205..06d21a018 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,753 +1,712 @@ - + %s ms %s min - FEATURES.md\'ye git - Ana özelliklerin listesi ve klavye kılavuzu - GitHub\'da Görüntüle - Projeyi destekle - LeanType geliştirilmesini destekleyin - Hiçbiri - Ekle - Bir kelimeyi engelle - Özel düzen ekle - Eklemek için bir sözlük seç .dict biçimindeki sözlükler %s indirilebilir. - "Dosyadan sözlük ekle" - Kişisel sözlüğe kelime ekle - Öğrenilen kelimeleri saklamak için cihazın kişisel sözlüğünü kullan - Pano geçmişi girişini seçme - Emoji görünümünde emojiyi seçme - Sayısal tuş takımında diğer tuşlardan sonra enter veya boşluğa basılması - Sembol görünümünde diğer tuşlardan sonra enter veya boşluk tuşuna basma - HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. - Güvensiz bağlantılara izin ver + Go to FEATURES.md + List of main features and keyboard manual + View on GitHub + Sponsor project + Support the development of LeanType + None + Add + Block a word + Add custom layout + "Select a dictionary to add. Dictionaries in .dict format can be downloaded %s." + "Add dictionary from file" + Add words to personal dictionary + Use device personal dictionary to store learned words + Selecting clipboard history entry + Selecting emoji in emoji view + Pressing enter or space after other keys in numpad + Pressing enter or space after other keys in symbols view + Allow HTTP connections and ignore SSL certificate errors. Warning: exposes input to local network eavesdropping. + Allow insecure connections Google Gemini Groq - HF/OpenAI-uyumlu - Metin düzeltme için Yapay Zeka servisini seçin - Yapay Zeka Sağlayıcısı - Tüm renkleri göster - Bu ayar dahili olarak kullanılan tüm renkleri ortaya çıkarır. Renk listesi herhangi bir zamanda değişebilir. Varsayılan renk rastgeledir ve adlar çevrilmeyecektir. - LeanType Yazım Denetleyici Ayarları - Ayarlar ekranı ve klavye arayüzünün dilini değiştirin - Sistem varsayılanı - Uygulama dili - Otomatik büyük harf - Her cümlenin ilk kelimesini büyük harf yap - Kısayolları otomatik düzeltme - Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir - Otomatik düzeltme güven düzeyi - Boşluk çubuğu ve noktalama işaretleri yanlış yazılmış kelimeleri otomatik düzeltir - Agresif - Ilımlı - Kapalı - Çok agresif - Otomatik düzeltme açık - Boşluk çubuğu ve noktalama - Sadece noktalama - Sadece boşluk çubuğu - Sabitlenmiş tuşları otomatik gizle - Araç çubuğu genişletildiğinde sabitlenmiş tuşları gizle - Araç çubuğunu otomatik gizle - Öneriler kullanılabilir olduğunda araç çubuğunu gizle - SMS\'ten OTP\'yi otomatik oku - Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster - Araç çubuğunu otomatik göster - Açıldığında araç çubuğunu otomatik göster - Metin seçildiğinde araç çubuğunu otomatik göster - Metin seçildiğinde araç çubuğunu göster - Klavye açıldığında araç çubuğunu göster - Araç çubuğu tuşlarını otomatik olarak genişlet - Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet - Rengi otomatik seç - Otomatik düzeltme - Emoji sonrası otomatik boşluk - Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. - Kaydırarak yazdıktan sonra otomatik boşluk - Noktalama sonrası otomatik boşluk - Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. - Bir öneri seçildikten sonra otomatik boşluk - Kaydırarak yazmadan önce otomatik boşluk - "%s (deneysel)" - Geri tuşu otomatik düzeltmeyi geri alır - Pano Geçmişi - Sözlükler & Yazma Geçmişi - Genel Ayarlar - Düzenler - Tema & Özel Arka Planlar - Yedekleme hatası: %s - Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır - Yedekleme ve geri yükleme - Yedek geri yüklendi - Dahil edilecek öğeleri seçin: - Sonraki kelime önerileri - Öneri oluştururken önceki kelimeyi kullan - Kelime zaten engellenmiş - Önerilerden engellenen kelimeleri yönet - Yedek - Varsayılan - Dosya yükle - Geri yükle - Dosyaya kaydet - "Dil seç" - Özel düzen ekle - Ortadaki öneriyi her zaman kullan - Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. - Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? - Tümünü temizle - Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? - Panoyu temizle - Pano temizleme simgesi - Çöp kutusu - Çapraz çizgili pano taslağı - Klasik pano - Pano temizleme düğmesi için simge stilini seçin - Süpür / Hepsini temizle - Eğimli çizgiler - Son kullandığınız emojileri silmek istediğinizden emin misiniz? - Emoji geçmişini temizle - Logu temizle - Pano - Tüm geçmişi temizlemek istediğinizden emin misiniz? - Öğe bulunamadı - Sabitlenmiş öğeleri varsayılan olarak daralt - Sabitlenmiş öğeleri üstte göster - Geçmiş saklama süresi - Öğe silindi - Sonuç bulunamadı - Sabitlendi - Pano araması - Panodaki öğeleri ara... - Pano araç çubuğu tuşlarını seç - Pano geçmişini kapat - Dil seçiciyi kapat - Kompakt simgeler için sayı satırı - Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir - Önerilen ekran görüntülerini sıkıştır - Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. + HF/OpenAI-compatible + Select AI service for proofreading + AI Provider + Show all colors + This setting exposes all colors that are used internally. The list of colors may change at any time. The default is derived from the normal colors, and the names will not be translated. + LeanType Spell Checker Settings + Change the language of the settings screen and keyboard interface + System default + App Language + Auto-capitalization + Capitalize the first word of each sentence + Auto-correct shortcuts + When enabled shortcuts might be expanded by autocorrect + Auto-correction confidence + Spacebar and punctuation automatically correct mistyped words + Aggressive + Modest + Off + Very aggressive + Auto-correct on + Spacebar and punctuation + Punctuation only + Spacebar only + Auto hide pinned keys + Hide pinned keys when the toolbar is expanded + Auto hide toolbar + Hide the toolbar when suggestions become available + Auto-read OTP from SMS + Show the code from an incoming SMS as a suggestion you can tap to insert + Auto show toolbar + Auto show toolbar on open + Auto show toolbar on select + Show the toolbar when selecting text + Show the toolbar when the keyboard opens + Auto-span toolbar keys + Expand toolbar keys to fill available free space + Choose color automatically + Auto-correction + Autospace after emoji + Automatically insert space after emoji when typing a new word + Autospace after gesture typing a word + Autospace after punctuation + Automatically insert space after punctuation when typing a new word + Autospace after picking a suggestion + Autospace before gesture typing a word + "%s (experimental)" + Backspace reverts autocorrect + Clipboard History + Dictionaries & Typing History + General Settings + Layouts + Theme & Custom Backgrounds + Backup error: %s + Save or load from file. Warning: restore will overwrite existing data + Backup and restore + Backup restored + Select items to include: + Next-word suggestions + Use the previous word in making suggestions + Word is already blocked + Manage words blocked from suggestions + Backup + Default + Load file + Restore + Save to file + "Select language" + Add custom layout + Always use middle suggestion + On pressing space or punctuation, the middle suggestion will be entered + Unknown library file. Are you sure you got it from a trusted source and it is for \'%s\'? + Clear All + Are you sure you want to unblock all words? + Clear clipboard + Clear clipboard icon + Trash bin + Outline clipboard with slash + Classic clipboard + Select the icon style for the clear clipboard button + Sweep / Clear all + Slanted lines + Are you sure you want to clear your recently used emojis? + Clear emoji history + Clear log + Clipboard + Are you sure you want to clear all history? + No items found + Fold pinned items by default + Show pinned items on top + History retention time + Item deleted + No results found + Pinned + Clipboard search + Search clips... + Select clipboard toolbar keys + Close clipboard history + Close language selector + Compact symbols number row + Replace first row of symbols instead of adding a separate row + Compress screenshot suggestions + Reduce quality and size of screenshot suggestions to save space https://api.openai.com/v1/chat/completions https://generativelanguage.googleapis.com/v1beta/models?key=%1$s https://api.groq.com/openai/v1/chat/completions https://api.groq.com/openai/v1/models @android:string/copy - Panoya kopyala - Numaralandırılmış araç çubuğu tuşlarını kendi istemlerinizle özelleştirin - Özel Yapay Zeka tuşları - Dosyadan özel emoji yazı tipi ayarla - Dosyadan özel yazı tipi seç - Özel alt tür - Arka plan görüntüsünü ayarla - Arka plan görüntüsünü ayarla (yatay) - Para birimlerini özelleştir - Ana ve en fazla 6 ikincil para birimi simgesini boşlukla ayrılmış olarak ayarlayın - Simgeleri özelleştir - Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak istiyor musunuz? - Tüm özelleştirilmiş tuş kodları gerçekten silinsin mi? - Araç çubuğu tuş kodlarını özelleştir + Copy to Clipboard + Customize numbered toolbar keys with your own prompts + Custom AI Keys + Set custom emoji font from file + Set custom font from file + Custom subtype + Set background image + Set background image (landscape) + Customize currencies + Set main and up to 6 secondary currency symbols, separated with space + Customize icons + Really reset all customized icons? + Really clear all customized key codes? + Customize toolbar key codes @android:string/cut - Otomatik gündüz/gece modu - Görünüm sistem ayarlarını takip edecek - Gün - Gün veya gece modu için görüntü ayarlansın mı? - Gece - Sil - Gerçekten %s silinsin mi? - İndirilen modeli sil - Özel düzen %s gerçekten silinsin mi? - Kaydırarak silme - Silme tuşundan kaydırma yaparak aynı anda daha büyük metin parçalarını seçip silebilirsiniz. - Kapat - Sözlük indirilebilir - Ek sözlükler - Hata: Seçilen dosya geçerli bir sözlük dosyası değil - Hata: komut dosyası bu klavyeyle uyumlu değil - "buradan" - "Sözlük dosyası yüklenirken hata oluştu" - Sözlükler - Sözlükleri tarayıcınızda doğrudan göz atın veya indirin - Sözlük Deposu - Güncelleme var - Yok - Özel tuş kodu seçeneği kullanıldığında doğrudan geçilecek giriş yöntemi - Doğrudan geçiş hedefi (IME) - Birden çok birleşik kelimeden oluşan önerileri engelle (Türkçe için önerilir) - Çok kelimeli önerileri devre dışı bırak - Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. - Tüm ağ erişimini devre dışı bırak - Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir - "tartışma bölümü" - Aşağı - İndir - İndirme başarısız oldu - İndiriliyor… - Engellenen kelimeler - Ham düzeni düzenlemek için dokun - Kişisel sözlük + Auto day/night mode + Appearance will follow system settings + Day + Set image for day or night mode? + Night + Delete + Really delete %s? + Delete downloaded model + Really delete custom layout %s? + Delete swipe + Perform a swipe from the delete key to select and remove bigger portions of text at once + Close + Dictionary available + Add-on dictionaries + "Error: Selected file is not a valid dictionary file" + "Error: script not compatible with this keyboard" + "here" + "Error loading dictionary file" + Dictionaries + Browse or download dictionaries directly in your browser + Dictionary repository + Update available + None + Input Method to switch to directly when using the custom keycode option + Direct Switch Target IME + Prevent suggestions that consist of multiple combined words (recommended for Turkish) + Disable multi-word suggestions + Internal lock: Blocks all network requests from this app. To revoke permission entirely, use system App Info settings. + Disable all network access + Warning: Disabling this setting will clear learned data + "discussion section" + Down + Download + Download failed + Downloading… + Blocked words + Tap to edit raw layout + Personal dictionary Emoji - Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. - Pano geçmişini etkinleştir - Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır - Bölünmüş klavyeyi etkinleştir - Bölünmüş klavyeyi etkinleştir (yatay) - Dosya okunamıyor - İlk kelime önerileri - Cümlenin başında girdi yoksa önerileri göster - Kayan - Klavye taşımak için sürükleyin - Klavye boyutunu değiştirmek için sürükleyin - Parolalar hariç tüm metin alanlarında cümle başı büyük harfi zorla - Otomatik büyük harf kullanımını zorla - Tam sola - Tam sağa - API anahtarını girin - API anahtarı testi başarısız: %s - Metin düzeltme için Google Gemini API anahtarınızı girin - Gemini API Anahtarı - API anahtarı geçerli! - Metin düzeltme için AI modelini seçin - Gemini Modeli - LeanType ayarlarında ağ erişimi devre dışı bırakıldı - API Anahtarını Test Et - API anahtarı test ediliyor… - Hızlı yazma bekleme süresi - Her zaman anında başla - Kaydırma sırasında önizlemeyi hareket ettir - Kayan önizleme - Kaydırırken önerilen kelimeyi göster - Dinamik kayan önizleme - Kaydırarak yazmayı etkinleştir - Harflerin üzerinde kaydırarak bir kelime girin - Kaydırarak yazma yöntemi - Yedek motor (saf Java) - Yerel kütüphane (swypelib gerektirir) - Kaydırarak yazma için algoritma seçin - Kaydırma izini göster - İfade kaydırma - Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin - Kaydırma izi görünme süresi - API Anahtarı Al - "Renkleri %s bölümünde bulabilir ve paylaşabilirsiniz." - Groq Anahtarını Al - API Belirteci Al - "Düzenleri %s bölümünde bulabilir ve paylaşabilirsiniz." + An emoji dictionary is required for this feature to work. Dictionaries in .dict format can be downloaded %s. + Enable clipboard history + If disabled, clipboard key will paste clipboard content if any + Enable split keyboard + Enable split keyboard (landscape) + Cannot read file + First-word suggestions + Show suggestions when there is no input at the start of a sentence + Float + Drag to move keyboard + Drag to resize keyboard + Force sentence capitalization on all text fields except passwords + Force auto-capitalization + Full left + Full right + Enter API key + API key test failed: %s + Enter your Google Gemini API key for proofreading + Gemini API Key + API key is valid! + Select the AI model for proofreading + Gemini Model + Network access is disabled in LeanType settings + Test API Key + Testing API key… + Rapid typing cooldown + Always start instantly + Move the preview during a gesture + Floating preview + See the suggested word while gesturing + Dynamic floating preview + Enable gesture typing + Input a word by sliding through the letters + Gesture typing method + Fallback engine (pure Java) + Native library (requires swypelib) + Choose algorithm for swipe typing + Show gesture trail + Phrase gesture + Input spaces during gestures by gliding to the space key + Gesture trail lifespan + Get API Key + "You can find and share colors in the %s." + Get Groq Key + Get API Token + "You can find and share layouts in the %s." GNU General Public License v3.0 - API anahtarını girin - Groq API anahtarınızı girin - API Jetonu - El yazısı - El yazısı modeli silindi - Eklentiyi yükle - El yazısı eklentisi gerekli - Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. - ► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevler sağlar: <br> -\n\t• pano &#65515; yapıştır <br> -\n\t• sola/sağa taşı &#65515; sözcük sola/sağa <br> -\n\t• yukarı/aşağı taşı &#65515; sayfa yukarı/aşağı <br> -\n\t• sözcük sola/sağa &#65515; satır başı/sonu <br> -\n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> -\n\t• kopyala &#65515; kes <br> -\n\t• sözcük seç &#8596; tümünü seç <br> -\n\t• geri al &#8596; yinele <br> <br> -\n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, bunları öneri şeridine sabitler. <br> <br> -\n► Pano Görünümü, Emoji Görünümü, Tek Elle Mod, Ayarlar veya Dil Değiştirme\'ye erişmek için Virgül tuşuna uzun basın: <br> -\n\t• İlgili tuş etkinse Emoji Görünümü ve Dil Değiştirme kaybolur; <br> -\n\t• Bazı düzenlerde bu, Virgül\\\'ün tuşu değil, aynı konumdaki tuştur (ör. Dvorak\\\'ta \\\'q\\\' kullanılır). <br> <br> -\n► Gizli mod etkinleştirildiğinde hiçbir sözcük öğrenilmez ve son kullanılanlara emoji eklenmez. <br> <br> -\n► Araç çubuğuna erişmek için Gizli mod simgesine basın. <br> <br> -\n► Kaydırmalı tuş girişi: Tek bir büyük harf yazmak için Shift tuşundan başka bir tuşa kaydırın: <br> -\n\t• Bu, semboller klavyesinden tek bir sembol yazmak üzere \\\'?123\\\' tuşu ve ilgili tuşlar için de geçerlidir. <br> <br> -\n► Önceki klavyeye dönmek için Shift veya sembol tuşunu basılı tutun, bir ya da daha fazla tuşa basın ve ardından Shift veya sembol tuşunu bırakın. <br> <br> -\n► Daha fazla öneriyi ve bu öneriyi kaldırmak için silme düğmesini göstermek üzere öneri şeridindeki bir öneriye uzun basın. <br> <br> -\n► Daha fazla öneriyi açmak için bir öneriden yukarı kaydırın ve onu seçmek için önerinin üzerinde bırakın. <br> <br> -\n► Pano geçmişindeki bir girişi sabitlemek için ona uzun basın (sabitlemeyi kaldırana kadar panoda tutulur). <br> <br> -\n► Pano\\\'da bir girdiyi kaldırmak için sola kaydırın (sabitlenmiş değilse). <br> <br> -\n► Metni seçin ve sözcükleri BÜYÜK HARF, küçük harf ve Baş Harfleri Büyük arasında değiştirmek için Shift tuşuna basın. <br> <br> -\n► Bir dosya gezgininde açarak sözlük ekleyebilirsiniz: <br> -\n\t• Bu yalnızca <i>content-uris</i> ile çalışır; <i>file-uris</i> ile çalışmaz. Bu nedenle bazı dosya gezginlerinde çalışmayabilir. <br> <br> -\n► Kök erişimiyle elle yedekleme yapan kullanıcılar için: <br> -\n\t• Android 7\'den itibaren uygulama %s kullandığından, paylaşılan tercihler dosyası varsayılan konumda değildir. Bu, ayarların cihaz kilidi açılmadan önce, örneğin açılışta, okunabilmesi için gereklidir; <br> -\n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumundadır; ancak bu, cihaza ve Android sürümüne bağlı olabilir. <br> <br> -\n<i><b>Hata ayıklama modu / hata ayıklama APK\'sı</b></i> <br> <br> -\n► Kaynak sözlüğü göstermek için bir öneriye uzun basın. <br> <br> -\n► Hata ayıklama APK\'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsiniz; ancak günlük dosyasına sözlük dökme dışında faydası sınırlıdır. <br> -\n\t• Yayın APK\'sında, <i>Hakkında</i> bölümündeki sürüme birkaç kez dokunmanız gerekir; ardından <i>Gelişmiş Tercihler</i> içindeki hata ayıklama ayarlarını bulabilirsiniz. <br> -\n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür. <br> <br> -\n► Uygulama çökerse, Ayarlar uygulamasını açtığınızda çökme günlüklerini isteyip istemediğiniz sorulur. <br> <br> -\n► Çok dilli yazma kullanılırken boşluk çubuğunda, geçerli kullanılan dili belirlemek için kullanılan bir güven değeri gösterilir. <br> <br> -\n► Önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür (devre dışı bırakılabilir). - Gözden kaçabilecek özellikleri göster - cihaz korumalı depolama - Gizli özelliklerin açıklaması - İpucu kaynağını seç + Enter API key + Enter your Groq API key + API Token + Handwriting + Handwriting model deleted + Load Plugin + Handwriting plugin required + Please load the handwriting plugin library to enable drawing recognition. + ► Long-pressing pinned toolbar keys results in additional functionality: <br>\n\n\t• clipboard &#65515; paste <br>\n\n\t• move left/right &#65515; word left/right <br>\n\n\t• move up/down &#65515; page up/down <br>\n\n\t• word left/right &#65515; line start/end <br>\n\n\t• page up/down &#65515; page start/end <br>\n\n\t• copy &#65515; cut <br>\n\n\t• select word &#8596; select all <br>\n\n\t• undo &#8596; redo <br> <br>\n\n► Long-pressing keys in the suggestion strip toolbar pins them to the suggestion strip. <br> <br>\n\n► Long-press the Comma-key to access Clipboard View, Emoji View, One-handed Mode, Settings, or Switch Language: <br>\n\n\t• Emoji View and Language Switch will disappear if you have the corresponding key enabled; <br>\n\n\t• For some layouts it\\\'s not the Comma-key, but the key at the same position (e.g. it\\\'s \\\'q\\\' for Dvorak layout). <br> <br>\n\n► When incognito mode is enabled, no words will be learned, and no emojis will be added to recents. <br> <br>\n\n► Press the Incognito icon to access the toolbar. <br> <br>\n\n► Sliding key input: Swipe from shift to another key to type a single uppercase key: <br>\n\n\t• This also works for the \\\'?123\\\' key to type a single symbol from the symbols keyboard, and for related keys. <br> <br>\n\n► Hold shift or symbol key, press one or more keys, and then release shift or symbol key to return to the previous keyboard. <br> <br>\n\n► Long-press a suggestion in the suggestion strip to show more suggestions, and a delete button to remove this suggestion. <br> <br>\n\n► Swipe up from a suggestion to open more suggestions, and release on the suggestion to select it. <br> <br>\n\n► Long-press an entry in the clipboard history to pin it (keep it in clipboard until you unpin). <br> <br>\n\n► Swipe left in clipboard view to remove an entry (except when it\\\'s pinned) <br> <br>\n\n► Select text and press shift to switch between uppercase, lowercase and capitalize words. <br> <br>\n\n► You can add dictionaries by opening them in a file explorer: <br>\n\n\t• This only works with <i>content-uris</i> and not with <i>file-uris</i>, meaning that it may not work with some file explorers. <br> <br>\n\n► For users doing manual backups with root access: <br>\n\n\t• Starting at Android 7, the shared preferences file is not in the default location, because the app is using %s. This is necessary so the settings can be read before the device is unlocked, e.g. at boot; <br>\n\n\t• The file is located in /data/user_de/0/package_id/shared_prefs/ though this may depend on the device and Android version. <br> <br>\n\n<i><b>Debug mode / debug APK</b></i> <br> <br>\n\n► Long-press a suggestion to show the source dictionary. <br> <br>\n\n► When using debug APK, you can find Debug Settings within the Advanced Preferences,though the usefulness is limited except for dumping dictionaries into the log. <br>\n\n\t• For a release APK, you need to tap the version in <i>About</i> several times, then you can find debug settings in <i>Advanced Preferences</i>. <br>\n\n\t• When enabling <i>Show suggestion infos</i>, suggestions will have some tiny numbers on top showing some internal score and source dictionary. <br> <br>\n\n► In the event of an application crash, you will be prompted whether you want the crash logs when you open the Settings. <br> <br>\n\n► When using multilingual typing, space bar will show an confidence value used for determining the currently used language. <br> <br>\n\n► Suggestions will have some tiny numbers on top showing some internal score and source dictionary (can be disabled). + Show features that may go unnoticed + device protected storage + Description of hidden features + Select hint source https://api.groq.com/openai/v1/chat/completions - API uç nokta URL\'si - API Uç Noktası + API endpoint URL + API Endpoint model-name - Groq modelini seçin + Select Groq model Model - Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. - API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. - API anahtarını girin - HuggingFace veya OpenAI-uyumlu API anahtarınızı girin - API Jetonu - Simge stili - Bu uygulama resim yapıştırmayı desteklemiyor + No model configured. Go to Settings → AI integration. + API token not set. Go to Settings → AI integration. + Enter API key + Enter your HuggingFace or OpenAI-compatible API key + API Token + Icon style + This app does not support image pasting LeanType - LeanType Ayarları - Anında otomatik boşluk - Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. - Gizli modu zorunlu kıl - Satır içi emoji araması - Bir kelimenin önünde \':\' varsa yalnızca emojileri öner - Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. - Yüklendi - Dahili ana sözlük - Tuş kenarlıkları - Tuş kodu - Düzen - Çöp kutusu - Sil - Bitti - Giriș - Git + LeanType Settings + Immediate auto-space + Commit space instantly when picking a suggestion to prevent delay on next typed letter + Force incognito mode + Inline emoji search + Suggest only emojis when a word is preceded by a colon + Insecure HTTP connection blocked. Enable \'Allow Insecure Connections\' in AI settings. + Installed + Internal main dictionary + Key borders + Key code + Layout + Bin + Delete + Done + Enter + Go @string/show_language_switch_key - İleri - Duraklat - Önceki - Tek elle modu yeniden boyutlandır - Ara - Gönder + Next + Pause + Prev + Resize one-handed mode + Search + Send Shift Caps lock - Shift (kaydırılmış) - Ses girişi devre dışı - Boşluk (sayı düzeni) - Tek elle modu sonlandır - Tek elle kullanım tarafını değiştir - Sekme - Araç çubuğunu göster/gizle - Bekleyin - Sıfır genişlikli birleştirici - Sıfır genişlikli birleştirmeyen - Yatay - Diller & Düzenler - Dil değiştirme tuşu davranışı - Her ikisini de değiştir - Diğer giriş yöntemlerine geç - Diller - Pano alt satırı - Eylem tuşlu Pano alt satırı - Özel düzen 1 - Özel düzen 2 - Özel düzen 3 - Özel düzen 4 - Özel düzen 5 - Emoji alt satırı - Eylem tuşlu Emoji alt satırı - Düzen hatası: %s - Fonksiyon tuşları - Fonksiyon tuşları (Khipro) - İşlevsel tuşlar (Semboller) - İşlevsel tuşlar (Daha fazla sembol) - Fonksiyon tuşları (büyük ekran) - Uyarı: düzen şu anda kullanılıyor - Rakamlar - Sayı satırı - Sayı satırı (temel) - Sayısal tuş takımı - Sayısal tuş takımı (yatay) - Telefon - Telefon sembolleri - Semboller - Semboller (Arapça) - Daha fazla sembol - Sol - Yeni bir sözlük ekle:\n1. Obtain a .dict file for your language.\n2. Tap \"Manage Dictionaries\".\n3. Use the plus (+) button to import the file. - Sözlük Yükleme Kılavuzu - Ana Sözlükler - Emoji Kütüphaneleri - Hareketle Yazma Kütüphanesi - El Yazısı Giriş Eklentisi - Hareketle yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. - Sözlük Kütüphaneleri - Aktif - indirilmedi - Açık kaynak lisansı - Yükle - Kaydırarak yazma kütüphanesini yükle - Kütüphaneyi sil - Kütüphaneyi indir - Kütüphaneyi yükle - İndirme başarısız: %s - İndirme tamamlandı! Yeniden başlatılıyor… - Kaydırma jest kütüphanesi indiriliyor… - Bu kütüphaneye \'%s\' için ihtiyacınız olacak. Uyumsuz kütüphaneler Kaydırarak yazma kullanılırken çökme yapabilir. - \n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen kütüphaneyi kullanın. - Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın - El yazısı eklentisini yükle - Eklentiyi sil - Eklenti APK\'sını yükle - El yazısı eklentisi APK\'sı yüklenemedi - Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. - El yazısı eklentisi başarıyla içe aktarıldı - El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın - Çeviri eklentisini yükle - Eklentiyi sil - Çeviri eklentisi APK\'sı yüklenemedi - Çeviri eklentisi başarıyla içe aktarıldı - Çeviri motorunu etkinleştirmek için bir APK eklentisi sağlayın - Sözlüğü bulunan diller - Sayı satırını yerelleştir - Yerel rakamları Latin rakamlara tercih et - Log temizlendi - Log seçenekleri - Uzun basma kodu - Sadece ana renkleri göster - Ana sözlük - Uyumlu bir formatta dosya seçin. Formatlar hakkında bilgi %s adresinde mevcuttur. - Daha fazla otomatik düzeltme - Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar - Daha fazla renk göster - Daha fazla tuş - Geçersiz ad - En büyük - En küçük - Orta - Büyük - Küçük - Öğrenilen kelime güçlendirme seviyesi - Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. - Öğrenilen kelimeler için bağlam eşleşmesi gerekli - Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner - "Bir daha gösterme" - "Sözlük olmadan yalnızca daha önce girdiğin metin için öneriler alırsın.<br> -\n %1$s sözlüklerini indirebilir veya \"%2$s\" için bir sözlüğün doğrudan %3$s indirilip indirilemeyeceğini kontrol edebilirsin." - Sayı satırı - Sayı satırında ipuçlarını göster - Simgeler görünümünde sayı satırını göster - Sayı satırını her zaman göster + Shift (shifted) + Voice input disabled + Space (number layout) + End one-handed mode + Switch one-handed mode side + Tab + Show / hide toolbar + Wait + Zero-width joiner + Zero-width non-joiner + Landscape + Languages & Layouts + Language switch key behavior + Switch both + Switch to other input methods + Languages + Clipboard bottom row + Clipboard bottom row with action key + Custom layout 1 + Custom layout 2 + Custom layout 3 + Custom layout 4 + Custom layout 5 + Emoji bottom row + Emoji bottom row with action key + Layout error: %s + Functional keys + Functional keys (Khipro) + Functional keys (Symbols) + Functional keys (More symbols) + Functional keys (large screen) + Warning: layout is in currently use + Numbers + Number row + Number row (basic) + Numpad + Numpad (landscape) + Phone + Phone symbols + Symbols + Symbols (Arabic) + More symbols + Left + To add a new dictionary:\n1. Obtain a .dict file for your language.\n2. Tap \"Manage Dictionaries\".\n3. Use the plus (+) button to import the file. + Dictionary Loading Guide + Main Dictionaries + Emoji Libraries + Gesture Typing Library + Handwriting Input Plugin + Manage gesture typing library, dictionaries, and emoji libraries. + Libraries + Active + Not Installed + Open-source license + Load + Load gesture typing library + Delete library + Download library + Load library + Download failed: %s + Download complete! Restarting… + Downloading gesture library… + You will need the library for \'%s\'. Incompatible libraries may crash when using gesture typing.\n \n\nWarning: loading external code can be a security risk. Only use a library from a source you trust. + Provide a native library to enable gesture typing + Load handwriting plugin + Delete plugin + Load plugin APK + Failed to load handwriting plugin APK + Provide a handwriting plugin APK.\n\nWarning: loading external code can be a security risk. Only use a plugin from a source you trust. + Handwriting plugin imported successfully + Provide an APK plugin to enable handwriting input + Load translation plugin + Delete plugin + Failed to load translation plugin APK + Translation plugin imported successfully + Provide an APK plugin to enable translation engine + Languages with dictionaries + Localize number row + Prefer localized over latin numbers + Log cleared + Log options + Long press code + Show main colors only + Main dictionary + Select a file in a compatible format. Information about the formats is available %s. + More auto-correction + Auto-correct even when not explicitly requested by the input field + Show more colors + More keys + Invalid name + Largest + Smallest + Medium + Large + Small + Learned word boost level + Set score priority boost strength for learned and personal dictionary entries + Require context match for learned words + Only suggest learned words when the preceding word context matches + "Don\'t show again" + "Without a dictionary, you will only get suggestions for text you entered before.<br>\n You can download dictionaries %1$s." + Number row + Show hints on number row + Show number row in symbols view + Always show number row @string/layout_numpad - Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) - Modeli hafızada tut - Özel (%1$d token) - Özel… - Oluşturulan düzeltmenin maksimum uzunluğu - Çevrimdışı Yapay Zeka Maksimum Token Sayısı - En olası token\'a göreli minimum olasılık eşiği + Keep the offline AI model in memory to avoid reloading delay (uses more RAM) + Keep model loaded + Custom (%1$d tokens) + Custom… + Maximum length of the generated correction + Offline AI Max Tokens + Minimum probability threshold relative to most likely token Min-P - Yerel LLM\'yi yönet - Çevrimdışı Model - Model üretirse akıl yürütme sürecini ve içsel düşünme token\'larını göster - Düşünme sürecini göster - Rastgeleliği kontrol eder: daha düşük değerler daha odaklı ve öngörülebilir sonuçlar üretir - Sıcaklık - Seçimleri en olası K token ile sınırlar + Manage local LLM + Offline Model + Display reasoning process and internal thinking tokens if the model generates them + Show Thinking + Controls randomness: lower is more focused and deterministic + Temperature + Limits choices to K most probable tokens Top-K - Kelime çeşitliliğini kontrol eder: daha düşük değerler daha az olası seçenekleri eler - Top-P (Çekirdek Örnekleme) - Tek elle modu - Sistem Uygulama bilgilerini aç - İzinleri ve pil kullanımını Android ayarlarında yönetin - Sayfa aşağı - Sayfa sonu - Sayfa başı - Sayfa yukarı + Controls diversity of vocabulary: lower cuts off less likely options + Top-P (Nucleus Sampling) + One-handed mode + Open System App Info + Manage permissions and battery usage in Android settings + Page down + Page end + Page start + Page up @android:string/paste - Girdi tamamlandığında yüzen klavyeyi gizleme - Yüzen klavyeyi açık tut - Girdi tamamlandığında metin düzenleme modundan çıkma - Metin düzenleme modunu koru - Sabitlenmiş araç çubuğu tuşlarını seçin + Do not hide floating keyboard when input finishes + Persist floating keyboard + Do not exit text editing mode when input finishes + Persist text editing mode + Select pinned toolbar keys @string/subtype_locale - Dil (öncelik) - Düzen - Sayı satırı - Semboller - Tuşa basıldığında açılır pencere - Açılır tuş sırasını seç - Açılır tuş sıralaması ve ipucu kaynağı - Her zaman önerileri göster - Web düzenleme alanları için her zaman önerileri gösterme - \'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) - Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) - Potansiyel olarak saldırgan kelimeleri önermeyin - Potansiyel olarak saldırgan kelimeleri engelle - Alt dolgu ölçeği - Emoji görüntüleme boyutu - Emoji boyutunu yazı tipi boyutuna göre ölçeklendir - Varsayılan emoji cilt tonu - Doğal - Fiziksel klavye için Emoji - Fiziksel Alt tuşu emoji paletini gösterir - Klavye yazı tipi boyutu - Yeni kelimelerin öğrenilmesini devre dışı bırak - Emoji sürümünü geçersiz kıl - Tuş uzun basma gecikmesi - Klavye yüksekliği ölçeği - Tuş basma ses düzeyi - Tuş basma titreşim gücü - Tuş basma titreşim süresi - Dil değiştirme kaydırma mesafesi - Boşluk tuşuyla giriş yöntemini değiştir - Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar - Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç - Tuş aralıklarını daralt - Daraltma seviyesi - Düzeltme önerilerini göster - Yazarken önerilen kelimeleri göster - Yan dolgu ölçeği - Boşluk çubuğu özel metni - Sistem emoji yazı tipini kullan - Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) - Noktalama öncesi boşluğu koru - Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. - Kişisel & öğrenilmiş kelimelere öncelik ver - Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. - Metni düzelt - Metin düzeltme başarısız: %s - Metin düzeltme… - Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. - Düzeltilecek metin yok - Metin düzeltildi - Uzun basmada araç çubuğu tuşunu sabitleyin - Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır - Yinele - Araç çubuğu durumunu hatırla - Araç çubuğunu oturumlar arasında ve yazarken genişletilmiş ya da daraltılmış halde tutar - Kaldır - "Kullanıcı tarafından eklenen sözlük \"%s\" gerçekten silinsin mi?" - Gereksiz açılır pencereleri kaldır - Temel düzende zaten bulunan açılır tuşları gizle - "Sözlüğü değiştir" - "Kullanıcı tarafından eklenen \"%1$s\" sözlüğü gerçekten değiştirilsin mi?\n -Geçerli sözlük: -%2$s\n -Yeni sözlük: -%3$s" - Yedeği geri yüklerken hata: %s - Sağ - Kaydet - Günlüğü kaydet - Dosyaya kaydet - Uygulamaya göre dili hatırla - Çok dilli yazma + Language (priority) + Layout + Number row + Symbols + Popup on keypress + Select popup key order + Popup key order and hints source + Always show suggestions + Don’t always show suggestions for web edit fields + Web edit fields (mostly found in browsers) are a very common cause for issues with the always show suggestions setting + Ignore other apps’ request to disable suggestions (may cause issues) + Do not suggest potentially offensive words + Block offensive words + Bottom padding scale + Emoji view font scale + Scale emoji key size with font size + Default emoji skin tone + Neutral + Emoji for physical keyboard + Physical Alt key shows the emoji palette + Keyboard font scale + Disable learning of new words + Override Emoji version + Key long press delay + Keyboard height scale + Keypress sound volume + Keypress vibration strength + Keypress vibration duration + Switch language swipe distance + Change input method with space key + Long pressing space key will prompt input method selection menu + Long press symbols key for numpad + Narrow key gaps + Narrowness level + Show correction suggestions + Display suggested words while typing + Side padding scale + Custom text on space bar + Use system emoji font + Use system emoji font in settings and search (restarts app) + Preserve space before punctuation + Do not automatically delete space before punctuation marks: ]}):;!?,. + Prioritize personal & learned words + Give higher score priority to personal dictionary and learned words during next-word prediction + Proofread + Proofreading failed: %s + Proofreading… + Gemini API key not set. Go to Settings → AI integration. + No text to proofread + Text proofread + Pin toolbar key on long press + This will disable other long press actions for toolbar keys that are not pinned + Redo + Remember toolbar state + Keep the toolbar expanded or collapsed between sessions and while typing + Remove + "Really remove user-added dictionary \"%s\"?" + Remove redundant popups + Suppress popup keys that are already present on the base layout + "Replace dictionary" + "Really replace user-added dictionary \"%1$s\"?\n\nCurrent dictionary:\n%2$s\n\nNew dictionary:\n%3$s" + Error restoring the backup: %s + Right + Save + Save log + Save to file + Remember language per app + Multilingual typing @android:string/selectAll - Vurgu - Klavye arka planı - İşlevsel tuş arka planı - Kaydırarak yazma - Tuş metni - Tuş arka planı - Tuş ipucu metni - Boşluk çubuğu arka planı - Boşluk çubuğu metni - Öneri şeridi metni - Giriş yöntemini seçin - Modu seç - Kelimeyi seç - Ayarlar - Ek tuşlar - Davranış - Pano geçmişi - Yapılandırma - Düzeltmeler - Deneysel - Gelişmiş Hareketler - Girdi - Çeşitli - Boşluk - Öneriler - Dokunmatik yüzey - Görseller & Önizleme - Sınırsız - Hakkında - Gelişmiş - Yapay Zeka entegrasyonu - Görünüm - Metin düzeltme - Kaydırarak yazma - Tercihler - İkincil düzenler - Tema - Araç çubuğu - Sistem varsayılanı - Tamamlandı - Başla - Ayarlar\'da etkinleştir - "Lütfen Diller & giriş ayarlarınızda \"%s\" öğesini işaretleyin. Bu, cihazınızda çalışmasına izin verecektir." - "%s\'i etkinleştir" - Giriş yöntemlerini değiştir - "Sonra, aktif metin girişi yöntemi olarak \"%s\" öğesini seçin." - "%s\'e geç" - Klavveyi yapılandır - Artık tüm favori uygulamalarınızda %s ile yazabilirsiniz. - "Tebrikler, her şey hazır!" - "%s\'yi ayarlama" - Kaydırarak yazma ile - "Hoş geldiniz, %s" - Logu paylaş - Shift\'e basıldığında otomatik boşluk yok - Shift bekleyen otomatik boşluğu kaldırır - Araç çubuğunda indirme düğmesini göster - Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster - Uzun basmada emoji açıklamasını göster - Emoji tuşu - Tuş ipuçlarını göster - Uzun basma ipuçlarını göster - Yatay boşluk tuşu kaydırma hareketi - Dil değiştirme tuşu - İşlevsel ipuçlarını göster - Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster - Tüm kullanılabilir varyantları ekle - Çok yaygın varyantları ekle (varsayılan) - Yaygın varyantları ekle - Klavye dillerinde tanımlı varyantları göster - Açılır pencerede diakritik işaretli daha fazla harf göster - Uygulama simgesini göster - Başlatıcıda uygulama simgesini göster - Üst düzey alan adları (TLD) açılır tuşlarını göster - URL ve e-posta adresleri yazarken nokta tuşunun açılırlarını üst düzey alan adlarıyla değiştir - Dikey boşluk tuşu kaydırma hareketi - Tuşa basıldığında ses - Klavyeyi gizle - İmleci taşı - Sayısal tuş takımını aç kapa - Dokunmatik yüzey modu - LeanType Yazım Denetleyici - Bölünmüş klavye - Bölünme mesafesi - Araç çubuğunu ayır - Önerileri araç çubuğundan ayır - OTP önerisini kapat - Bu proje tamamen topluluk tarafından yürütülüyor ve geliştirmeyi sürdürebilmek için bağışlara dayanıyor. Bu klavyeyi yararlı buluyorsanız lütfen desteklemeyi düşünün! - Bir daha gösterme - Şimdi değil - Destekle - Bu projeyi destekleyin - Yuvarlak + Accent + Keyboard background + Functional key background + Gesture input + Key text + Key background + Key hint text + Space bar background + Space bar text + Suggestion strip text + Choose input method + Select mode + Select word + Settings + Additional keys + Behavior + Clipboard history + Configuration + Corrections + Experimental + Advanced Gestures + Input + Miscellaneous + Space + Suggestions + Touchpad + Visuals & Preview + No limit + About + Advanced + AI Integration + Appearance + Text correction + Gesture Typing + Preferences + Secondary layouts + Theme + Toolbar + System default + Finished + Get started + Enable in Settings + "Please check \"%s\" in your Languages & input settings. This will authorize it to run on your device." + "Enable %s" + Switch input methods + "Next, select \"%s\" as your active text-input method." + "Switch to %s" + Configure the keyboard + Now you can type in all your favorite apps with %s. + "Congratulations, you\'re all set!" + "Setting up %s" + with Gesture Typing + "Welcome to %s" + Share log + No autospace when pressing shift + Shift removes pending autospace + Show download button in toolbar + Show dictionary download icon in suggestion strip when main dictionary is missing + Show emoji description on long press + Emoji key + Show key hints + Show long-press hints + Horizontal spacebar swipe gesture + Language switch key + Show functional hints + Show hints if long-pressing a key triggers additional functionality + Add all available variants + Add very common variants (default) + Add common variants + Show variants defined in keyboard languages + Show more letters with diacritics in popup + Show app icon + Display application icon in the launcher + Show TLD popup keys + Replace period key popups with top level domains when typing URLs and email addresses + Vertical spacebar swipe gesture + Sound on keypress + Hide keyboard + Move cursor + Toggle numpad + Touchpad mode + LeanType Spell Checker + Split keyboard + Split distance + Split toolbar + Separate suggestions from toolbar + Dismiss OTP suggestion + This project is completely community-driven and relies on donations to keep development alive. If you find this keyboard useful, please consider sponsoring! + Never show again + Not now + Sponsor + Sponsor this project + Rounded %s (Akkhor) %s (Baishakhi) Dagbani Dargwa (Urakhi) Emoji - İngilizce (UK) - İngilizce (US) - İspanyolca (US) - %s (Kompakt) - %s (Genişletilmiş) - %s (Fonetik) + English (UK) + English (US) + Spanish (US) + %s (Compact) + %s (Extended) + %s (Phonetic) %s (Sebeolsik 390) %s (Sebeolsik Final) - %s (Öğrenci) - %s (Geleneksel) + %s (Student) + %s (Traditional) Hinglish %s (Khipro) - Dil - Mari (Doğu) + Language + Mari (Eastern) Mansi - Dil yok + No language %s (Probhat) - Sırpça (Latin) + Serbian (Latin) Sesotho %1$s (%2$s) Kaitag - Pano içeriğini öner - Son kopyalanan pano içeriğini öneri olarak göster - Emoji önerileri - Normal önerilerde emoji sözlüğünü kullan - Noktalama önerileri - Başka öneri yoksa noktalama işaretlerini göster - Son ekran görüntülerini öner - Son alınan ekran görüntülerini öneri olarak göster - Belirlenmemişse, portre görüntüsü kullanılacaktır. - Sonrasında ana klavyeye geç… - Dili değiştir - Metin düzenleme - Ayarları açmak için dile dokunun - Renkler - Renkler (gece) - Siyah - Mavi-gri - Kahverengi - Çikolata - Bulutlu - Koyu - Daha koyu - Dinamik renkler - Orman - Holo Beyaz - İndigo - LeanBitLab Koyu - LeanBitLab Açık - Açık - Nane ve Pembe - Pembe - Kum - Kullanıcı Tanımlı - Eflatun - Gezinme çubuğu rengini ayarla - Stil - timestamp key için biçim - İçerik kopyalandı - Pano ve emoji araç çubuklarını da gizle - Araç çubuğu tuşlarını seç - Uzun basma ipucu noktalarını göster - Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin - Araç çubuğu modu - Araç çubuğu tuşları ve öneriler - Gizli - Yalnızca öneriler - Yalnızca araç çubuğu tuşları - Sadece fiziksel klavye bağlıyken araç çubuğunu göster - Sistem ayarlarında sanal klavyeyi göstermeyi ayrıca etkinleştirmeniz gerekir - Aşağı kaydırarak kapat - Klavyeyi gizlemek için araç çubuğunu aşağı kaydırın - Dokunmatik yüzey - Tam ekran dokunmatik yüzey - Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle - Dokunmatik yüzey hassasiyeti - Çevir - Çeviri başarısız: %s - Çeviriliyor… - Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. - Çeviri Modeli - Çevrilecek metin yok - Metin çevrildi - Çevirmek istediğiniz dili seçin - Çeviri hedef dili - Çeviri için motor seçin (Eklenti veya AI) - Çeviri Motoru - Geri al - Yukarı - Yükselt - URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış - URL algılama - Uygulama adlarını ara - Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan - Kişi adlarını ara - Öneriler ve düzeltmeler için Kişilerdeki adları kullan - Çift boşlukla nokta - Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler - Kişiselleştirilmiş öneriler - Önerileri iyileştirmek için iletişimlerinizden ve yazdığınız verilerden öğrenin - Kelime ekle - Bu sözlükteki tüm kelimeleri silmek istediğinizden emin misiniz? - Dil: - İsteğe bağlı kısayol - Kısayol: - Ağırlık: - Bir kelime yazın - Tüm diller için - Kelimeyi düzenle - Daha fazla dil… - Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir kelime girin. - Değişken araç çubuğu yönü - Sağdan sola yazan bir klavye alt türü seçildiğinde yönü ters çevir - Sürüm - Sürüm %s - Rahatsız etme modunda titreşim - Tuşa basıldığında titreşim - Ses girişi - Kelime sola - Kelime sağa + Suggest clipboard content + Show recently copied clipboard content as a suggestion + Suggest emojis + Use emoji dictionary in normal suggestions + Punctuation suggestions + Show punctuation when no other suggestions are available + Suggest recent screenshots + Show recently taken screenshots as a suggestion + If not set, portrait image will be used + Switch to main keyboard after… + Switch language + Text editing + Tap the language to open settings + Colors + Colors (night) + Black + Blue Gray + Brown + Chocolate + Cloudy + Dark + Darker + Dynamic colors + Forest + Holo White + Indigo + LeanBitLab Dark + LeanBitLab Light + Light + Mint and Pink + Pink + Sand + User-Defined + Violette + Color navigation bar + Style + Format for timestamp key + Content copied + Hide clipboard and emoji toolbars too + Select toolbar keys + Show long-press hint dots + Show dots on toolbar keys that have a long-press action + Toolbar mode + Toolbar keys and suggestions + Hidden + Suggestions only + Toolbar keys only + Show only toolbar with physical keyboard + You still need to enable showing virtual keyboard in system settings + Swipe down to close + Swipe down on toolbar to hide keyboard + Touchpad + Full-screen touchpad + Hide suggestion strip and toolbar when touchpad mode is active + Touchpad sensitivity + Translate + Translation failed: %s + Translating… + Select the AI model for translation. Leave empty to use proofreading model. + Translation Model + No text to translate + Text translated + Select the language to translate to + Translation target language + Select backend for translation (Plugin or AI) + Translation Engine + Undo + Up + Upgrade + Try to detect URLs and similar as a single word + URL detection + Look up app names + Use names of installed apps for suggestions and corrections + Look up contact names + Use names from Contacts for suggestions and corrections + Double-space period + Double tap on spacebar inserts a period followed by a space + Personalized suggestions + Learn from your communications and typed data to improve suggestions + Add a word + Are you sure you want to clear all words from this dictionary? + Language: + Optional shortcut + Shortcut: + Weight: + Type a word + For all languages + Edit word + More languages… + This word is already present in the %s user dictionary. Please type another one. + Variable toolbar direction + Reverse direction when a right-to-left keyboard subtype is selected + Version + Version %s + Vibrate in do not disturb mode + Vibrate on keypress + Voice input + Word left + Word right \ No newline at end of file From 37f113642ccd2f5b93abe6a40782260b9052042a Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 20:04:00 +0000 Subject: [PATCH 11/15] Corrected strings.xml: Restored Turkish values while keeping English comments --- app/src/main/res/values-tr/strings.xml | 2070 ++++++++++++++++-------- 1 file changed, 1367 insertions(+), 703 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 06d21a018..0cb198210 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,712 +1,1376 @@ - - + + + + + LeanType Yazım Denetleyici + LeanType + + LeanType Ayarları + + LeanType Yazım Denetleyici Ayarları + + Tuşa basıldığında titreşim + + Rahatsız etme modunda titreşim + + Tuşa basıldığında ses + + Emoji önerileri + + Normal önerilerde emoji sözlüğünü kullan + + Satır içi emoji araması + + Bir kelimenin önünde \':\' varsa yalnızca emojileri öner + + Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. + + Uzun basmada emoji açıklamasını göster + + Tuşa basıldığında açılır pencere + + Tercihler + + Kaydırarak yazma + + Metin düzeltme + + Gelişmiş + + Tema + + Girdi + + Ek tuşlar + + Pano geçmişi + + Düzeltmeler + + Boşluk + + Öneriler + + Deneysel + + Çeşitli + + Yapılandırma + + Görseller & Önizleme + + Davranış + + Gelişmiş Hareketler + + Dokunmatik yüzey + + Bölünmüş klavyeyi etkinleştir + + Bölünmüş klavyeyi etkinleştir (yatay) + + Bölünme mesafesi + + Diğer giriş yöntemlerine geç + + Dili değiştir + + Her ikisini de değiştir + + Dil değiştirme tuşu + + Dil değiştirme tuşu davranışı + + Emoji tuşu + %s ms + %s min - Go to FEATURES.md - List of main features and keyboard manual - View on GitHub - Sponsor project - Support the development of LeanType - None - Add - Block a word - Add custom layout - "Select a dictionary to add. Dictionaries in .dict format can be downloaded %s." - "Add dictionary from file" - Add words to personal dictionary - Use device personal dictionary to store learned words - Selecting clipboard history entry - Selecting emoji in emoji view - Pressing enter or space after other keys in numpad - Pressing enter or space after other keys in symbols view - Allow HTTP connections and ignore SSL certificate errors. Warning: exposes input to local network eavesdropping. - Allow insecure connections + + Sistem varsayılanı + + Sınırsız + + Kişi adlarını ara + + Öneriler ve düzeltmeler için Kişilerdeki adları kullan + + Uygulama adlarını ara + + Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan + + Kişiselleştirilmiş öneriler + + Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir + + Kişisel sözlüğe kelime ekle + + Öğrenilen kelimeleri saklamak için cihazın kişisel sözlüğünü kullan + + Çift boşlukla nokta + + Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler + + Otomatik büyük harf + + Her cümlenin ilk kelimesini büyük harf yap + + Kişisel sözlük + Engellenen kelimeler + Önerilerden engellenen kelimeleri yönet + Bir kelimeyi engelle + Kelime zaten engellenmiş + Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? + + Ana sözlük + + Düzeltme önerilerini göster + + Yazarken önerilen kelimeleri göster + + Her zaman önerileri göster + + Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) + + Web düzenleme alanları için her zaman önerileri gösterme + + \'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) + + Potansiyel olarak saldırgan kelimeleri engelle + + Potansiyel olarak saldırgan kelimeleri önermeyin + + Otomatik düzeltme + + Boşluk çubuğu ve noktalama işaretleri yanlış yazılmış kelimeleri otomatik düzeltir + Otomatik düzeltme açık + Boşluk çubuğu ve noktalama + Sadece boşluk çubuğu + Sadece noktalama + + Daha fazla otomatik düzeltme + + Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar + + Otomatik düzeltme güven düzeyi + + Kısayolları otomatik düzeltme + + Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir + + Geri tuşu otomatik düzeltmeyi geri alır + + Kapalı + + Ilımlı + + Agresif + + Çok agresif + + Ortadaki öneriyi her zaman kullan + + Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. + + Sonraki kelime önerileri + + Öneri oluştururken önceki kelimeyi kullan + + Kişisel & öğrenilmiş kelimelere öncelik ver + + Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. + + Öğrenilen kelime güçlendirme seviyesi + + Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. + + Öğrenilen kelimeler için bağlam eşleşmesi gerekli + + Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner + + Anında otomatik boşluk + Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. + + + İlk kelime önerileri + + Cümlenin başında girdi yoksa önerileri göster + + Noktalama önerileri + + Başka öneri yoksa noktalama işaretlerini göster + + Pano içeriğini öner + + Son kopyalanan pano içeriğini öneri olarak göster + + Son ekran görüntülerini öner + + Son alınan ekran görüntülerini öneri olarak göster + + SMS\'ten OTP\'yi otomatik oku + + Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster + + OTP önerisini kapat + + Önerilen ekran görüntülerini sıkıştır + + Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. + + Kaydırarak yazmayı etkinleştir + + Harflerin üzerinde kaydırarak bir kelime girin + + Kaydırma izini göster + + Kayan önizleme + + Kaydırırken önerilen kelimeyi göster + + Dinamik kayan önizleme + + Kaydırma sırasında önizlemeyi hareket ettir + + İfade kaydırma + + Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin + + Hızlı yazma bekleme süresi + + Her zaman anında başla + + Kaydırma izi görünme süresi + + Pano geçmişini etkinleştir + + Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır + + Geçmiş saklama süresi + + Sabitlenmiş öğeleri üstte göster + Sabitlenmiş öğeleri varsayılan olarak daralt + Pano temizleme simgesi + Pano temizleme düğmesi için simge stilini seçin + Çöp kutusu + Süpür / Hepsini temizle + Eğimli çizgiler + Çapraz çizgili pano taslağı + Klasik pano + Sabitlendi + + Panodaki öğeleri ara... + + Öğe bulunamadı + + Öğe silindi + + Sonuç bulunamadı + Tüm geçmişi temizlemek istediğinizden emin misiniz? + Tümünü temizle + + Kaydırarak silme + + Silme tuşundan kaydırma yaparak aynı anda daha büyük metin parçalarını seçip silebilirsiniz. + + Yedekleme ve geri yükleme + + Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır + + Yedekleme hatası: %s + + Yedeği geri yüklerken hata: %s + + Yedek + + Geri yükle + + Yedek geri yüklendi + + timestamp key için biçim + + Çok dilli yazma + + Sözlüğü bulunan diller + + Kaydırarak yazma kütüphanesini yükle + + Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın + + + Kaydırarak yazma yöntemi + Kaydırarak yazma için algoritma seçin + Yerel kütüphane (swypelib gerektirir) + Yedek motor (saf Java) + + Bu kütüphaneye \'%s\' için ihtiyacınız olacak. Uyumsuz kütüphaneler Kaydırarak yazma kullanılırken çökme yapabilir. + \n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen kütüphaneyi kullanın. + + Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? + + Kütüphaneyi yükle + + Kütüphaneyi sil + + Kütüphaneyi indir + + Kaydırma jest kütüphanesi indiriliyor… + + İndirme tamamlandı! Yeniden başlatılıyor… + + İndirme başarısız: %s + + El yazısı eklentisini yükle + El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın + Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. + Eklenti APK\'sını yükle + Eklentiyi sil + El yazısı eklentisi başarıyla içe aktarıldı + El yazısı eklentisi APK\'sı yüklenemedi + + Çeviri eklentisini yükle + Çeviri motorunu etkinleştirmek için bir APK eklentisi sağlayın + Eklentiyi sil + Çeviri eklentisi başarıyla içe aktarıldı + Çeviri eklentisi APK\'sı yüklenemedi + El yazısı + İndirilen modeli sil + El yazısı modeli silindi + El yazısı eklentisi gerekli + Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. + Eklentiyi yükle + + Noktalama sonrası otomatik boşluk + + Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. + + Emoji sonrası otomatik boşluk + + Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. + + Bir öneri seçildikten sonra otomatik boşluk + + Kaydırarak yazmadan önce otomatik boşluk + + Kaydırarak yazdıktan sonra otomatik boşluk + + Shift\'e basıldığında otomatik boşluk yok + + Shift bekleyen otomatik boşluğu kaldırır + + Noktalama öncesi boşluğu koru + + Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. + + Açılır pencerede diakritik işaretli daha fazla harf göster + + Klavye dillerinde tanımlı varyantları göster + + Çok yaygın varyantları ekle (varsayılan) + + Yaygın varyantları ekle + + Tüm kullanılabilir varyantları ekle + + URL algılama + + URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış + + Gizli modu zorunlu kıl + Dokunmatik yüzey + Metin düzenleme + Modu seç + Tam ekran dokunmatik yüzey + Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle + + Yeni kelimelerin öğrenilmesini devre dışı bırak + + Daha fazla tuş + + Diller & Düzenler + Diller + + Sayı satırı + + Sayı satırını her zaman göster + + Simgeler görünümünde sayı satırını göster + + Kompakt simgeler için sayı satırı + + Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir + + Sayı satırını yerelleştir + + Yerel rakamları Latin rakamlara tercih et + + Sayı satırında ipuçlarını göster + + Uygulamaya göre dili hatırla + + Tuş ipuçlarını göster + + Uzun basma ipuçlarını göster + + Açılır tuş sıralaması ve ipucu kaynağı + + İpucu kaynağını seç + + Açılır tuş sırasını seç + + Üst düzey alan adları (TLD) açılır tuşlarını göster + + URL ve e-posta adresleri yazarken nokta tuşunun açılırlarını üst düzey alan adlarıyla değiştir + + Sayı satırı + @string/subtype_locale + Dil (öncelik) + Düzen + Semboller + + Araç çubuğu modu + + Araç çubuğu tuşları ve öneriler + + Yalnızca araç çubuğu tuşları + + Yalnızca öneriler + + Gizli + + Pano ve emoji araç çubuklarını da gizle + + Araç çubuğu tuşlarını seç + + @android:string/paste + @android:string/copy + @android:string/cut + Pano + Panoyu temizle + + Pano araması + + İndir + İndiriliyor… + İndirme başarısız oldu + Yüklendi + Ses girişi + @string/layout_numpad + Ayarlar + @android:string/selectAll + Kelimeyi seç + Tek elle modu + Kayan + Bölünmüş klavye + Tam sola + Tam sağa + Sayfa başı + Sayfa sonu + Sol + Sağ + Yukarı + Aşağı + Kelime sola + Kelime sağa + Sayfa yukarı + Sayfa aşağı + Geri al + Yinele + Pano geçmişini kapat + Emoji + + Metni düzelt + Metin düzeltme… + Metin düzeltildi + Metin düzeltme başarısız: %s + Düzeltilecek metin yok + Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. + Gemini API Anahtarı + Metin düzeltme için Google Gemini API anahtarınızı girin + API anahtarını girin + API Anahtarı Al + Gemini Modeli + Metin düzeltme için AI modelini seçin + API Anahtarını Test Et + API anahtarı geçerli! + API anahtarı testi başarısız: %s + API anahtarı test ediliyor… + Tüm ağ erişimini devre dışı bırak + Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. + Sistem Uygulama bilgilerini aç + İzinleri ve pil kullanımını Android ayarlarında yönetin + LeanType ayarlarında ağ erişimi devre dışı bırakıldı + Yapay Zeka Sağlayıcısı + Metin düzeltme için Yapay Zeka servisini seçin Google Gemini + Araç çubuğunu ayır + Önerileri araç çubuğundan ayır + Araç çubuğu tuşlarını otomatik olarak genişlet + Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet + Araç çubuğunda indirme düğmesini göster + Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster Groq - HF/OpenAI-compatible - Select AI service for proofreading - AI Provider - Show all colors - This setting exposes all colors that are used internally. The list of colors may change at any time. The default is derived from the normal colors, and the names will not be translated. - LeanType Spell Checker Settings - Change the language of the settings screen and keyboard interface - System default - App Language - Auto-capitalization - Capitalize the first word of each sentence - Auto-correct shortcuts - When enabled shortcuts might be expanded by autocorrect - Auto-correction confidence - Spacebar and punctuation automatically correct mistyped words - Aggressive - Modest - Off - Very aggressive - Auto-correct on - Spacebar and punctuation - Punctuation only - Spacebar only - Auto hide pinned keys - Hide pinned keys when the toolbar is expanded - Auto hide toolbar - Hide the toolbar when suggestions become available - Auto-read OTP from SMS - Show the code from an incoming SMS as a suggestion you can tap to insert - Auto show toolbar - Auto show toolbar on open - Auto show toolbar on select - Show the toolbar when selecting text - Show the toolbar when the keyboard opens - Auto-span toolbar keys - Expand toolbar keys to fill available free space - Choose color automatically - Auto-correction - Autospace after emoji - Automatically insert space after emoji when typing a new word - Autospace after gesture typing a word - Autospace after punctuation - Automatically insert space after punctuation when typing a new word - Autospace after picking a suggestion - Autospace before gesture typing a word - "%s (experimental)" - Backspace reverts autocorrect - Clipboard History - Dictionaries & Typing History - General Settings - Layouts - Theme & Custom Backgrounds - Backup error: %s - Save or load from file. Warning: restore will overwrite existing data - Backup and restore - Backup restored - Select items to include: - Next-word suggestions - Use the previous word in making suggestions - Word is already blocked - Manage words blocked from suggestions - Backup - Default - Load file - Restore - Save to file - "Select language" - Add custom layout - Always use middle suggestion - On pressing space or punctuation, the middle suggestion will be entered - Unknown library file. Are you sure you got it from a trusted source and it is for \'%s\'? - Clear All - Are you sure you want to unblock all words? - Clear clipboard - Clear clipboard icon - Trash bin - Outline clipboard with slash - Classic clipboard - Select the icon style for the clear clipboard button - Sweep / Clear all - Slanted lines - Are you sure you want to clear your recently used emojis? - Clear emoji history - Clear log - Clipboard - Are you sure you want to clear all history? - No items found - Fold pinned items by default - Show pinned items on top - History retention time - Item deleted - No results found - Pinned - Clipboard search - Search clips... - Select clipboard toolbar keys - Close clipboard history - Close language selector - Compact symbols number row - Replace first row of symbols instead of adding a separate row - Compress screenshot suggestions - Reduce quality and size of screenshot suggestions to save space - https://api.openai.com/v1/chat/completions - https://generativelanguage.googleapis.com/v1beta/models?key=%1$s - https://api.groq.com/openai/v1/chat/completions - https://api.groq.com/openai/v1/models - @android:string/copy - Copy to Clipboard - Customize numbered toolbar keys with your own prompts - Custom AI Keys - Set custom emoji font from file - Set custom font from file - Custom subtype - Set background image - Set background image (landscape) - Customize currencies - Set main and up to 6 secondary currency symbols, separated with space - Customize icons - Really reset all customized icons? - Really clear all customized key codes? - Customize toolbar key codes - @android:string/cut - Auto day/night mode - Appearance will follow system settings - Day - Set image for day or night mode? - Night - Delete - Really delete %s? - Delete downloaded model - Really delete custom layout %s? - Delete swipe - Perform a swipe from the delete key to select and remove bigger portions of text at once - Close - Dictionary available - Add-on dictionaries - "Error: Selected file is not a valid dictionary file" - "Error: script not compatible with this keyboard" - "here" - "Error loading dictionary file" - Dictionaries - Browse or download dictionaries directly in your browser - Dictionary repository - Update available - None - Input Method to switch to directly when using the custom keycode option - Direct Switch Target IME - Prevent suggestions that consist of multiple combined words (recommended for Turkish) - Disable multi-word suggestions - Internal lock: Blocks all network requests from this app. To revoke permission entirely, use system App Info settings. - Disable all network access - Warning: Disabling this setting will clear learned data - "discussion section" - Down - Download - Download failed - Downloading… - Blocked words - Tap to edit raw layout - Personal dictionary - Emoji - An emoji dictionary is required for this feature to work. Dictionaries in .dict format can be downloaded %s. - Enable clipboard history - If disabled, clipboard key will paste clipboard content if any - Enable split keyboard - Enable split keyboard (landscape) - Cannot read file - First-word suggestions - Show suggestions when there is no input at the start of a sentence - Float - Drag to move keyboard - Drag to resize keyboard - Force sentence capitalization on all text fields except passwords - Force auto-capitalization - Full left - Full right - Enter API key - API key test failed: %s - Enter your Google Gemini API key for proofreading - Gemini API Key - API key is valid! - Select the AI model for proofreading - Gemini Model - Network access is disabled in LeanType settings - Test API Key - Testing API key… - Rapid typing cooldown - Always start instantly - Move the preview during a gesture - Floating preview - See the suggested word while gesturing - Dynamic floating preview - Enable gesture typing - Input a word by sliding through the letters - Gesture typing method - Fallback engine (pure Java) - Native library (requires swypelib) - Choose algorithm for swipe typing - Show gesture trail - Phrase gesture - Input spaces during gestures by gliding to the space key - Gesture trail lifespan - Get API Key - "You can find and share colors in the %s." - Get Groq Key - Get API Token - "You can find and share layouts in the %s." - GNU General Public License v3.0 - Enter API key - Enter your Groq API key - API Token - Handwriting - Handwriting model deleted - Load Plugin - Handwriting plugin required - Please load the handwriting plugin library to enable drawing recognition. - ► Long-pressing pinned toolbar keys results in additional functionality: <br>\n\n\t• clipboard &#65515; paste <br>\n\n\t• move left/right &#65515; word left/right <br>\n\n\t• move up/down &#65515; page up/down <br>\n\n\t• word left/right &#65515; line start/end <br>\n\n\t• page up/down &#65515; page start/end <br>\n\n\t• copy &#65515; cut <br>\n\n\t• select word &#8596; select all <br>\n\n\t• undo &#8596; redo <br> <br>\n\n► Long-pressing keys in the suggestion strip toolbar pins them to the suggestion strip. <br> <br>\n\n► Long-press the Comma-key to access Clipboard View, Emoji View, One-handed Mode, Settings, or Switch Language: <br>\n\n\t• Emoji View and Language Switch will disappear if you have the corresponding key enabled; <br>\n\n\t• For some layouts it\\\'s not the Comma-key, but the key at the same position (e.g. it\\\'s \\\'q\\\' for Dvorak layout). <br> <br>\n\n► When incognito mode is enabled, no words will be learned, and no emojis will be added to recents. <br> <br>\n\n► Press the Incognito icon to access the toolbar. <br> <br>\n\n► Sliding key input: Swipe from shift to another key to type a single uppercase key: <br>\n\n\t• This also works for the \\\'?123\\\' key to type a single symbol from the symbols keyboard, and for related keys. <br> <br>\n\n► Hold shift or symbol key, press one or more keys, and then release shift or symbol key to return to the previous keyboard. <br> <br>\n\n► Long-press a suggestion in the suggestion strip to show more suggestions, and a delete button to remove this suggestion. <br> <br>\n\n► Swipe up from a suggestion to open more suggestions, and release on the suggestion to select it. <br> <br>\n\n► Long-press an entry in the clipboard history to pin it (keep it in clipboard until you unpin). <br> <br>\n\n► Swipe left in clipboard view to remove an entry (except when it\\\'s pinned) <br> <br>\n\n► Select text and press shift to switch between uppercase, lowercase and capitalize words. <br> <br>\n\n► You can add dictionaries by opening them in a file explorer: <br>\n\n\t• This only works with <i>content-uris</i> and not with <i>file-uris</i>, meaning that it may not work with some file explorers. <br> <br>\n\n► For users doing manual backups with root access: <br>\n\n\t• Starting at Android 7, the shared preferences file is not in the default location, because the app is using %s. This is necessary so the settings can be read before the device is unlocked, e.g. at boot; <br>\n\n\t• The file is located in /data/user_de/0/package_id/shared_prefs/ though this may depend on the device and Android version. <br> <br>\n\n<i><b>Debug mode / debug APK</b></i> <br> <br>\n\n► Long-press a suggestion to show the source dictionary. <br> <br>\n\n► When using debug APK, you can find Debug Settings within the Advanced Preferences,though the usefulness is limited except for dumping dictionaries into the log. <br>\n\n\t• For a release APK, you need to tap the version in <i>About</i> several times, then you can find debug settings in <i>Advanced Preferences</i>. <br>\n\n\t• When enabling <i>Show suggestion infos</i>, suggestions will have some tiny numbers on top showing some internal score and source dictionary. <br> <br>\n\n► In the event of an application crash, you will be prompted whether you want the crash logs when you open the Settings. <br> <br>\n\n► When using multilingual typing, space bar will show an confidence value used for determining the currently used language. <br> <br>\n\n► Suggestions will have some tiny numbers on top showing some internal score and source dictionary (can be disabled). - Show features that may go unnoticed - device protected storage - Description of hidden features - Select hint source - https://api.groq.com/openai/v1/chat/completions - API endpoint URL - API Endpoint - model-name - Select Groq model + HF/OpenAI-uyumlu + API Jetonu + HuggingFace veya OpenAI-uyumlu API anahtarınızı girin + API Jetonu + Groq API anahtarınızı girin + API anahtarını girin + API anahtarını girin + Groq Anahtarını Al + API Belirteci Al + API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. Model - No model configured. Go to Settings → AI integration. - API token not set. Go to Settings → AI integration. - Enter API key - Enter your HuggingFace or OpenAI-compatible API key - API Token - Icon style - This app does not support image pasting - LeanType - LeanType Settings - Immediate auto-space - Commit space instantly when picking a suggestion to prevent delay on next typed letter - Force incognito mode - Inline emoji search - Suggest only emojis when a word is preceded by a colon - Insecure HTTP connection blocked. Enable \'Allow Insecure Connections\' in AI settings. - Installed - Internal main dictionary - Key borders - Key code - Layout - Bin - Delete - Done - Enter - Go - @string/show_language_switch_key - Next - Pause - Prev - Resize one-handed mode - Search - Send - Shift - Caps lock - Shift (shifted) - Voice input disabled - Space (number layout) - End one-handed mode - Switch one-handed mode side - Tab - Show / hide toolbar - Wait - Zero-width joiner - Zero-width non-joiner - Landscape - Languages & Layouts - Language switch key behavior - Switch both - Switch to other input methods - Languages - Clipboard bottom row - Clipboard bottom row with action key - Custom layout 1 - Custom layout 2 - Custom layout 3 - Custom layout 4 - Custom layout 5 - Emoji bottom row - Emoji bottom row with action key - Layout error: %s - Functional keys - Functional keys (Khipro) - Functional keys (Symbols) - Functional keys (More symbols) - Functional keys (large screen) - Warning: layout is in currently use - Numbers - Number row - Number row (basic) - Numpad - Numpad (landscape) - Phone - Phone symbols - Symbols - Symbols (Arabic) - More symbols - Left - To add a new dictionary:\n1. Obtain a .dict file for your language.\n2. Tap \"Manage Dictionaries\".\n3. Use the plus (+) button to import the file. - Dictionary Loading Guide - Main Dictionaries - Emoji Libraries - Gesture Typing Library - Handwriting Input Plugin - Manage gesture typing library, dictionaries, and emoji libraries. - Libraries - Active - Not Installed - Open-source license - Load - Load gesture typing library - Delete library - Download library - Load library - Download failed: %s - Download complete! Restarting… - Downloading gesture library… - You will need the library for \'%s\'. Incompatible libraries may crash when using gesture typing.\n \n\nWarning: loading external code can be a security risk. Only use a library from a source you trust. - Provide a native library to enable gesture typing - Load handwriting plugin - Delete plugin - Load plugin APK - Failed to load handwriting plugin APK - Provide a handwriting plugin APK.\n\nWarning: loading external code can be a security risk. Only use a plugin from a source you trust. - Handwriting plugin imported successfully - Provide an APK plugin to enable handwriting input - Load translation plugin - Delete plugin - Failed to load translation plugin APK - Translation plugin imported successfully - Provide an APK plugin to enable translation engine - Languages with dictionaries - Localize number row - Prefer localized over latin numbers - Log cleared - Log options - Long press code - Show main colors only - Main dictionary - Select a file in a compatible format. Information about the formats is available %s. - More auto-correction - Auto-correct even when not explicitly requested by the input field - Show more colors - More keys - Invalid name - Largest - Smallest - Medium - Large - Small - Learned word boost level - Set score priority boost strength for learned and personal dictionary entries - Require context match for learned words - Only suggest learned words when the preceding word context matches - "Don\'t show again" - "Without a dictionary, you will only get suggestions for text you entered before.<br>\n You can download dictionaries %1$s." - Number row - Show hints on number row - Show number row in symbols view - Always show number row - @string/layout_numpad - Keep the offline AI model in memory to avoid reloading delay (uses more RAM) - Keep model loaded - Custom (%1$d tokens) - Custom… - Maximum length of the generated correction - Offline AI Max Tokens - Minimum probability threshold relative to most likely token - Min-P - Manage local LLM - Offline Model - Display reasoning process and internal thinking tokens if the model generates them - Show Thinking - Controls randomness: lower is more focused and deterministic - Temperature - Limits choices to K most probable tokens - Top-K - Controls diversity of vocabulary: lower cuts off less likely options - Top-P (Nucleus Sampling) - One-handed mode - Open System App Info - Manage permissions and battery usage in Android settings - Page down - Page end - Page start - Page up - @android:string/paste - Do not hide floating keyboard when input finishes - Persist floating keyboard - Do not exit text editing mode when input finishes - Persist text editing mode - Select pinned toolbar keys - @string/subtype_locale - Language (priority) - Layout - Number row - Symbols - Popup on keypress - Select popup key order - Popup key order and hints source - Always show suggestions - Don’t always show suggestions for web edit fields - Web edit fields (mostly found in browsers) are a very common cause for issues with the always show suggestions setting - Ignore other apps’ request to disable suggestions (may cause issues) - Do not suggest potentially offensive words - Block offensive words - Bottom padding scale - Emoji view font scale - Scale emoji key size with font size - Default emoji skin tone - Neutral - Emoji for physical keyboard - Physical Alt key shows the emoji palette - Keyboard font scale - Disable learning of new words - Override Emoji version - Key long press delay - Keyboard height scale - Keypress sound volume - Keypress vibration strength - Keypress vibration duration - Switch language swipe distance - Change input method with space key - Long pressing space key will prompt input method selection menu - Long press symbols key for numpad - Narrow key gaps - Narrowness level - Show correction suggestions - Display suggested words while typing - Side padding scale - Custom text on space bar - Use system emoji font - Use system emoji font in settings and search (restarts app) - Preserve space before punctuation - Do not automatically delete space before punctuation marks: ]}):;!?,. - Prioritize personal & learned words - Give higher score priority to personal dictionary and learned words during next-word prediction - Proofread - Proofreading failed: %s - Proofreading… - Gemini API key not set. Go to Settings → AI integration. - No text to proofread - Text proofread - Pin toolbar key on long press - This will disable other long press actions for toolbar keys that are not pinned - Redo - Remember toolbar state - Keep the toolbar expanded or collapsed between sessions and while typing - Remove - "Really remove user-added dictionary \"%s\"?" - Remove redundant popups - Suppress popup keys that are already present on the base layout - "Replace dictionary" - "Really replace user-added dictionary \"%1$s\"?\n\nCurrent dictionary:\n%2$s\n\nNew dictionary:\n%3$s" - Error restoring the backup: %s - Right - Save - Save log - Save to file - Remember language per app - Multilingual typing - @android:string/selectAll - Accent - Keyboard background - Functional key background - Gesture input - Key text - Key background - Key hint text - Space bar background - Space bar text - Suggestion strip text - Choose input method - Select mode - Select word - Settings - Additional keys - Behavior - Clipboard history - Configuration - Corrections - Experimental - Advanced Gestures - Input - Miscellaneous - Space - Suggestions - Touchpad - Visuals & Preview - No limit - About - Advanced - AI Integration - Appearance - Text correction - Gesture Typing - Preferences - Secondary layouts - Theme - Toolbar - System default - Finished - Get started - Enable in Settings - "Please check \"%s\" in your Languages & input settings. This will authorize it to run on your device." - "Enable %s" - Switch input methods - "Next, select \"%s\" as your active text-input method." - "Switch to %s" - Configure the keyboard - Now you can type in all your favorite apps with %s. - "Congratulations, you\'re all set!" - "Setting up %s" - with Gesture Typing - "Welcome to %s" - Share log - No autospace when pressing shift - Shift removes pending autospace - Show download button in toolbar - Show dictionary download icon in suggestion strip when main dictionary is missing - Show emoji description on long press - Emoji key - Show key hints - Show long-press hints - Horizontal spacebar swipe gesture - Language switch key - Show functional hints - Show hints if long-pressing a key triggers additional functionality - Add all available variants - Add very common variants (default) - Add common variants - Show variants defined in keyboard languages - Show more letters with diacritics in popup - Show app icon - Display application icon in the launcher - Show TLD popup keys - Replace period key popups with top level domains when typing URLs and email addresses - Vertical spacebar swipe gesture - Sound on keypress - Hide keyboard - Move cursor - Toggle numpad - Touchpad mode - LeanType Spell Checker - Split keyboard - Split distance - Split toolbar - Separate suggestions from toolbar - Dismiss OTP suggestion - This project is completely community-driven and relies on donations to keep development alive. If you find this keyboard useful, please consider sponsoring! - Never show again - Not now - Sponsor - Sponsor this project - Rounded - %s (Akkhor) - %s (Baishakhi) - Dagbani - Dargwa (Urakhi) - Emoji - English (UK) - English (US) - Spanish (US) - %s (Compact) - %s (Extended) - %s (Phonetic) - %s (Sebeolsik 390) - %s (Sebeolsik Final) - %s (Student) - %s (Traditional) + Groq modelini seçin + model-name + Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + API Uç Noktası + API uç nokta URL\'si + https://api.groq.com/openai/v1/chat/completions + Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. + Güvensiz bağlantılara izin ver + HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. + Düzenler + Tema & Özel Arka Planlar + Sözlükler & Yazma Geçmişi + Pano Geçmişi + Genel Ayarlar + Dahil edilecek öğeleri seçin: + + https://generativelanguage.googleapis.com/v1beta/models?key=%1$s + https://api.groq.com/openai/v1/models + https://api.openai.com/v1/chat/completions + https://api.groq.com/openai/v1/chat/completions + Modeli hafızada tut + Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) + + Çevir + Çeviriliyor… + Metin çevrildi + Çeviri başarısız: %s + Çevrilecek metin yok + Çeviri hedef dili + Çevirmek istediğiniz dili seçin + Çeviri Modeli + Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. + + Çeviri Motoru + Çeviri için motor seçin (Eklenti veya AI) + + + + English + Spanish + French + German + Italian + Portuguese + Chinese (Simplified) + Chinese (Traditional) + Japanese + Korean + Arabic + Russian + Hindi + Bengali + Indonesian + Dutch + Turkish + Polish + Ukrainian + Swedish + Danish + Norwegian + Finnish + Greek + Hebrew + Thai + Vietnamese + Tamil + Telugu + Marathi + Gujarati + Kannada + Malayalam + Urdu + Persian (Farsi) + Swahili + Romanian + Czech + Hungarian + Filipino (Tagalog) + Malay + Serbian + Croatian + Bulgarian + Slovak + Slovenian + Lithuanian + Latvian + Estonian + Catalan + Basque + + + + English + Spanish + French + German + Italian + Portuguese + Chinese (Simplified) + Chinese (Traditional) + Japanese + Korean + Arabic + Russian + Hindi + Bengali + Indonesian + Dutch + Turkish + Polish + Ukrainian + Swedish + Danish + Norwegian + Finnish + Greek + Hebrew + Thai + Vietnamese + Tamil + Telugu + Marathi + Gujarati + Kannada + Malayalam + Urdu + Persian (Farsi) + Swahili + Romanian + Czech + Hungarian + Filipino (Tagalog) + Malay + Serbian + Croatian + Bulgarian + Slovak + Slovenian + Lithuanian + Latvian + Estonian + Catalan + Basque + + + Pano araç çubuğu tuşlarını seç + + Sabitlenmiş araç çubuğu tuşlarını seçin + + Uzun basmada araç çubuğu tuşunu sabitleyin + + Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır + + Uzun basma ipucu noktalarını göster + + Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin + + İşlevsel ipuçlarını göster + + Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster + + Yinelenen açılırları kaldır + + Temel düzen üzerinde zaten bulunan açılır tuşları gizle + + Boşluk tuşuyla giriş yöntemini değiştir + + Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar + + Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç + + Tuş aralıklarını daralt + Daraltma seviyesi + En küçük + Küçük + Orta + Büyük + En büyük + + Klavye yüksekliği ölçeği + + Alt dolgu ölçeği + + Yan dolgu ölçeği + + Klavye yazı tipi ölçeği + + Emoji görünümü yazı tipi ölçeği + + Emoji tuş boyutunu yazı tipi boyutuna göre ölçeklendir + + Varsayılan emoji ten rengi + + Nötr + + Boşluk çubuğundaki özel metin + + Dosyadan özel yazı tipi ayarla + + Dosyadan özel emoji yazı tipi ayarla + + Sistem emoji yazı tipini kullan + + Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) + + İngilizce (UK) + + İngilizce (US) + + İspanyolca (US) + + Sırpça (Latin) + Hinglish - %s (Khipro) - Language - Mari (Eastern) + Mansi - No language - %s (Probhat) - Serbian (Latin) + + Kaitag + + Dagbani + Sesotho + + Dargwa (Urakhi) + + Mari (Doğu) + %1$s (%2$s) - Kaitag - Suggest clipboard content - Show recently copied clipboard content as a suggestion - Suggest emojis - Use emoji dictionary in normal suggestions - Punctuation suggestions - Show punctuation when no other suggestions are available - Suggest recent screenshots - Show recently taken screenshots as a suggestion - If not set, portrait image will be used - Switch to main keyboard after… - Switch language - Text editing - Tap the language to open settings - Colors - Colors (night) - Black - Blue Gray - Brown - Chocolate - Cloudy - Dark - Darker - Dynamic colors - Forest - Holo White - Indigo - LeanBitLab Dark - LeanBitLab Light - Light - Mint and Pink - Pink - Sand - User-Defined - Violette - Color navigation bar - Style - Format for timestamp key - Content copied - Hide clipboard and emoji toolbars too - Select toolbar keys - Show long-press hint dots - Show dots on toolbar keys that have a long-press action - Toolbar mode - Toolbar keys and suggestions - Hidden - Suggestions only - Toolbar keys only - Show only toolbar with physical keyboard - You still need to enable showing virtual keyboard in system settings - Swipe down to close - Swipe down on toolbar to hide keyboard - Touchpad - Full-screen touchpad - Hide suggestion strip and toolbar when touchpad mode is active - Touchpad sensitivity - Translate - Translation failed: %s - Translating… - Select the AI model for translation. Leave empty to use proofreading model. - Translation Model - No text to translate - Text translated - Select the language to translate to - Translation target language - Select backend for translation (Plugin or AI) - Translation Engine - Undo - Up - Upgrade - Try to detect URLs and similar as a single word - URL detection - Look up app names - Use names of installed apps for suggestions and corrections - Look up contact names - Use names from Contacts for suggestions and corrections - Double-space period - Double tap on spacebar inserts a period followed by a space - Personalized suggestions - Learn from your communications and typed data to improve suggestions - Add a word - Are you sure you want to clear all words from this dictionary? - Language: - Optional shortcut - Shortcut: - Weight: - Type a word - For all languages - Edit word - More languages… - This word is already present in the %s user dictionary. Please type another one. - Variable toolbar direction - Reverse direction when a right-to-left keyboard subtype is selected - Version - Version %s - Vibrate in do not disturb mode - Vibrate on keypress - Voice input - Word left - Word right - \ No newline at end of file + + %s (Genişletilmiş) + + %s (Geleneksel) + + %s (Akkhor) + + %s (Probhat) + + %s (Baishakhi) + + %s (Khipro) + + %s (Kompakt) + + %s (Fonetik) + + %s (Sebeolsik 390) + + %s (Sebeolsik Final) + + %s (Öğrenci) + + Dil yok + + Emoji + + Ekle + + Kaldır + + Kaydet + + Yükle + + Dil + + Düzen + + Özel düzen ekle + + Uyumlu bir formatta dosya seçin. Formatlar hakkında bilgi %s adresinde mevcuttur. + + Dosya yükle + + Dosyaya kaydet + + Panoya kopyala + + Dosya okunamıyor + + Özel düzen %s gerçekten silinsin mi? + + Uyarı: düzen şu anda kullanılıyor + Özel düzen ekle + + Düzen hatası: %s + + Ham düzeni düzenlemek için dokun + + İkincil düzenler + Özel düzen 1 + Özel düzen 2 + Özel düzen 3 + Özel düzen 4 + Özel düzen 5 + + Fonksiyon tuşları + + Fonksiyon tuşları (büyük ekran) + + Fonksiyon tuşları (Khipro) + + İşlevsel tuşlar (Semboller) + + İşlevsel tuşlar (Daha fazla sembol) + + Semboller + + Semboller (Arapça) + + Daha fazla sembol + + Telefon + + Telefon sembolleri + + Rakamlar + + Sayısal tuş takımı + + Sayısal tuş takımı (yatay) + + Sayı satırı + + Sayı satırı (temel) + + Emoji alt satırı + + Eylem tuşlu Emoji alt satırı + + Pano alt satırı + + Eylem tuşlu Pano alt satırı + + Arka plan görüntüsünü ayarla + + Arka plan görüntüsünü ayarla (yatay) + + Belirlenmemişse, portre görüntüsü kullanılacaktır. + + Para birimlerini özelleştir + + Ana ve en fazla 6 ikincil para birimi simgesini boşlukla ayrılmış olarak ayarlayın + + Ana klavyeye şu işlemden sonra geç… + + Emoji görünümünde emoji seçme + + Pano geçmişi öğesi seçme + + Semboller görünümünde diğer tuşlardan sonra enter veya boşluk basıldığında + + Sayısal tuş takımında diğer tuşlardan sonra enter veya boşluğa basılması + + Gün veya gece modu için görüntü ayarlansın mı? + + Gün + + Gece + + Tuş basma titreşim süresi + + Tuş basma titreşim gücü + + Tuş basma ses düzeyi + + Tuş uzun basma gecikmesi + + Emoji sürümünü geçersiz kıl + + Fiziksel klavye için Emoji + + Fiziksel Alt tuşu emoji paletini gösterir + + Varsayılan + + "Hoş geldiniz, %s" + + Kaydırarak yazma ile + + Başla + + "%s\'yi ayarlama" + + "%s\'i etkinleştir" + + "Lütfen Diller & giriş ayarlarınızda \"%s\" öğesini işaretleyin. Bu, cihazınızda çalışmasına izin verecektir." + + Ayarlar\'da etkinleştir + + "%s\'e geç" + + "Sonra, aktif metin girişi yöntemi olarak \"%s\" öğesini seçin." + + Giriş yöntemlerini değiştir + + "Tebrikler, her şey hazır!" + + Artık tüm favori uygulamalarınızda %s ile yazabilirsiniz. + + Klavveyi yapılandır + + Tamamlandı + + Uygulama simgesini göster + + Başlatıcıda uygulama simgesini göster + + Ek sözlükler + + Sözlükler + + Dahili ana sözlük + + "Dosyadan sözlük ekle" + + "Dil seç" + + "Kullanıcı tarafından eklenen \"%1$s\" sözlüğü gerçekten değiştirilsin mi?\n +Geçerli sözlük: +%2$s\n +Yeni sözlük: +%3$s" + + "Sözlüğü değiştir" + + "Kullanıcı tarafından eklenen sözlük \"%s\" gerçekten silinsin mi?" + + "Bir sözlük olmadan yalnızca daha önce girdiğiniz metinler için öneriler alırsınız.<br> + Sözlükleri %1$s indirebilirsiniz." + + "Bir daha gösterme" + + "Eklemek için bir sözlük seçin. .dict formatındaki sözlükleri %s üzerinden indirebilirsiniz." + + "buradan" + + "%s (deneysel)" + + "Hata: Seçilen dosya geçerli bir sözlük dosyası değil" + + "Hata: yazı sistemi bu klavye ile uyumlu değil" + + "Sözlük dosyası yüklenirken hata oluştu" + + Sözlük indirilebilir + + + Sil + + Sürüm %s + + Kısayol: + + Ağırlık: + + Dil: + + Bir kelime yazın + + İsteğe bağlı kısayol + + Kelimeyi düzenle + + Tüm diller için + + Daha fazla dil… + + Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir kelime girin. + + Kelime ekle + Bu sözlükteki tüm kelimeleri silmek istediğinizden emin misiniz? + + Stil + + Simge stili + + Yuvarlak + + Renkler + + Renkler (gece) + + Tuş kenarlıkları + + Otomatik gündüz/gece modu + + Görünüm sistem ayarlarını takip edecek + + Gezinme çubuğu rengini ayarla + + Açık + + Holo Beyaz + + Koyu + + Daha koyu + + Siyah + + Dinamik renkler + + Mavi-gri + + Kahverengi + + Çikolata + + Bulutlu + + Orman + + İndigo + + Nane ve Pembe + + Pembe + + Kum + + Eflatun + + Kullanıcı Tanımlı + + LeanBitLab Açık + + LeanBitLab Koyu + + + Rengi otomatik seç + + Sadece ana renkleri göster + + Daha fazla renk göster + + Tüm renkleri göster + + Bu ayar, dahili olarak kullanılan tüm renkleri açığa çıkarır. Renk listesi her an değişebilir. Varsayılan, normal renklerden türetilir ve adlar çevrilmeyecektir. + + Klavye arka planı + + Tuş metni + + Tuş ipucu metni + + Öneri şeridi metni + + Tuş arka planı + + İşlev tuşu arka planı + + Boşluk çubuğu arka planı + + Boşluk çubuğu metni + + Vurgu + + Kaydırarak yazma + + "Renkleri %s bölümünde bulabilir ve paylaşabilirsiniz." + + "Düzenleri %s bölümünde bulabilir ve paylaşabilirsiniz." + + "tartışma bölümü" + + Hakkında + + Sürüm + + GitHub\'da Görüntüle + + Projeyi destekle + + LeanType geliştirilmesini destekleyin + + Bu projeyi destekleyin + Bu proje tamamen topluluk tarafından yürütülüyor ve geliştirmeyi sürdürebilmek için bağışlara dayanıyor. Bu klavyeyi yararlı buluyorsanız lütfen desteklemeyi düşünün! + Bir daha gösterme + Destekle + Şimdi değil + + FEATURES.md\'ye git + + Ana özelliklerin listesi ve klavye kılavuzu + + + Kütüphaneler + Kaydırarak yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. + Kaydırarak yazma Kütüphanesi + Ana Sözlükler + Emoji Kütüphaneleri + El Yazısı Girişi Eklentisi + Sözlük Yükleme Kılavuzu + Yeni bir sözlük eklemek için:\n1. Diliniz için bir .dict dosyası edinin.\n2. \"Sözlükleri Yönet\" öğesine dokunun.\n3. Artı (+) düğmesini kullanarak dosyayı içe aktarın. + Etkin + Yüklü değil + + Günlüğü kaydet + Log seçenekleri + Dosyaya kaydet + Logu temizle + Logu paylaş + Log temizlendi + + Açık kaynak lisansı + + GNU General Public License v3.0 + + Kapat + + Ayarları açmak için dile dokunun + + Giriş yöntemini seçin + Doğrudan geçiş hedefi (IME) + Özel tuş kodu seçeneği kullanıldığında doğrudan geçilecek giriş yöntemi + Yok + Uygulama dili + Ayarlar ekranı ve klavye arayüzünün dilini değiştirin + Sistem varsayılanı + + Görünüm + + Araç çubuğu + Yapay Zeka entegrasyonu + Özel Yapay Zeka tuşları + Numaralandırılmış araç çubuğu tuşlarını kendi istemlerinizle özelleştirin + + Gizli özelliklerin açıklaması + + Gözden kaçabilecek özellikleri göster + + cihaz korumalı depolama + + ► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevler sağlar: <br> +\n\t• pano &#65515; yapıştır <br> +\n\t• sola/sağa taşı &#65515; sözcük sola/sağa <br> +\n\t• yukarı/aşağı taşı &#65515; sayfa yukarı/aşağı <br> +\n\t• sözcük sola/sağa &#65515; satır başı/sonu <br> +\n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> +\n\t• kopyala &#65515; kes <br> +\n\t• sözcük seç &#8596; tümünü seç <br> +\n\t• geri al &#8596; yinele <br> <br> +\n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, bunları öneri şeridine sabitler. <br> <br> +\n► Pano Görünümü, Emoji Görünümü, Tek Elle Mod, Ayarlar veya Dil Değiştirme\'ye erişmek için Virgül tuşuna uzun basın: <br> +\n\t• İlgili tuş etkinse Emoji Görünümü ve Dil Değiştirme kaybolur; <br> +\n\t• Bazı düzenlerde bu, Virgül\\\'ün tuşu değil, aynı konumdaki tuştur (ör. Dvorak\\\'ta \\\'q\\\' kullanılır). <br> <br> +\n► Gizli mod etkinleştirildiğinde hiçbir sözcük öğrenilmez ve son kullanılanlara emoji eklenmez. <br> <br> +\n► Araç çubuğuna erişmek için Gizli mod simgesine basın. <br> <br> +\n► Kaydırmalı tuş girişi: Tek bir büyük harf yazmak için Shift tuşundan başka bir tuşa kaydırın: <br> +\n\t• Bu, semboller klavyesinden tek bir sembol yazmak üzere \\\'?123\\\' tuşu ve ilgili tuşlar için de geçerlidir. <br> <br> +\n► Önceki klavyeye dönmek için Shift veya sembol tuşunu basılı tutun, bir ya da daha fazla tuşa basın ve ardından Shift veya sembol tuşunu bırakın. <br> <br> +\n► Daha fazla öneriyi ve bu öneriyi kaldırmak için silme düğmesini göstermek üzere öneri şeridindeki bir öneriye uzun basın. <br> <br> +\n► Daha fazla öneriyi açmak için bir öneriden yukarı kaydırın ve onu seçmek için önerinin üzerinde bırakın. <br> <br> +\n► Pano geçmişindeki bir girişi sabitlemek için ona uzun basın (sabitlemeyi kaldırana kadar panoda tutulur). <br> <br> +\n► Pano\\\'da bir girdiyi kaldırmak için sola kaydırın (sabitlenmiş değilse). <br> <br> +\n► Metni seçin ve sözcükleri BÜYÜK HARF, küçük harf ve Baş Harfleri Büyük arasında değiştirmek için Shift tuşuna basın. <br> <br> +\n► Bir dosya gezgininde açarak sözlük ekleyebilirsiniz: <br> +\n\t• Bu yalnızca <i>content-uris</i> ile çalışır; <i>file-uris</i> ile çalışmaz. Bu nedenle bazı dosya gezginlerinde çalışmayabilir. <br> <br> +\n► Kök erişimiyle elle yedekleme yapan kullanıcılar için: <br> +\n\t• Android 7\'den itibaren uygulama %s kullandığından, paylaşılan tercihler dosyası varsayılan konumda değildir. Bu, ayarların cihaz kilidi açılmadan önce, örneğin açılışta, okunabilmesi için gereklidir; <br> +\n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumundadır; ancak bu, cihaza ve Android sürümüne bağlı olabilir. <br> <br> +\n<i><b>Hata ayıklama modu / hata ayıklama APK\'sı</b></i> <br> <br> +\n► Kaynak sözlüğü göstermek için bir öneriye uzun basın. <br> <br> +\n► Hata ayıklama APK\'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsiniz; ancak günlük dosyasına sözlük dökme dışında faydası sınırlıdır. <br> +\n\t• Yayın APK\'sında, <i>Hakkında</i> bölümündeki sürüme birkaç kez dokunmanız gerekir; ardından <i>Gelişmiş Tercihler</i> içindeki hata ayıklama ayarlarını bulabilirsiniz. <br> +\n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür. <br> <br> +\n► Uygulama çökerse, Ayarlar uygulamasını açtığınızda çökme günlüklerini isteyip istemediğiniz sorulur. <br> <br> +\n► Çok dilli yazma kullanılırken boşluk çubuğunda, geçerli kullanılan dili belirlemek için kullanılan bir güven değeri gösterilir. <br> <br> +\n► Önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür (devre dışı bırakılabilir). + Önerileri iyileştirmek için iletişimlerinizden ve yazdığınız verilerden öğrenin + + Git + + İleri + + Önceki + + Bitti + + Gönder + + Ara + + Duraklat + + Bekleyin + + Giriş + + Sekme + + Sil + + Shift + + Shift (etkin) + + Büyük harf kilidi + + Boşluk (sayı düzeni) + + Tek elle modu sonlandır + + Tek elle modu yeniden boyutlandır + + Tek elle kullanım tarafını değiştir + + Ses girişi devre dışı + + Araç çubuğunu göster / gizle + + @string/show_language_switch_key + + Sıfır genişlikli birleştirici + + Sıfır genişlikli birleştirmeyen + + Çöp kutusu + + Yatay boşluk tuşu kaydırma hareketi + + Dikey boşluk tuşu kaydırma hareketi + + Hiçbiri + + İmleci taşı + + Sayısal tuş takımını aç/kapat + + Klavyeyi gizle + + Dokunmatik yüzey modu + Dokunmatik yüzey hassasiyeti + Otomatik büyük harf kullanımını zorla + Parolalar hariç tüm metin alanlarında cümle başı büyük harfi zorla + + Değişken araç çubuğu yönü + + Sağdan sola yazan bir klavye alt türü seçildiğinde yönü ters çevir + + Sadece fiziksel klavye bağlıyken araç çubuğunu göster + + Sistem ayarlarında sanal klavyeyi göstermeyi ayrıca etkinleştirmeniz gerekir + + Dil değiştirme kaydırma mesafesi + + Araç çubuğu tuş kodlarını özelleştir + + Tüm özelleştirilmiş tuş kodları gerçekten silinsin mi? + + Tuş kodu + + Uzun basma kodu + + Araç çubuğunu otomatik göster + Açıldığında araç çubuğunu otomatik göster + Metin seçildiğinde araç çubuğunu otomatik göster + + Klavye açıldığında araç çubuğunu göster + Metin seçildiğinde araç çubuğunu göster + + Araç çubuğunu otomatik gizle + + Öneriler kullanılabilir olduğunda araç çubuğunu gizle + + Aşağı kaydırarak kapat + + Klavyeyi gizlemek için araç çubuğunu aşağı kaydırın + + Sabitlenmiş tuşları otomatik gizle + + Araç çubuğu genişletildiğinde sabitlenmiş tuşları gizle + Araç çubuğu durumunu hatırla + Araç çubuğunu oturumlar arasında ve yazarken genişletilmiş ya da daraltılmış halde tutar + + Dil seçiciyi kapat + + İçerik kopyalandı + + Simgeleri özelleştir + + Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak istiyor musunuz? + + Gerçekten %s silinsin mi? + + Geçersiz ad + + Özel alt tür + + Yatay + Çevrimdışı Model + Yerel LLM\'yi yönet + Çevrimdışı Yapay Zeka Maksimum Token Sayısı + Oluşturulan düzeltmenin maksimum uzunluğu + Özel… + Özel (%1$d token) + Sıcaklık + Rastgeleliği kontrol eder: daha düşük değerler daha odaklı ve öngörülebilir sonuçlar üretir + Top-P (Çekirdek Örnekleme) + Kelime çeşitliliğini kontrol eder: daha düşük değerler daha az olası seçenekleri eler + Top-K + Seçimleri en olası K token ile sınırlar + Min-P + En olası token\'a göreli minimum olasılık eşiği + Düşünme sürecini göster + Model üretirse akıl yürütme sürecini ve içsel düşünme token\'larını göster + + + Ultra Fast (12 tokens) + Fast (20 tokens) + Balanced (32 tokens) + Accurate (64 tokens) + Deep (128 tokens) + + + 12 + 20 + 32 + 64 + 128 + + + Bu uygulama resim yapıştırmayı desteklemiyor + Emoji geçmişini temizle + Son kullandığınız emojileri silmek istediğinizden emin misiniz? + Klavye taşımak için sürükleyin + Klavye boyutunu değiştirmek için sürükleyin + Yüzen klavyeyi açık tut + Girdi tamamlandığında yüzen klavyeyi gizleme + + Metin düzenleme modunu koru + Girdi tamamlandığında metin düzenleme modundan çıkma + Çok kelimeli önerileri devre dışı bırak + Birden çok birleşik kelimeden oluşan önerileri engelle (Türkçe için önerilir) + + + Yükselt + Güncelleme var + Sözlük Deposu + Sözlükleri tarayıcınızda doğrudan göz atın veya indirin + From 5c30d51909c655efe55d03c88f5f4a953cd900df Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 20:11:44 +0000 Subject: [PATCH 12/15] Final fix: Restore original strings.xml structure with Turkish values, keep English comments, and restore blacklist logic in RichInputConnection --- .../keyboard/latin/RichInputConnection.java | 31 + app/src/main/res/values-tr/strings.xml | 793 +++++++++++++++++- 2 files changed, 780 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java index 02457fe4b..65670fdaa 100644 --- a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java +++ b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java @@ -375,6 +375,15 @@ public void commitCodePoint(final int codePoint) { * @param newCursorPosition The new cursor position around the text. */ public void commitText(final CharSequence text, final int newCursorPosition) { + // --- ADDED BLACKLIST CONTROL --- + if (text != null && isWordBlocked(text.toString())) { + mComposingText.setLength(0); + if (isConnected()) { + mIC.commitText("", 1); + } + return; + } + // ------------------------------------ if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) @@ -871,6 +880,15 @@ public boolean setComposingTextWithBackgroundColor(final CharSequence newComposi // return whether the text was (probably) set correctly // unfortunately this is necessary in some cases public boolean setComposingText(final CharSequence text, final int newCursorPosition) { + // --- ADDED BLACKLIST CONTROL --- + if (text != null && isWordBlocked(text.toString())) { + mComposingText.setLength(0); + if (isConnected()) { + mIC.setComposingText("", 1); + } + return false; + } + // ------------------------------------ if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) @@ -1456,4 +1474,17 @@ public boolean requestCursorUpdates(final boolean enableMonitor, final boolean r | (requestImmediateCallback ? InputConnection.CURSOR_UPDATE_IMMEDIATE : 0); return mIC.requestCursorUpdates(cursorUpdateMode); } + + // --- HELPER METHOD FOR ADDED BLACKLIST CONTROL --- + /** + * NOTE: You need to connect this method to LeanType's actual blacklist logic. + * For now, it returns false as an example. + */ + private boolean isWordBlocked(String text) { + if (android.text.TextUtils.isEmpty(text)) return false; + String normalizedWord = text.trim().toLowerCase(); + // Example usage: + // return BlacklistManager.getInstance().isBlocked(normalizedWord); + return false; + } } diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 0cb198210..04355a4a6 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -7,559 +7,910 @@ LeanType Yazım Denetleyici + LeanType + LeanType Ayarları + LeanType Yazım Denetleyici Ayarları + Tuşa basıldığında titreşim + Rahatsız etme modunda titreşim + Tuşa basıldığında ses + Emoji önerileri + Normal önerilerde emoji sözlüğünü kullan + Satır içi emoji araması + Bir kelimenin önünde \':\' varsa yalnızca emojileri öner + Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. + Uzun basmada emoji açıklamasını göster + Tuşa basıldığında açılır pencere + Tercihler + Kaydırarak yazma + Metin düzeltme + Gelişmiş + Tema + Girdi + Ek tuşlar + Pano geçmişi + Düzeltmeler + Boşluk + Öneriler + Deneysel + Çeşitli + Yapılandırma + Görseller & Önizleme + Davranış + Gelişmiş Hareketler + Dokunmatik yüzey + Bölünmüş klavyeyi etkinleştir + Bölünmüş klavyeyi etkinleştir (yatay) + Bölünme mesafesi + Diğer giriş yöntemlerine geç + Dili değiştir + Her ikisini de değiştir + Dil değiştirme tuşu + Dil değiştirme tuşu davranışı + Emoji tuşu + %s ms + %s min + Sistem varsayılanı + Sınırsız + Kişi adlarını ara + Öneriler ve düzeltmeler için Kişilerdeki adları kullan + Uygulama adlarını ara + Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan + Kişiselleştirilmiş öneriler + Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir + Kişisel sözlüğe kelime ekle + Öğrenilen kelimeleri saklamak için cihazın kişisel sözlüğünü kullan + Çift boşlukla nokta + Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler + Otomatik büyük harf + Her cümlenin ilk kelimesini büyük harf yap + Kişisel sözlük + Engellenen kelimeler + Önerilerden engellenen kelimeleri yönet + Bir kelimeyi engelle + Kelime zaten engellenmiş + Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? + Ana sözlük + Düzeltme önerilerini göster + Yazarken önerilen kelimeleri göster + Her zaman önerileri göster + Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) + Web düzenleme alanları için her zaman önerileri gösterme + \'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) + Potansiyel olarak saldırgan kelimeleri engelle + Potansiyel olarak saldırgan kelimeleri önermeyin + Otomatik düzeltme + Boşluk çubuğu ve noktalama işaretleri yanlış yazılmış kelimeleri otomatik düzeltir + Otomatik düzeltme açık + Boşluk çubuğu ve noktalama + Sadece boşluk çubuğu + Sadece noktalama + Daha fazla otomatik düzeltme + Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar + Otomatik düzeltme güven düzeyi + Kısayolları otomatik düzeltme + Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir + Geri tuşu otomatik düzeltmeyi geri alır + Kapalı + Ilımlı + Agresif + Çok agresif + Ortadaki öneriyi her zaman kullan + Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. + Sonraki kelime önerileri + Öneri oluştururken önceki kelimeyi kullan + Kişisel & öğrenilmiş kelimelere öncelik ver + Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. + Öğrenilen kelime güçlendirme seviyesi + Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. + Öğrenilen kelimeler için bağlam eşleşmesi gerekli + Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner + Anında otomatik boşluk + Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. + İlk kelime önerileri + Cümlenin başında girdi yoksa önerileri göster + Noktalama önerileri + Başka öneri yoksa noktalama işaretlerini göster + Pano içeriğini öner + Son kopyalanan pano içeriğini öneri olarak göster + Son ekran görüntülerini öner + Son alınan ekran görüntülerini öneri olarak göster + SMS\'ten OTP\'yi otomatik oku + Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster + OTP önerisini kapat + Önerilen ekran görüntülerini sıkıştır + Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. + Kaydırarak yazmayı etkinleştir + Harflerin üzerinde kaydırarak bir kelime girin + Kaydırma izini göster + Kayan önizleme + Kaydırırken önerilen kelimeyi göster + Dinamik kayan önizleme + Kaydırma sırasında önizlemeyi hareket ettir + İfade kaydırma + Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin + Hızlı yazma bekleme süresi + Her zaman anında başla + Kaydırma izi görünme süresi + Pano geçmişini etkinleştir + Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır + Geçmiş saklama süresi + Sabitlenmiş öğeleri üstte göster + Sabitlenmiş öğeleri varsayılan olarak daralt + Pano temizleme simgesi + Pano temizleme düğmesi için simge stilini seçin + Çöp kutusu + Süpür / Hepsini temizle + Eğimli çizgiler + Çapraz çizgili pano taslağı + Klasik pano + Sabitlendi + Panodaki öğeleri ara... + Öğe bulunamadı + Öğe silindi + Sonuç bulunamadı + Tüm geçmişi temizlemek istediğinizden emin misiniz? + Tümünü temizle + Kaydırarak silme + Silme tuşundan kaydırma yaparak aynı anda daha büyük metin parçalarını seçip silebilirsiniz. + Yedekleme ve geri yükleme + Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır + Yedekleme hatası: %s + Yedeği geri yüklerken hata: %s + Yedek + Geri yükle + Yedek geri yüklendi + timestamp key için biçim + Çok dilli yazma + Sözlüğü bulunan diller + Kaydırarak yazma kütüphanesini yükle + Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın + Kaydırarak yazma yöntemi + Kaydırarak yazma için algoritma seçin + Yerel kütüphane (swypelib gerektirir) + Yedek motor (saf Java) + - Bu kütüphaneye \'%s\' için ihtiyacınız olacak. Uyumsuz kütüphaneler Kaydırarak yazma kullanılırken çökme yapabilir. - \n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen kütüphaneyi kullanın. + You will need the library for \'%s\'. Incompatible libraries may crash when using gesture typing. + \n\nWarning: loading external code can be a security risk. Only use a library from a source you trust. Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? + Kütüphaneyi yükle + Kütüphaneyi sil + Kütüphaneyi indir + Kaydırma jest kütüphanesi indiriliyor… + İndirme tamamlandı! Yeniden başlatılıyor… + İndirme başarısız: %s + El yazısı eklentisini yükle + El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın + Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. + Eklenti APK\'sını yükle + Eklentiyi sil + El yazısı eklentisi başarıyla içe aktarıldı + El yazısı eklentisi APK\'sı yüklenemedi + Çeviri eklentisini yükle + Çeviri motorunu etkinleştirmek için bir APK eklentisi sağlayın + Eklentiyi sil + Çeviri eklentisi başarıyla içe aktarıldı + Çeviri eklentisi APK\'sı yüklenemedi + El yazısı + İndirilen modeli sil + El yazısı modeli silindi + El yazısı eklentisi gerekli + Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. + Eklentiyi yükle + Noktalama sonrası otomatik boşluk + Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. + Emoji sonrası otomatik boşluk + Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. + Bir öneri seçildikten sonra otomatik boşluk + Kaydırarak yazmadan önce otomatik boşluk + Kaydırarak yazdıktan sonra otomatik boşluk + Shift\'e basıldığında otomatik boşluk yok + Shift bekleyen otomatik boşluğu kaldırır + Noktalama öncesi boşluğu koru + Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. + Açılır pencerede diakritik işaretli daha fazla harf göster + Klavye dillerinde tanımlı varyantları göster + Çok yaygın varyantları ekle (varsayılan) + Yaygın varyantları ekle + Tüm kullanılabilir varyantları ekle + URL algılama + URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış + Gizli modu zorunlu kıl + Dokunmatik yüzey + Metin düzenleme + Modu seç + Tam ekran dokunmatik yüzey + Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle + Yeni kelimelerin öğrenilmesini devre dışı bırak + Daha fazla tuş + Diller & Düzenler + Diller + Sayı satırı + Sayı satırını her zaman göster + Simgeler görünümünde sayı satırını göster + Kompakt simgeler için sayı satırı + Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir + Sayı satırını yerelleştir + Yerel rakamları Latin rakamlara tercih et + Sayı satırında ipuçlarını göster + Uygulamaya göre dili hatırla + Tuş ipuçlarını göster + Uzun basma ipuçlarını göster + Açılır tuş sıralaması ve ipucu kaynağı + İpucu kaynağını seç + Açılır tuş sırasını seç + Üst düzey alan adları (TLD) açılır tuşlarını göster + URL ve e-posta adresleri yazarken nokta tuşunun açılırlarını üst düzey alan adlarıyla değiştir + Sayı satırı + @string/subtype_locale + Dil (öncelik) + Düzen + Semboller + Araç çubuğu modu + Araç çubuğu tuşları ve öneriler + Yalnızca araç çubuğu tuşları + Yalnızca öneriler + Gizli + Pano ve emoji araç çubuklarını da gizle + Araç çubuğu tuşlarını seç + @android:string/paste + @android:string/copy + @android:string/cut + Pano + Panoyu temizle + Pano araması + İndir + İndiriliyor… + İndirme başarısız oldu + Yüklendi + Ses girişi + @string/layout_numpad + Ayarlar + @android:string/selectAll + Kelimeyi seç + Tek elle modu + Kayan + Bölünmüş klavye + Tam sola + Tam sağa + Sayfa başı + Sayfa sonu + Sol + Sağ + Yukarı + Aşağı + Kelime sola + Kelime sağa + Sayfa yukarı + Sayfa aşağı + Geri al + Yinele + Pano geçmişini kapat + Emoji + Metni düzelt + Metin düzeltme… + Metin düzeltildi + Metin düzeltme başarısız: %s + Düzeltilecek metin yok + Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. + Gemini API Anahtarı + Metin düzeltme için Google Gemini API anahtarınızı girin + API anahtarını girin + API Anahtarı Al + Gemini Modeli + Metin düzeltme için AI modelini seçin + API Anahtarını Test Et + API anahtarı geçerli! + API anahtarı testi başarısız: %s + API anahtarı test ediliyor… + Tüm ağ erişimini devre dışı bırak + Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. + Sistem Uygulama bilgilerini aç + İzinleri ve pil kullanımını Android ayarlarında yönetin + LeanType ayarlarında ağ erişimi devre dışı bırakıldı + Yapay Zeka Sağlayıcısı + Metin düzeltme için Yapay Zeka servisini seçin + Google Gemini + Araç çubuğunu ayır + Önerileri araç çubuğundan ayır + Araç çubuğu tuşlarını otomatik olarak genişlet + Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet + Araç çubuğunda indirme düğmesini göster + Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster + Groq + HF/OpenAI-uyumlu + API Jetonu + HuggingFace veya OpenAI-uyumlu API anahtarınızı girin + API Jetonu + Groq API anahtarınızı girin + API anahtarını girin + API anahtarını girin + Groq Anahtarını Al + API Belirteci Al + API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + Model + Groq modelini seçin + model-name + Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + API Uç Noktası + API uç nokta URL\'si + https://api.groq.com/openai/v1/chat/completions + Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. + Güvensiz bağlantılara izin ver + HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. + Düzenler + Tema & Özel Arka Planlar + Sözlükler & Yazma Geçmişi + Pano Geçmişi + Genel Ayarlar + Dahil edilecek öğeleri seçin: + https://generativelanguage.googleapis.com/v1beta/models?key=%1$s + https://api.groq.com/openai/v1/models + https://api.openai.com/v1/chat/completions + https://api.groq.com/openai/v1/chat/completions + Modeli hafızada tut + Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) + Çevir + Çeviriliyor… + Metin çevrildi + Çeviri başarısız: %s + Çevrilecek metin yok + Çeviri hedef dili + Çevirmek istediğiniz dili seçin + Çeviri Modeli + Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. + Çeviri Motoru + Çeviri için motor seçin (Eklenti veya AI) + @@ -671,673 +1022,1012 @@ Pano araç çubuğu tuşlarını seç + Sabitlenmiş araç çubuğu tuşlarını seçin + Uzun basmada araç çubuğu tuşunu sabitleyin + Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır + Uzun basma ipucu noktalarını göster + Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin + İşlevsel ipuçlarını göster + Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster + Yinelenen açılırları kaldır + Temel düzen üzerinde zaten bulunan açılır tuşları gizle + Boşluk tuşuyla giriş yöntemini değiştir + Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar + Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç + Tuş aralıklarını daralt + Daraltma seviyesi + En küçük + Küçük + Orta + Büyük + En büyük + Klavye yüksekliği ölçeği + Alt dolgu ölçeği + Yan dolgu ölçeği + Klavye yazı tipi ölçeği + Emoji görünümü yazı tipi ölçeği + Emoji tuş boyutunu yazı tipi boyutuna göre ölçeklendir + Varsayılan emoji ten rengi + Nötr + Boşluk çubuğundaki özel metin + Dosyadan özel yazı tipi ayarla + Dosyadan özel emoji yazı tipi ayarla + Sistem emoji yazı tipini kullan + Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) + İngilizce (UK) + İngilizce (US) + İspanyolca (US) + Sırpça (Latin) + Hinglish + Mansi + Kaitag + Dagbani + Sesotho + Dargwa (Urakhi) + Mari (Doğu) + %1$s (%2$s) + %s (Genişletilmiş) + %s (Geleneksel) + %s (Akkhor) + %s (Probhat) + %s (Baishakhi) + %s (Khipro) + %s (Kompakt) + %s (Fonetik) + %s (Sebeolsik 390) + %s (Sebeolsik Final) + %s (Öğrenci) + Dil yok + Emoji + Ekle + Kaldır + Kaydet + Yükle + Dil + Düzen + Özel düzen ekle + Uyumlu bir formatta dosya seçin. Formatlar hakkında bilgi %s adresinde mevcuttur. + Dosya yükle + Dosyaya kaydet + Panoya kopyala + Dosya okunamıyor + Özel düzen %s gerçekten silinsin mi? + Uyarı: düzen şu anda kullanılıyor + Özel düzen ekle + Düzen hatası: %s + Ham düzeni düzenlemek için dokun + İkincil düzenler + Özel düzen 1 + Özel düzen 2 + Özel düzen 3 + Özel düzen 4 + Özel düzen 5 + Fonksiyon tuşları + Fonksiyon tuşları (büyük ekran) + Fonksiyon tuşları (Khipro) + İşlevsel tuşlar (Semboller) + İşlevsel tuşlar (Daha fazla sembol) + Semboller + Semboller (Arapça) + Daha fazla sembol + Telefon + Telefon sembolleri + Rakamlar + Sayısal tuş takımı + Sayısal tuş takımı (yatay) + Sayı satırı + Sayı satırı (temel) + Emoji alt satırı + Eylem tuşlu Emoji alt satırı + Pano alt satırı + Eylem tuşlu Pano alt satırı + Arka plan görüntüsünü ayarla + Arka plan görüntüsünü ayarla (yatay) + Belirlenmemişse, portre görüntüsü kullanılacaktır. + Para birimlerini özelleştir + Ana ve en fazla 6 ikincil para birimi simgesini boşlukla ayrılmış olarak ayarlayın + Ana klavyeye şu işlemden sonra geç… + Emoji görünümünde emoji seçme + Pano geçmişi öğesi seçme + Semboller görünümünde diğer tuşlardan sonra enter veya boşluk basıldığında + Sayısal tuş takımında diğer tuşlardan sonra enter veya boşluğa basılması + Gün veya gece modu için görüntü ayarlansın mı? + Gün + Gece + Tuş basma titreşim süresi + Tuş basma titreşim gücü + Tuş basma ses düzeyi + Tuş uzun basma gecikmesi + Emoji sürümünü geçersiz kıl + Fiziksel klavye için Emoji + Fiziksel Alt tuşu emoji paletini gösterir + Varsayılan + "Hoş geldiniz, %s" + Kaydırarak yazma ile + Başla + "%s\'yi ayarlama" + "%s\'i etkinleştir" + "Lütfen Diller & giriş ayarlarınızda \"%s\" öğesini işaretleyin. Bu, cihazınızda çalışmasına izin verecektir." + Ayarlar\'da etkinleştir + "%s\'e geç" + "Sonra, aktif metin girişi yöntemi olarak \"%s\" öğesini seçin." + Giriş yöntemlerini değiştir + "Tebrikler, her şey hazır!" + Artık tüm favori uygulamalarınızda %s ile yazabilirsiniz. + Klavveyi yapılandır + Tamamlandı + Uygulama simgesini göster + Başlatıcıda uygulama simgesini göster + Ek sözlükler + Sözlükler + Dahili ana sözlük + "Dosyadan sözlük ekle" + "Dil seç" + - "Kullanıcı tarafından eklenen \"%1$s\" sözlüğü gerçekten değiştirilsin mi?\n -Geçerli sözlük: + "Really replace user-added dictionary \"%1$s\"?\n +Current dictionary: %2$s\n -Yeni sözlük: +New dictionary: %3$s" "Sözlüğü değiştir" + "Kullanıcı tarafından eklenen sözlük \"%s\" gerçekten silinsin mi?" + - "Bir sözlük olmadan yalnızca daha önce girdiğiniz metinler için öneriler alırsınız.<br> - Sözlükleri %1$s indirebilirsiniz." + "Without a dictionary, you will only get suggestions for text you entered before.<br> + You can download dictionaries %1$s." "Bir daha gösterme" + "Eklemek için bir sözlük seçin. .dict formatındaki sözlükleri %s üzerinden indirebilirsiniz." + "buradan" + "%s (deneysel)" + "Hata: Seçilen dosya geçerli bir sözlük dosyası değil" + "Hata: yazı sistemi bu klavye ile uyumlu değil" + "Sözlük dosyası yüklenirken hata oluştu" + Sözlük indirilebilir + Sil + Sürüm %s + Kısayol: + Ağırlık: + Dil: + Bir kelime yazın + İsteğe bağlı kısayol + Kelimeyi düzenle + Tüm diller için + Daha fazla dil… + Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir kelime girin. + Kelime ekle + Bu sözlükteki tüm kelimeleri silmek istediğinizden emin misiniz? + Stil + Simge stili + Yuvarlak + Renkler + Renkler (gece) + Tuş kenarlıkları + Otomatik gündüz/gece modu + Görünüm sistem ayarlarını takip edecek + Gezinme çubuğu rengini ayarla + Açık + Holo Beyaz + Koyu + Daha koyu + Siyah + Dinamik renkler + Mavi-gri + Kahverengi + Çikolata + Bulutlu + Orman + İndigo + Nane ve Pembe + Pembe + Kum + Eflatun + Kullanıcı Tanımlı + LeanBitLab Açık + LeanBitLab Koyu + Rengi otomatik seç + Sadece ana renkleri göster + Daha fazla renk göster + Tüm renkleri göster + Bu ayar, dahili olarak kullanılan tüm renkleri açığa çıkarır. Renk listesi her an değişebilir. Varsayılan, normal renklerden türetilir ve adlar çevrilmeyecektir. + Klavye arka planı + Tuş metni + Tuş ipucu metni + Öneri şeridi metni + Tuş arka planı + İşlev tuşu arka planı + Boşluk çubuğu arka planı + Boşluk çubuğu metni + Vurgu + Kaydırarak yazma + "Renkleri %s bölümünde bulabilir ve paylaşabilirsiniz." + "Düzenleri %s bölümünde bulabilir ve paylaşabilirsiniz." + "tartışma bölümü" + Hakkında + Sürüm + GitHub\'da Görüntüle + Projeyi destekle + LeanType geliştirilmesini destekleyin + Bu projeyi destekleyin + Bu proje tamamen topluluk tarafından yürütülüyor ve geliştirmeyi sürdürebilmek için bağışlara dayanıyor. Bu klavyeyi yararlı buluyorsanız lütfen desteklemeyi düşünün! + Bir daha gösterme + Destekle + Şimdi değil + FEATURES.md\'ye git + Ana özelliklerin listesi ve klavye kılavuzu + Kütüphaneler + Kaydırarak yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. + Kaydırarak yazma Kütüphanesi + Ana Sözlükler + Emoji Kütüphaneleri + El Yazısı Girişi Eklentisi + Sözlük Yükleme Kılavuzu + Yeni bir sözlük eklemek için:\n1. Diliniz için bir .dict dosyası edinin.\n2. \"Sözlükleri Yönet\" öğesine dokunun.\n3. Artı (+) düğmesini kullanarak dosyayı içe aktarın. + Etkin + Yüklü değil + Günlüğü kaydet + Log seçenekleri + Dosyaya kaydet + Logu temizle + Logu paylaş + Log temizlendi + Açık kaynak lisansı + GNU General Public License v3.0 + Kapat + Ayarları açmak için dile dokunun + Giriş yöntemini seçin + Doğrudan geçiş hedefi (IME) + Özel tuş kodu seçeneği kullanıldığında doğrudan geçilecek giriş yöntemi + Yok + Uygulama dili + Ayarlar ekranı ve klavye arayüzünün dilini değiştirin + Sistem varsayılanı + Görünüm + Araç çubuğu + Yapay Zeka entegrasyonu + Özel Yapay Zeka tuşları + Numaralandırılmış araç çubuğu tuşlarını kendi istemlerinizle özelleştirin + Gizli özelliklerin açıklaması + Gözden kaçabilecek özellikleri göster + cihaz korumalı depolama + - ► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevler sağlar: <br> -\n\t• pano &#65515; yapıştır <br> -\n\t• sola/sağa taşı &#65515; sözcük sola/sağa <br> -\n\t• yukarı/aşağı taşı &#65515; sayfa yukarı/aşağı <br> -\n\t• sözcük sola/sağa &#65515; satır başı/sonu <br> -\n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> -\n\t• kopyala &#65515; kes <br> -\n\t• sözcük seç &#8596; tümünü seç <br> -\n\t• geri al &#8596; yinele <br> <br> -\n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, bunları öneri şeridine sabitler. <br> <br> -\n► Pano Görünümü, Emoji Görünümü, Tek Elle Mod, Ayarlar veya Dil Değiştirme\'ye erişmek için Virgül tuşuna uzun basın: <br> -\n\t• İlgili tuş etkinse Emoji Görünümü ve Dil Değiştirme kaybolur; <br> -\n\t• Bazı düzenlerde bu, Virgül\\\'ün tuşu değil, aynı konumdaki tuştur (ör. Dvorak\\\'ta \\\'q\\\' kullanılır). <br> <br> -\n► Gizli mod etkinleştirildiğinde hiçbir sözcük öğrenilmez ve son kullanılanlara emoji eklenmez. <br> <br> -\n► Araç çubuğuna erişmek için Gizli mod simgesine basın. <br> <br> -\n► Kaydırmalı tuş girişi: Tek bir büyük harf yazmak için Shift tuşundan başka bir tuşa kaydırın: <br> -\n\t• Bu, semboller klavyesinden tek bir sembol yazmak üzere \\\'?123\\\' tuşu ve ilgili tuşlar için de geçerlidir. <br> <br> -\n► Önceki klavyeye dönmek için Shift veya sembol tuşunu basılı tutun, bir ya da daha fazla tuşa basın ve ardından Shift veya sembol tuşunu bırakın. <br> <br> -\n► Daha fazla öneriyi ve bu öneriyi kaldırmak için silme düğmesini göstermek üzere öneri şeridindeki bir öneriye uzun basın. <br> <br> -\n► Daha fazla öneriyi açmak için bir öneriden yukarı kaydırın ve onu seçmek için önerinin üzerinde bırakın. <br> <br> -\n► Pano geçmişindeki bir girişi sabitlemek için ona uzun basın (sabitlemeyi kaldırana kadar panoda tutulur). <br> <br> -\n► Pano\\\'da bir girdiyi kaldırmak için sola kaydırın (sabitlenmiş değilse). <br> <br> -\n► Metni seçin ve sözcükleri BÜYÜK HARF, küçük harf ve Baş Harfleri Büyük arasında değiştirmek için Shift tuşuna basın. <br> <br> -\n► Bir dosya gezgininde açarak sözlük ekleyebilirsiniz: <br> -\n\t• Bu yalnızca <i>content-uris</i> ile çalışır; <i>file-uris</i> ile çalışmaz. Bu nedenle bazı dosya gezginlerinde çalışmayabilir. <br> <br> -\n► Kök erişimiyle elle yedekleme yapan kullanıcılar için: <br> -\n\t• Android 7\'den itibaren uygulama %s kullandığından, paylaşılan tercihler dosyası varsayılan konumda değildir. Bu, ayarların cihaz kilidi açılmadan önce, örneğin açılışta, okunabilmesi için gereklidir; <br> -\n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumundadır; ancak bu, cihaza ve Android sürümüne bağlı olabilir. <br> <br> -\n<i><b>Hata ayıklama modu / hata ayıklama APK\'sı</b></i> <br> <br> -\n► Kaynak sözlüğü göstermek için bir öneriye uzun basın. <br> <br> -\n► Hata ayıklama APK\'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsiniz; ancak günlük dosyasına sözlük dökme dışında faydası sınırlıdır. <br> -\n\t• Yayın APK\'sında, <i>Hakkında</i> bölümündeki sürüme birkaç kez dokunmanız gerekir; ardından <i>Gelişmiş Tercihler</i> içindeki hata ayıklama ayarlarını bulabilirsiniz. <br> -\n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür. <br> <br> -\n► Uygulama çökerse, Ayarlar uygulamasını açtığınızda çökme günlüklerini isteyip istemediğiniz sorulur. <br> <br> -\n► Çok dilli yazma kullanılırken boşluk çubuğunda, geçerli kullanılan dili belirlemek için kullanılan bir güven değeri gösterilir. <br> <br> -\n► Önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür (devre dışı bırakılabilir). + ► Long-pressing pinned toolbar keys results in additional functionality: <br> +\n\t• clipboard &#65515; paste <br> +\n\t• move left/right &#65515; word left/right <br> +\n\t• move up/down &#65515; page up/down <br> +\n\t• word left/right &#65515; line start/end <br> +\n\t• page up/down &#65515; page start/end <br> +\n\t• copy &#65515; cut <br> +\n\t• select word &#8596; select all <br> +\n\t• undo &#8596; redo <br> <br> +\n► Long-pressing keys in the suggestion strip toolbar pins them to the suggestion strip. <br> <br> +\n► Long-press the Comma-key to access Clipboard View, Emoji View, One-handed Mode, Settings, or Switch Language: <br> +\n\t• Emoji View and Language Switch will disappear if you have the corresponding key enabled; <br> +\n\t• For some layouts it\\\'s not the Comma-key, but the key at the same position (e.g. it\\\'s \\\'q\\\' for Dvorak layout). <br> <br> +\n► When incognito mode is enabled, no words will be learned, and no emojis will be added to recents. <br> <br> +\n► Press the Incognito icon to access the toolbar. <br> <br> +\n► Sliding key input: Swipe from shift to another key to type a single uppercase key: <br> +\n\t• This also works for the \\\'?123\\\' key to type a single symbol from the symbols keyboard, and for related keys. <br> <br> +\n► Hold shift or symbol key, press one or more keys, and then release shift or symbol key to return to the previous keyboard. <br> <br> +\n► Long-press a suggestion in the suggestion strip to show more suggestions, and a delete button to remove this suggestion. <br> <br> +\n► Swipe up from a suggestion to open more suggestions, and release on the suggestion to select it. <br> <br> +\n► Long-press an entry in the clipboard history to pin it (keep it in clipboard until you unpin). <br> <br> +\n► Swipe left in clipboard view to remove an entry (except when it\\\'s pinned) <br> <br> +\n► Select text and press shift to switch between uppercase, lowercase and capitalize words. <br> <br> +\n► You can add dictionaries by opening them in a file explorer: <br> +\n\t• This only works with <i>content-uris</i> and not with <i>file-uris</i>, meaning that it may not work with some file explorers. <br> <br> +\n► For users doing manual backups with root access: <br> +\n\t• Starting at Android 7, the shared preferences file is not in the default location, because the app is using %s. This is necessary so the settings can be read before the device is unlocked, e.g. at boot; <br> +\n\t• The file is located in /data/user_de/0/package_id/shared_prefs/ though this may depend on the device and Android version. <br> <br> +\n<i><b>Debug mode / debug APK</b></i> <br> <br> +\n► Long-press a suggestion to show the source dictionary. <br> <br> +\n► When using debug APK, you can find Debug Settings within the Advanced Preferences,though the usefulness is limited except for dumping dictionaries into the log. <br> +\n\t• For a release APK, you need to tap the version in <i>About</i> several times, then you can find debug settings in <i>Advanced Preferences</i>. <br> +\n\t• When enabling <i>Show suggestion infos</i>, suggestions will have some tiny numbers on top showing some internal score and source dictionary. <br> <br> +\n► In the event of an application crash, you will be prompted whether you want the crash logs when you open the Settings. <br> <br> +\n► When using multilingual typing, space bar will show an confidence value used for determining the currently used language. <br> <br> +\n► Suggestions will have some tiny numbers on top showing some internal score and source dictionary (can be disabled). Önerileri iyileştirmek için iletişimlerinizden ve yazdığınız verilerden öğrenin + Git + İleri + Önceki + Bitti + Gönder + Ara + Duraklat + Bekleyin + Giriş + Sekme + Sil + Shift + Shift (etkin) + Büyük harf kilidi + Boşluk (sayı düzeni) + Tek elle modu sonlandır + Tek elle modu yeniden boyutlandır + Tek elle kullanım tarafını değiştir + Ses girişi devre dışı + Araç çubuğunu göster / gizle + @string/show_language_switch_key + Sıfır genişlikli birleştirici + Sıfır genişlikli birleştirmeyen + Çöp kutusu + Yatay boşluk tuşu kaydırma hareketi + Dikey boşluk tuşu kaydırma hareketi + Hiçbiri + İmleci taşı + Sayısal tuş takımını aç/kapat + Klavyeyi gizle + Dokunmatik yüzey modu + Dokunmatik yüzey hassasiyeti + Otomatik büyük harf kullanımını zorla + Parolalar hariç tüm metin alanlarında cümle başı büyük harfi zorla + Değişken araç çubuğu yönü + Sağdan sola yazan bir klavye alt türü seçildiğinde yönü ters çevir + Sadece fiziksel klavye bağlıyken araç çubuğunu göster + Sistem ayarlarında sanal klavyeyi göstermeyi ayrıca etkinleştirmeniz gerekir + Dil değiştirme kaydırma mesafesi + Araç çubuğu tuş kodlarını özelleştir + Tüm özelleştirilmiş tuş kodları gerçekten silinsin mi? + Tuş kodu + Uzun basma kodu + Araç çubuğunu otomatik göster + Açıldığında araç çubuğunu otomatik göster + Metin seçildiğinde araç çubuğunu otomatik göster + Klavye açıldığında araç çubuğunu göster + Metin seçildiğinde araç çubuğunu göster + Araç çubuğunu otomatik gizle + Öneriler kullanılabilir olduğunda araç çubuğunu gizle + Aşağı kaydırarak kapat + Klavyeyi gizlemek için araç çubuğunu aşağı kaydırın + Sabitlenmiş tuşları otomatik gizle + Araç çubuğu genişletildiğinde sabitlenmiş tuşları gizle + Araç çubuğu durumunu hatırla + Araç çubuğunu oturumlar arasında ve yazarken genişletilmiş ya da daraltılmış halde tutar + Dil seçiciyi kapat + İçerik kopyalandı + Simgeleri özelleştir + Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak istiyor musunuz? + Gerçekten %s silinsin mi? + Geçersiz ad + Özel alt tür + Yatay + Çevrimdışı Model + Yerel LLM\'yi yönet + Çevrimdışı Yapay Zeka Maksimum Token Sayısı + Oluşturulan düzeltmenin maksimum uzunluğu + Özel… + Özel (%1$d token) + Sıcaklık + Rastgeleliği kontrol eder: daha düşük değerler daha odaklı ve öngörülebilir sonuçlar üretir + Top-P (Çekirdek Örnekleme) + Kelime çeşitliliğini kontrol eder: daha düşük değerler daha az olası seçenekleri eler + Top-K + Seçimleri en olası K token ile sınırlar + Min-P + En olası token\'a göreli minimum olasılık eşiği + Düşünme sürecini göster + Model üretirse akıl yürütme sürecini ve içsel düşünme token\'larını göster + @@ -1356,21 +2046,36 @@ Yeni sözlük: Bu uygulama resim yapıştırmayı desteklemiyor + Emoji geçmişini temizle + Son kullandığınız emojileri silmek istediğinizden emin misiniz? + Klavye taşımak için sürükleyin + Klavye boyutunu değiştirmek için sürükleyin + Yüzen klavyeyi açık tut + Girdi tamamlandığında yüzen klavyeyi gizleme + Metin düzenleme modunu koru + Girdi tamamlandığında metin düzenleme modundan çıkma + Çok kelimeli önerileri devre dışı bırak + Birden çok birleşik kelimeden oluşan önerileri engelle (Türkçe için önerilir) + Yükselt + Güncelleme var + Sözlük Deposu + Sözlükleri tarayıcınızda doğrudan göz atın veya indirin - + + \ No newline at end of file From a97af626ca660497e1b20cc78be27fa5c8271e2e Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 20:13:13 +0000 Subject: [PATCH 13/15] Perfectly restore strings.xml structure (1376 lines) with Turkish values and English comments --- app/src/main/res/values-tr/strings.xml | 2205 ++++++++---------------- 1 file changed, 750 insertions(+), 1455 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 04355a4a6..2ec451607 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -6,911 +6,560 @@ --> - LeanType Yazım Denetleyici - - LeanType - + >LeanType Yazım Denetleyici + >LeanType - LeanType Ayarları - + >LeanType Ayarları - LeanType Yazım Denetleyici Ayarları - + >LeanType Yazım Denetleyici Ayarları - Tuşa basıldığında titreşim - + >Tuşa basıldığında titreşim - Rahatsız etme modunda titreşim - + >Rahatsız etme modunda titreşim - Tuşa basıldığında ses - + >Tuşa basıldığında ses - Emoji önerileri - + >Emoji önerileri - Normal önerilerde emoji sözlüğünü kullan - + >Normal önerilerde emoji sözlüğünü kullan - Satır içi emoji araması - + >Satır içi emoji araması - Bir kelimenin önünde \':\' varsa yalnızca emojileri öner - + >Bir kelimenin önünde \':\' varsa yalnızca emojileri öner - Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. - + >Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. - Uzun basmada emoji açıklamasını göster - + >Uzun basmada emoji açıklamasını göster - Tuşa basıldığında açılır pencere - + >Tuşa basıldığında açılır pencere - Tercihler - + >Tercihler - Kaydırarak yazma - + >Kaydırarak yazma - Metin düzeltme - + >Metin düzeltme - Gelişmiş - + >Gelişmiş - Tema - + >Tema - Girdi - + >Girdi - Ek tuşlar - + >Ek tuşlar - Pano geçmişi - + >Pano geçmişi - Düzeltmeler - + >Düzeltmeler - Boşluk - + >Boşluk - Öneriler - + >Öneriler - Deneysel - + >Deneysel - Çeşitli - + >Çeşitli - Yapılandırma - + >Yapılandırma - Görseller & Önizleme - + >Görseller & Önizleme - Davranış - + >Davranış - Gelişmiş Hareketler - + >Gelişmiş Hareketler - Dokunmatik yüzey - + >Dokunmatik yüzey - Bölünmüş klavyeyi etkinleştir - + >Bölünmüş klavyeyi etkinleştir - Bölünmüş klavyeyi etkinleştir (yatay) - + >Bölünmüş klavyeyi etkinleştir (yatay) - Bölünme mesafesi - + >Bölünme mesafesi - Diğer giriş yöntemlerine geç - + >Diğer giriş yöntemlerine geç - Dili değiştir - + >Dili değiştir - Her ikisini de değiştir - + >Her ikisini de değiştir - Dil değiştirme tuşu - + >Dil değiştirme tuşu - Dil değiştirme tuşu davranışı - + >Dil değiştirme tuşu davranışı - Emoji tuşu - + >Emoji tuşu - %s ms - + >%s ms - %s min - + >%s min - Sistem varsayılanı - + >Sistem varsayılanı - Sınırsız - + >Sınırsız - Kişi adlarını ara - + >Kişi adlarını ara - Öneriler ve düzeltmeler için Kişilerdeki adları kullan - + >Öneriler ve düzeltmeler için Kişilerdeki adları kullan - Uygulama adlarını ara - + >Uygulama adlarını ara - Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan - + >Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan - Kişiselleştirilmiş öneriler - + >Kişiselleştirilmiş öneriler - Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir - + >Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir - Kişisel sözlüğe kelime ekle - + >Kişisel sözlüğe kelime ekle - Öğrenilen kelimeleri saklamak için cihazın kişisel sözlüğünü kullan - + >Öğrenilen kelimeleri saklamak için cihazın kişisel sözlüğünü kullan - Çift boşlukla nokta - + >Çift boşlukla nokta - Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler - + >Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler - Otomatik büyük harf - + >Otomatik büyük harf - Her cümlenin ilk kelimesini büyük harf yap - + >Her cümlenin ilk kelimesini büyük harf yap - Kişisel sözlük - - Engellenen kelimeler - - Önerilerden engellenen kelimeleri yönet - - Bir kelimeyi engelle - - Kelime zaten engellenmiş - - Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? - + >Kişisel sözlük + >Engellenen kelimeler + >Önerilerden engellenen kelimeleri yönet + >Bir kelimeyi engelle + >Kelime zaten engellenmiş + >Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? - Ana sözlük - + >Ana sözlük - Düzeltme önerilerini göster - + >Düzeltme önerilerini göster - Yazarken önerilen kelimeleri göster - + >Yazarken önerilen kelimeleri göster - Her zaman önerileri göster - + >Her zaman önerileri göster - Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) - + >Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) - Web düzenleme alanları için her zaman önerileri gösterme - + >Web düzenleme alanları için her zaman önerileri gösterme - \'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) - + >\'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) - Potansiyel olarak saldırgan kelimeleri engelle - + >Potansiyel olarak saldırgan kelimeleri engelle - Potansiyel olarak saldırgan kelimeleri önermeyin - + >Potansiyel olarak saldırgan kelimeleri önermeyin - Otomatik düzeltme - + >Otomatik düzeltme - Boşluk çubuğu ve noktalama işaretleri yanlış yazılmış kelimeleri otomatik düzeltir - - Otomatik düzeltme açık - - Boşluk çubuğu ve noktalama - - Sadece boşluk çubuğu - - Sadece noktalama - + >Boşluk çubuğu ve noktalama işaretleri yanlış yazılmış kelimeleri otomatik düzeltir + >Otomatik düzeltme açık + >Boşluk çubuğu ve noktalama + >Sadece boşluk çubuğu + >Sadece noktalama - Daha fazla otomatik düzeltme - + >Daha fazla otomatik düzeltme - Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar - + >Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar - Otomatik düzeltme güven düzeyi - + >Otomatik düzeltme güven düzeyi - Kısayolları otomatik düzeltme - + >Kısayolları otomatik düzeltme - Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir - + >Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir - Geri tuşu otomatik düzeltmeyi geri alır - + >Geri tuşu otomatik düzeltmeyi geri alır - Kapalı - + >Kapalı - Ilımlı - + >Ilımlı - Agresif - + >Agresif - Çok agresif - + >Çok agresif - Ortadaki öneriyi her zaman kullan - + >Ortadaki öneriyi her zaman kullan - Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. - + >Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. - Sonraki kelime önerileri - + >Sonraki kelime önerileri - Öneri oluştururken önceki kelimeyi kullan - + >Öneri oluştururken önceki kelimeyi kullan - Kişisel & öğrenilmiş kelimelere öncelik ver - + >Kişisel & öğrenilmiş kelimelere öncelik ver - Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. - + >Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. - Öğrenilen kelime güçlendirme seviyesi - + >Öğrenilen kelime güçlendirme seviyesi - Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. - + >Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. - Öğrenilen kelimeler için bağlam eşleşmesi gerekli - + >Öğrenilen kelimeler için bağlam eşleşmesi gerekli - Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner - - - Anında otomatik boşluk - - Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. + >Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner + >Anında otomatik boşluk + >Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. - İlk kelime önerileri - + >İlk kelime önerileri - Cümlenin başında girdi yoksa önerileri göster - + >Cümlenin başında girdi yoksa önerileri göster - Noktalama önerileri - + >Noktalama önerileri - Başka öneri yoksa noktalama işaretlerini göster - + >Başka öneri yoksa noktalama işaretlerini göster - Pano içeriğini öner - + >Pano içeriğini öner - Son kopyalanan pano içeriğini öneri olarak göster - + >Son kopyalanan pano içeriğini öneri olarak göster - Son ekran görüntülerini öner - + >Son ekran görüntülerini öner - Son alınan ekran görüntülerini öneri olarak göster - + >Son alınan ekran görüntülerini öneri olarak göster - SMS\'ten OTP\'yi otomatik oku - + >SMS\'ten OTP\'yi otomatik oku - Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster - + >Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster - OTP önerisini kapat - + >OTP önerisini kapat - Önerilen ekran görüntülerini sıkıştır - + >Önerilen ekran görüntülerini sıkıştır - Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. - + >Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. - Kaydırarak yazmayı etkinleştir - + >Kaydırarak yazmayı etkinleştir - Harflerin üzerinde kaydırarak bir kelime girin - + >Harflerin üzerinde kaydırarak bir kelime girin - Kaydırma izini göster - + >Kaydırma izini göster - Kayan önizleme - + >Kayan önizleme - Kaydırırken önerilen kelimeyi göster - + >Kaydırırken önerilen kelimeyi göster - Dinamik kayan önizleme - + >Dinamik kayan önizleme - Kaydırma sırasında önizlemeyi hareket ettir - + >Kaydırma sırasında önizlemeyi hareket ettir - İfade kaydırma - + >İfade kaydırma - Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin - + >Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin - Hızlı yazma bekleme süresi - + >Hızlı yazma bekleme süresi - Her zaman anında başla - + >Her zaman anında başla - Kaydırma izi görünme süresi - + >Kaydırma izi görünme süresi - Pano geçmişini etkinleştir - + >Pano geçmişini etkinleştir - Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır - + >Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır - Geçmiş saklama süresi - + >Geçmiş saklama süresi - Sabitlenmiş öğeleri üstte göster - - Sabitlenmiş öğeleri varsayılan olarak daralt - - Pano temizleme simgesi - - Pano temizleme düğmesi için simge stilini seçin - - Çöp kutusu - - Süpür / Hepsini temizle - - Eğimli çizgiler - - Çapraz çizgili pano taslağı - - Klasik pano - - Sabitlendi - + >Sabitlenmiş öğeleri üstte göster + >Sabitlenmiş öğeleri varsayılan olarak daralt + >Pano temizleme simgesi + >Pano temizleme düğmesi için simge stilini seçin + >Çöp kutusu + >Süpür / Hepsini temizle + >Eğimli çizgiler + >Çapraz çizgili pano taslağı + >Klasik pano + >Sabitlendi - Panodaki öğeleri ara... - + >Panodaki öğeleri ara... - Öğe bulunamadı - + >Öğe bulunamadı - Öğe silindi - + >Öğe silindi - Sonuç bulunamadı - - Tüm geçmişi temizlemek istediğinizden emin misiniz? - - Tümünü temizle - + >Sonuç bulunamadı + >Tüm geçmişi temizlemek istediğinizden emin misiniz? + >Tümünü temizle - Kaydırarak silme - + >Kaydırarak silme - Silme tuşundan kaydırma yaparak aynı anda daha büyük metin parçalarını seçip silebilirsiniz. - + >Silme tuşundan kaydırma yaparak aynı anda daha büyük metin parçalarını seçip silebilirsiniz. - Yedekleme ve geri yükleme - + >Yedekleme ve geri yükleme - Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır - + >Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır - Yedekleme hatası: %s - + >Yedekleme hatası: %s - Yedeği geri yüklerken hata: %s - + >Yedeği geri yüklerken hata: %s - Yedek - + >Yedek - Geri yükle - + >Geri yükle - Yedek geri yüklendi - + >Yedek geri yüklendi - timestamp key için biçim - + >timestamp key için biçim - Çok dilli yazma - + >Çok dilli yazma - Sözlüğü bulunan diller - + >Sözlüğü bulunan diller - Kaydırarak yazma kütüphanesini yükle - + >Kaydırarak yazma kütüphanesini yükle - Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın - + >Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın - Kaydırarak yazma yöntemi - - Kaydırarak yazma için algoritma seçin - - Yerel kütüphane (swypelib gerektirir) - - Yedek motor (saf Java) - + >Kaydırarak yazma yöntemi + >Kaydırarak yazma için algoritma seçin + >Yerel kütüphane (swypelib gerektirir) + >Yedek motor (saf Java) - You will need the library for \'%s\'. Incompatible libraries may crash when using gesture typing. - \n\nWarning: loading external code can be a security risk. Only use a library from a source you trust. + >Bu kütüphaneye \'%s\' için ihtiyacınız olacak. Uyumsuz kütüphaneler Kaydırarak yazma kullanılırken çökme yapabilir. + \n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen kütüphaneyi kullanın. - Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? - + >Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? - Kütüphaneyi yükle - + >Kütüphaneyi yükle - Kütüphaneyi sil - + >Kütüphaneyi sil - Kütüphaneyi indir - + >Kütüphaneyi indir - Kaydırma jest kütüphanesi indiriliyor… - + >Kaydırma jest kütüphanesi indiriliyor… - İndirme tamamlandı! Yeniden başlatılıyor… - + >İndirme tamamlandı! Yeniden başlatılıyor… - İndirme başarısız: %s - + >İndirme başarısız: %s - El yazısı eklentisini yükle - - El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın - - Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. - - Eklenti APK\'sını yükle - - Eklentiyi sil - - El yazısı eklentisi başarıyla içe aktarıldı - - El yazısı eklentisi APK\'sı yüklenemedi - + >El yazısı eklentisini yükle + >El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın + >Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. + >Eklenti APK\'sını yükle + >Eklentiyi sil + >El yazısı eklentisi başarıyla içe aktarıldı + >El yazısı eklentisi APK\'sı yüklenemedi - Çeviri eklentisini yükle - - Çeviri motorunu etkinleştirmek için bir APK eklentisi sağlayın - - Eklentiyi sil - - Çeviri eklentisi başarıyla içe aktarıldı - - Çeviri eklentisi APK\'sı yüklenemedi - - El yazısı - - İndirilen modeli sil - - El yazısı modeli silindi - - El yazısı eklentisi gerekli - - Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. - - Eklentiyi yükle - + >Çeviri eklentisini yükle + >Çeviri motorunu etkinleştirmek için bir APK eklentisi sağlayın + >Eklentiyi sil + >Çeviri eklentisi başarıyla içe aktarıldı + >Çeviri eklentisi APK\'sı yüklenemedi + >El yazısı + >İndirilen modeli sil + >El yazısı modeli silindi + >El yazısı eklentisi gerekli + >Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. + >Eklentiyi yükle - Noktalama sonrası otomatik boşluk - + >Noktalama sonrası otomatik boşluk - Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. - + >Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. - Emoji sonrası otomatik boşluk - + >Emoji sonrası otomatik boşluk - Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. - + >Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. - Bir öneri seçildikten sonra otomatik boşluk - + >Bir öneri seçildikten sonra otomatik boşluk - Kaydırarak yazmadan önce otomatik boşluk - + >Kaydırarak yazmadan önce otomatik boşluk - Kaydırarak yazdıktan sonra otomatik boşluk - + >Kaydırarak yazdıktan sonra otomatik boşluk - Shift\'e basıldığında otomatik boşluk yok - + >Shift\'e basıldığında otomatik boşluk yok - Shift bekleyen otomatik boşluğu kaldırır - + >Shift bekleyen otomatik boşluğu kaldırır - Noktalama öncesi boşluğu koru - + >Noktalama öncesi boşluğu koru - Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. - + >Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. - Açılır pencerede diakritik işaretli daha fazla harf göster - + >Açılır pencerede diakritik işaretli daha fazla harf göster - Klavye dillerinde tanımlı varyantları göster - + >Klavye dillerinde tanımlı varyantları göster - Çok yaygın varyantları ekle (varsayılan) - + >Çok yaygın varyantları ekle (varsayılan) - Yaygın varyantları ekle - + >Yaygın varyantları ekle - Tüm kullanılabilir varyantları ekle - + >Tüm kullanılabilir varyantları ekle - URL algılama - + >URL algılama - URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış - + >URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış - Gizli modu zorunlu kıl - - Dokunmatik yüzey - - Metin düzenleme - - Modu seç - - Tam ekran dokunmatik yüzey - - Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle - + >Gizli modu zorunlu kıl + >Dokunmatik yüzey + >Metin düzenleme + >Modu seç + >Tam ekran dokunmatik yüzey + >Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle - Yeni kelimelerin öğrenilmesini devre dışı bırak - + >Yeni kelimelerin öğrenilmesini devre dışı bırak - Daha fazla tuş - + >Daha fazla tuş - Diller & Düzenler - - Diller - + >Diller & Düzenler + >Diller - Sayı satırı - + >Sayı satırı - Sayı satırını her zaman göster - + >Sayı satırını her zaman göster - Simgeler görünümünde sayı satırını göster - + >Simgeler görünümünde sayı satırını göster - Kompakt simgeler için sayı satırı - + >Kompakt simgeler için sayı satırı - Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir - + >Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir - Sayı satırını yerelleştir - + >Sayı satırını yerelleştir - Yerel rakamları Latin rakamlara tercih et - + >Yerel rakamları Latin rakamlara tercih et - Sayı satırında ipuçlarını göster - + >Sayı satırında ipuçlarını göster - Uygulamaya göre dili hatırla - + >Uygulamaya göre dili hatırla - Tuş ipuçlarını göster - + >Tuş ipuçlarını göster - Uzun basma ipuçlarını göster - + >Uzun basma ipuçlarını göster - Açılır tuş sıralaması ve ipucu kaynağı - + >Açılır tuş sıralaması ve ipucu kaynağı - İpucu kaynağını seç - + >İpucu kaynağını seç - Açılır tuş sırasını seç - + >Açılır tuş sırasını seç - Üst düzey alan adları (TLD) açılır tuşlarını göster - + >Üst düzey alan adları (TLD) açılır tuşlarını göster - URL ve e-posta adresleri yazarken nokta tuşunun açılırlarını üst düzey alan adlarıyla değiştir - + >URL ve e-posta adresleri yazarken nokta tuşunun açılırlarını üst düzey alan adlarıyla değiştir - Sayı satırı - - @string/subtype_locale - - Dil (öncelik) - - Düzen - - Semboller - + >Number row + >@string/subtype_locale + >Language (priority) + >Layout + >Symbols - Araç çubuğu modu - + >Araç çubuğu modu - Araç çubuğu tuşları ve öneriler - + >Toolbar keys and suggestions - Yalnızca araç çubuğu tuşları - + >Toolbar keys only - Yalnızca öneriler - + >Suggestions only - Gizli - + >Hidden - Pano ve emoji araç çubuklarını da gizle - + >Pano ve emoji araç çubuklarını da gizle - Araç çubuğu tuşlarını seç - + >Araç çubuğu tuşlarını seç - @android:string/paste - - @android:string/copy - - @android:string/cut - - Pano - - Panoyu temizle - + >@android:string/paste + >@android:string/copy + >@android:string/cut + >Clipboard + >Clear clipboard - Pano araması - + >Clipboard search - İndir - - İndiriliyor… - - İndirme başarısız oldu - - Yüklendi - - Ses girişi - - @string/layout_numpad - - Ayarlar - - @android:string/selectAll - - Kelimeyi seç - - Tek elle modu - - Kayan - - Bölünmüş klavye - - Tam sola - - Tam sağa - - Sayfa başı - - Sayfa sonu - - Sol - - Sağ - - Yukarı - - Aşağı - - Kelime sola - - Kelime sağa - - Sayfa yukarı - - Sayfa aşağı - - Geri al - - Yinele - - Pano geçmişini kapat - - Emoji - + >İndir + >İndiriliyor… + >İndirme başarısız oldu + >Yüklendi + >Voice input + >@string/layout_numpad + >Settings + >@android:string/selectAll + >Select word + >One-handed mode + >Float + >Split keyboard + >Full left + >Full right + >Page start + >Page end + >Left + >Right + >Up + >Down + >Word left + >Word right + >Page up + >Page down + >Undo + >Redo + >Close clipboard history + >Emoji - Metni düzelt - - Metin düzeltme… - - Metin düzeltildi - - Metin düzeltme başarısız: %s - - Düzeltilecek metin yok - - Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. - - Gemini API Anahtarı - - Metin düzeltme için Google Gemini API anahtarınızı girin - - API anahtarını girin - - API Anahtarı Al - - Gemini Modeli - - Metin düzeltme için AI modelini seçin - - API Anahtarını Test Et - - API anahtarı geçerli! - - API anahtarı testi başarısız: %s - - API anahtarı test ediliyor… - - Tüm ağ erişimini devre dışı bırak - - Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. - - Sistem Uygulama bilgilerini aç - - İzinleri ve pil kullanımını Android ayarlarında yönetin - - LeanType ayarlarında ağ erişimi devre dışı bırakıldı - - Yapay Zeka Sağlayıcısı - - Metin düzeltme için Yapay Zeka servisini seçin - - Google Gemini - - Araç çubuğunu ayır - - Önerileri araç çubuğundan ayır - - Araç çubuğu tuşlarını otomatik olarak genişlet - - Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet - - Araç çubuğunda indirme düğmesini göster - - Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster - - Groq - - HF/OpenAI-uyumlu - - API Jetonu - - HuggingFace veya OpenAI-uyumlu API anahtarınızı girin - - API Jetonu - - Groq API anahtarınızı girin - - API anahtarını girin - - API anahtarını girin - - Groq Anahtarını Al - - API Belirteci Al - - API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. - - Model - - Groq modelini seçin - - model-name - - Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. - - API Uç Noktası - - API uç nokta URL\'si - - https://api.groq.com/openai/v1/chat/completions - - Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. - - Güvensiz bağlantılara izin ver - - HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. - - Düzenler - - Tema & Özel Arka Planlar - - Sözlükler & Yazma Geçmişi - - Pano Geçmişi - - Genel Ayarlar - - Dahil edilecek öğeleri seçin: - - - https://generativelanguage.googleapis.com/v1beta/models?key=%1$s - - https://api.groq.com/openai/v1/models - - https://api.openai.com/v1/chat/completions - - https://api.groq.com/openai/v1/chat/completions - - Modeli hafızada tut - - Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) - + >Proofread + >Metin düzeltme… + >Metin düzeltildi + >Metin düzeltme başarısız: %s + >Düzeltilecek metin yok + >Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. + >Gemini API Anahtarı + >Metin düzeltme için Google Gemini API anahtarınızı girin + >API anahtarını girin + >API Anahtarı Al + >Gemini Modeli + >Metin düzeltme için AI modelini seçin + >API Anahtarını Test Et + >API anahtarı geçerli! + >API anahtarı testi başarısız: %s + >API anahtarı test ediliyor… + >Tüm ağ erişimini devre dışı bırak + >Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. + >Sistem Uygulama bilgilerini aç + >İzinleri ve pil kullanımını Android ayarlarında yönetin + >LeanType ayarlarında ağ erişimi devre dışı bırakıldı + >Yapay Zeka Sağlayıcısı + >Metin düzeltme için Yapay Zeka servisini seçin + >Google Gemini + >Araç çubuğunu ayır + >Önerileri araç çubuğundan ayır + >Araç çubuğu tuşlarını otomatik olarak genişlet + >Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet + >Araç çubuğunda indirme düğmesini göster + >Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster + >Groq + >HF/OpenAI-uyumlu + >API Jetonu + >HuggingFace veya OpenAI-uyumlu API anahtarınızı girin + >API Jetonu + >Groq API anahtarınızı girin + >API anahtarını girin + >API anahtarını girin + >Groq Anahtarını Al + >API Belirteci Al + >API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + >Model + >Groq modelini seçin + >model-name + >Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. + >API Uç Noktası + >API uç nokta URL\'si + >https://api.groq.com/openai/v1/chat/completions + >Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. + >Güvensiz bağlantılara izin ver + >HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. + >Düzenler + >Tema & Özel Arka Planlar + >Sözlükler & Yazma Geçmişi + >Pano Geçmişi + >Genel Ayarlar + >Dahil edilecek öğeleri seçin: + + >https://generativelanguage.googleapis.com/v1beta/models?key=%1$s + >https://api.groq.com/openai/v1/models + >https://api.openai.com/v1/chat/completions + >https://api.groq.com/openai/v1/chat/completions + >Modeli hafızada tut + >Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) - Çevir - - Çeviriliyor… - - Metin çevrildi - - Çeviri başarısız: %s - - Çevrilecek metin yok - - Çeviri hedef dili - - Çevirmek istediğiniz dili seçin - - Çeviri Modeli - - Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. - + >Translate + >Çeviriliyor… + >Metin çevrildi + >Çeviri başarısız: %s + >Çevrilecek metin yok + >Çeviri hedef dili + >Çevirmek istediğiniz dili seçin + >Çeviri Modeli + >Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. - Çeviri Motoru - - Çeviri için motor seçin (Eklenti veya AI) - + >Çeviri Motoru + >Çeviri için motor seçin (Eklenti veya AI) @@ -1021,1013 +670,674 @@ Basque - Pano araç çubuğu tuşlarını seç - + >Pano araç çubuğu tuşlarını seç - Sabitlenmiş araç çubuğu tuşlarını seçin - + >Sabitlenmiş araç çubuğu tuşlarını seçin - Uzun basmada araç çubuğu tuşunu sabitleyin - + >Uzun basmada araç çubuğu tuşunu sabitleyin - Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır - + >Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır - Uzun basma ipucu noktalarını göster - + >Uzun basma ipucu noktalarını göster - Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin - + >Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin - İşlevsel ipuçlarını göster - + >İşlevsel ipuçlarını göster - Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster - + >Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster - Yinelenen açılırları kaldır - + >Yinelenen açılırları kaldır - Temel düzen üzerinde zaten bulunan açılır tuşları gizle - + >Temel düzen üzerinde zaten bulunan açılır tuşları gizle - Boşluk tuşuyla giriş yöntemini değiştir - + >Boşluk tuşuyla giriş yöntemini değiştir - Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar - + >Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar - Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç - + >Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç - Tuş aralıklarını daralt - - Daraltma seviyesi - - En küçük - - Küçük - - Orta - - Büyük - - En büyük - + >Tuş aralıklarını daralt + >Daraltma seviyesi + >En küçük + >Küçük + >Orta + >Büyük + >En büyük - Klavye yüksekliği ölçeği - + >Klavye yüksekliği ölçeği - Alt dolgu ölçeği - + >Alt dolgu ölçeği - Yan dolgu ölçeği - + >Yan dolgu ölçeği - Klavye yazı tipi ölçeği - + >Klavye yazı tipi ölçeği - Emoji görünümü yazı tipi ölçeği - + >Emoji görünümü yazı tipi ölçeği - Emoji tuş boyutunu yazı tipi boyutuna göre ölçeklendir - + >Emoji tuş boyutunu yazı tipi boyutuna göre ölçeklendir - Varsayılan emoji ten rengi - + >Varsayılan emoji ten rengi - Nötr - + >Nötr - Boşluk çubuğundaki özel metin - + >Boşluk çubuğundaki özel metin - Dosyadan özel yazı tipi ayarla - + >Dosyadan özel yazı tipi ayarla - Dosyadan özel emoji yazı tipi ayarla - + >Dosyadan özel emoji yazı tipi ayarla - Sistem emoji yazı tipini kullan - + >Sistem emoji yazı tipini kullan - Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) - + >Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) - İngilizce (UK) - + >İngilizce (UK) - İngilizce (US) - + >İngilizce (US) - İspanyolca (US) - + >İspanyolca (US) - Sırpça (Latin) - + >Sırpça (Latin) - Hinglish - + >Hinglish - Mansi - + >Mansi - Kaitag - + >Kaitag - Dagbani - + >Dagbani - Sesotho - + >Sesotho - Dargwa (Urakhi) - + >Dargwa (Urakhi) - Mari (Doğu) - + >Mari (Doğu) - %1$s (%2$s) - + >%1$s (%2$s) - %s (Genişletilmiş) - + >%s (Genişletilmiş) - %s (Geleneksel) - + >%s (Geleneksel) - %s (Akkhor) - + >%s (Akkhor) - %s (Probhat) - + >%s (Probhat) - %s (Baishakhi) - + >%s (Baishakhi) - %s (Khipro) - + >%s (Khipro) - %s (Kompakt) - + >%s (Kompakt) - %s (Fonetik) - + >%s (Fonetik) - %s (Sebeolsik 390) - + >%s (Sebeolsik 390) - %s (Sebeolsik Final) - + >%s (Sebeolsik Final) - %s (Öğrenci) - + >%s (Öğrenci) - Dil yok - + >Dil yok - Emoji - + >Emoji - Ekle - + >Ekle - Kaldır - + >Kaldır - Kaydet - + >Kaydet - Yükle - + >Yükle - Dil - + >Dil - Düzen - + >Düzen - Özel düzen ekle - + >Özel düzen ekle - Uyumlu bir formatta dosya seçin. Formatlar hakkında bilgi %s adresinde mevcuttur. - + >Uyumlu bir formatta dosya seçin. Formatlar hakkında bilgi %s adresinde mevcuttur. - Dosya yükle - + >Dosya yükle - Dosyaya kaydet - + >Dosyaya kaydet - Panoya kopyala - + >Panoya kopyala - Dosya okunamıyor - + >Dosya okunamıyor - Özel düzen %s gerçekten silinsin mi? - + >Özel düzen %s gerçekten silinsin mi? - Uyarı: düzen şu anda kullanılıyor - - Özel düzen ekle - + >Uyarı: düzen şu anda kullanılıyor + >Özel düzen ekle - Düzen hatası: %s - + >Düzen hatası: %s - Ham düzeni düzenlemek için dokun - + >Ham düzeni düzenlemek için dokun - İkincil düzenler - - Özel düzen 1 - - Özel düzen 2 - - Özel düzen 3 - - Özel düzen 4 - - Özel düzen 5 - + >İkincil düzenler + >Özel düzen 1 + >Özel düzen 2 + >Özel düzen 3 + >Özel düzen 4 + >Özel düzen 5 - Fonksiyon tuşları - + >Functional keys - Fonksiyon tuşları (büyük ekran) - + >Functional keys (large screen) - Fonksiyon tuşları (Khipro) - + >Functional keys (Khipro) - İşlevsel tuşlar (Semboller) - + >Functional keys (Symbols) - İşlevsel tuşlar (Daha fazla sembol) - + >Functional keys (More symbols) - Semboller - + >Symbols - Semboller (Arapça) - + >Symbols (Arabic) - Daha fazla sembol - + >More symbols - Telefon - + >Phone - Telefon sembolleri - + >Phone symbols - Rakamlar - + >Numbers - Sayısal tuş takımı - + >Numpad - Sayısal tuş takımı (yatay) - + >Numpad (landscape) - Sayı satırı - + >Number row - Sayı satırı (temel) - + >Number row (basic) - Emoji alt satırı - + >Emoji bottom row - Eylem tuşlu Emoji alt satırı - + >Emoji bottom row with action key - Pano alt satırı - + >Clipboard bottom row - Eylem tuşlu Pano alt satırı - + >Clipboard bottom row with action key - Arka plan görüntüsünü ayarla - + >Arka plan görüntüsünü ayarla - Arka plan görüntüsünü ayarla (yatay) - + >Arka plan görüntüsünü ayarla (yatay) - Belirlenmemişse, portre görüntüsü kullanılacaktır. - + >Belirlenmemişse, portre görüntüsü kullanılacaktır. - Para birimlerini özelleştir - + >Para birimlerini özelleştir - Ana ve en fazla 6 ikincil para birimi simgesini boşlukla ayrılmış olarak ayarlayın - + >Ana ve en fazla 6 ikincil para birimi simgesini boşlukla ayrılmış olarak ayarlayın - Ana klavyeye şu işlemden sonra geç… - + >Ana klavyeye şu işlemden sonra geç… - Emoji görünümünde emoji seçme - + >Emoji görünümünde emoji seçme - Pano geçmişi öğesi seçme - + >Pano geçmişi öğesi seçme - Semboller görünümünde diğer tuşlardan sonra enter veya boşluk basıldığında - + >Semboller görünümünde diğer tuşlardan sonra enter veya boşluk basıldığında - Sayısal tuş takımında diğer tuşlardan sonra enter veya boşluğa basılması - + >Sayısal tuş takımında diğer tuşlardan sonra enter veya boşluğa basılması - Gün veya gece modu için görüntü ayarlansın mı? - + >Gün veya gece modu için görüntü ayarlansın mı? - Gün - + >Gün - Gece - + >Gece - Tuş basma titreşim süresi - + >Tuş basma titreşim süresi - Tuş basma titreşim gücü - + >Tuş basma titreşim gücü - Tuş basma ses düzeyi - + >Tuş basma ses düzeyi - Tuş uzun basma gecikmesi - + >Tuş uzun basma gecikmesi - Emoji sürümünü geçersiz kıl - + >Emoji sürümünü geçersiz kıl - Fiziksel klavye için Emoji - + >Fiziksel klavye için Emoji - Fiziksel Alt tuşu emoji paletini gösterir - + >Fiziksel Alt tuşu emoji paletini gösterir - Varsayılan - + >Varsayılan - "Hoş geldiniz, %s" - + >"Hoş geldiniz, %s" - Kaydırarak yazma ile - + >Kaydırarak yazma ile - Başla - + >Başla - "%s\'yi ayarlama" - + >"%s\'yi ayarlama" - "%s\'i etkinleştir" - + >"%s\'i etkinleştir" - "Lütfen Diller & giriş ayarlarınızda \"%s\" öğesini işaretleyin. Bu, cihazınızda çalışmasına izin verecektir." - + >"Lütfen Diller & giriş ayarlarınızda \"%s\" öğesini işaretleyin. Bu, cihazınızda çalışmasına izin verecektir." - Ayarlar\'da etkinleştir - + >Ayarlar\'da etkinleştir - "%s\'e geç" - + >"%s\'e geç" - "Sonra, aktif metin girişi yöntemi olarak \"%s\" öğesini seçin." - + >"Sonra, aktif metin girişi yöntemi olarak \"%s\" öğesini seçin." - Giriş yöntemlerini değiştir - + >Giriş yöntemlerini değiştir - "Tebrikler, her şey hazır!" - + >"Tebrikler, her şey hazır!" - Artık tüm favori uygulamalarınızda %s ile yazabilirsiniz. - + >Artık tüm favori uygulamalarınızda %s ile yazabilirsiniz. - Klavveyi yapılandır - + >Klavveyi yapılandır - Tamamlandı - + >Tamamlandı - Uygulama simgesini göster - + >Uygulama simgesini göster - Başlatıcıda uygulama simgesini göster - + >Başlatıcıda uygulama simgesini göster - Ek sözlükler - + >Ek sözlükler - Sözlükler - + >Sözlükler - Dahili ana sözlük - + >Dahili ana sözlük - "Dosyadan sözlük ekle" - + >"Dosyadan sözlük ekle" - "Dil seç" - + >"Dil seç" - "Really replace user-added dictionary \"%1$s\"?\n -Current dictionary: + >"Kullanıcı tarafından eklenen \"%1$s\" sözlüğü gerçekten değiştirilsin mi?\n +Geçerli sözlük: %2$s\n -New dictionary: +Yeni sözlük: %3$s" - "Sözlüğü değiştir" - + >"Sözlüğü değiştir" - "Kullanıcı tarafından eklenen sözlük \"%s\" gerçekten silinsin mi?" - + >"Kullanıcı tarafından eklenen sözlük \"%s\" gerçekten silinsin mi?" - "Without a dictionary, you will only get suggestions for text you entered before.<br> - You can download dictionaries %1$s." + >"Bir sözlük olmadan yalnızca daha önce girdiğiniz metinler için öneriler alırsınız.<br> + Sözlükleri %1$s indirebilirsiniz." - "Bir daha gösterme" - + >"Bir daha gösterme" - "Eklemek için bir sözlük seçin. .dict formatındaki sözlükleri %s üzerinden indirebilirsiniz." - + >"Eklemek için bir sözlük seçin. .dict formatındaki sözlükleri %s üzerinden indirebilirsiniz." - "buradan" - + >"buradan" - "%s (deneysel)" - + >"%s (deneysel)" - "Hata: Seçilen dosya geçerli bir sözlük dosyası değil" - + >"Hata: Seçilen dosya geçerli bir sözlük dosyası değil" - "Hata: yazı sistemi bu klavye ile uyumlu değil" - + >"Hata: yazı sistemi bu klavye ile uyumlu değil" - "Sözlük dosyası yüklenirken hata oluştu" - + >"Sözlük dosyası yüklenirken hata oluştu" - Sözlük indirilebilir - + >Sözlük indirilebilir - Sil - + >Sil - Sürüm %s - + >Sürüm %s - Kısayol: - + >Kısayol: - Ağırlık: - + >Ağırlık: - Dil: - + >Dil: - Bir kelime yazın - + >Bir kelime yazın - İsteğe bağlı kısayol - + >İsteğe bağlı kısayol - Kelimeyi düzenle - + >Kelimeyi düzenle - Tüm diller için - + >Tüm diller için - Daha fazla dil… - + >Daha fazla dil… - Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir kelime girin. - + >Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir kelime girin. - Kelime ekle - - Bu sözlükteki tüm kelimeleri silmek istediğinizden emin misiniz? - + >Kelime ekle + >Bu sözlükteki tüm kelimeleri silmek istediğinizden emin misiniz? - Stil - + >Stil - Simge stili - + >Simge stili - Yuvarlak - + >Rounded - Renkler - + >Renkler - Renkler (gece) - + >Renkler (gece) - Tuş kenarlıkları - + >Tuş kenarlıkları - Otomatik gündüz/gece modu - + >Otomatik gündüz/gece modu - Görünüm sistem ayarlarını takip edecek - + >Görünüm sistem ayarlarını takip edecek - Gezinme çubuğu rengini ayarla - + >Gezinme çubuğu rengini ayarla - Açık - + >Light - Holo Beyaz - + >Holo White - Koyu - + >Dark - Daha koyu - + >Darker - Siyah - + >Black - Dinamik renkler - + >Dynamic colors - Mavi-gri - + >Blue Gray - Kahverengi - + >Brown - Çikolata - + >Chocolate - Bulutlu - + >Cloudy - Orman - + >Forest - İndigo - + >Indigo - Nane ve Pembe - + >Mint and Pink - Pembe - + >Pink - Kum - + >Sand - Eflatun - + >Violette - Kullanıcı Tanımlı - + >User-Defined - LeanBitLab Açık - + >LeanBitLab Light - LeanBitLab Koyu - + >LeanBitLab Dark - Rengi otomatik seç - + >Rengi otomatik seç - Sadece ana renkleri göster - + >Sadece ana renkleri göster - Daha fazla renk göster - + >Daha fazla renk göster - Tüm renkleri göster - + >Tüm renkleri göster - Bu ayar, dahili olarak kullanılan tüm renkleri açığa çıkarır. Renk listesi her an değişebilir. Varsayılan, normal renklerden türetilir ve adlar çevrilmeyecektir. - + >Bu ayar, dahili olarak kullanılan tüm renkleri açığa çıkarır. Renk listesi her an değişebilir. Varsayılan, normal renklerden türetilir ve adlar çevrilmeyecektir. - Klavye arka planı - + >Klavye arka planı - Tuş metni - + >Tuş metni - Tuş ipucu metni - + >Tuş ipucu metni - Öneri şeridi metni - + >Öneri şeridi metni - Tuş arka planı - + >Tuş arka planı - İşlev tuşu arka planı - + >İşlev tuşu arka planı - Boşluk çubuğu arka planı - + >Boşluk çubuğu arka planı - Boşluk çubuğu metni - + >Boşluk çubuğu metni - Vurgu - + >Vurgu - Kaydırarak yazma - + >Kaydırarak yazma - "Renkleri %s bölümünde bulabilir ve paylaşabilirsiniz." - + >"Renkleri %s bölümünde bulabilir ve paylaşabilirsiniz." - "Düzenleri %s bölümünde bulabilir ve paylaşabilirsiniz." - + >"Düzenleri %s bölümünde bulabilir ve paylaşabilirsiniz." - "tartışma bölümü" - + >"tartışma bölümü" - Hakkında - + >Hakkında - Sürüm - + >Sürüm - GitHub\'da Görüntüle - + >GitHub\'da Görüntüle - Projeyi destekle - + >Projeyi destekle - LeanType geliştirilmesini destekleyin - + >LeanType geliştirilmesini destekleyin - Bu projeyi destekleyin - - Bu proje tamamen topluluk tarafından yürütülüyor ve geliştirmeyi sürdürebilmek için bağışlara dayanıyor. Bu klavyeyi yararlı buluyorsanız lütfen desteklemeyi düşünün! - - Bir daha gösterme - - Destekle - - Şimdi değil - + >Bu projeyi destekleyin + >Bu proje tamamen topluluk tarafından yürütülüyor ve geliştirmeyi sürdürebilmek için bağışlara dayanıyor. Bu klavyeyi yararlı buluyorsanız lütfen desteklemeyi düşünün! + >Bir daha gösterme + >Destekle + >Şimdi değil - FEATURES.md\'ye git - + >FEATURES.md\'ye git - Ana özelliklerin listesi ve klavye kılavuzu - + >Ana özelliklerin listesi ve klavye kılavuzu - Kütüphaneler - - Kaydırarak yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. - - Kaydırarak yazma Kütüphanesi - - Ana Sözlükler - - Emoji Kütüphaneleri - - El Yazısı Girişi Eklentisi - - Sözlük Yükleme Kılavuzu - - Yeni bir sözlük eklemek için:\n1. Diliniz için bir .dict dosyası edinin.\n2. \"Sözlükleri Yönet\" öğesine dokunun.\n3. Artı (+) düğmesini kullanarak dosyayı içe aktarın. - - Etkin - - Yüklü değil - + >Kütüphaneler + >Kaydırarak yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. + >Kaydırarak yazma Kütüphanesi + >Ana Sözlükler + >Emoji Kütüphaneleri + >El Yazısı Girişi Eklentisi + >Sözlük Yükleme Kılavuzu + >Yeni bir sözlük eklemek için:\n1. Diliniz için bir .dict dosyası edinin.\n2. \"Sözlükleri Yönet\" öğesine dokunun.\n3. Artı (+) düğmesini kullanarak dosyayı içe aktarın. + >Etkin + >Yüklü değil - Günlüğü kaydet - - Log seçenekleri - - Dosyaya kaydet - - Logu temizle - - Logu paylaş - - Log temizlendi - + >Günlüğü kaydet + >Log seçenekleri + >Dosyaya kaydet + >Logu temizle + >Logu paylaş + >Log temizlendi - Açık kaynak lisansı - + >Açık kaynak lisansı - GNU General Public License v3.0 - + >GNU General Public License v3.0 - Kapat - + >Kapat - Ayarları açmak için dile dokunun - + >Ayarları açmak için dile dokunun - Giriş yöntemini seçin - - Doğrudan geçiş hedefi (IME) - - Özel tuş kodu seçeneği kullanıldığında doğrudan geçilecek giriş yöntemi - - Yok - - Uygulama dili - - Ayarlar ekranı ve klavye arayüzünün dilini değiştirin - - Sistem varsayılanı - + >Giriş yöntemini seçin + >Doğrudan geçiş hedefi (IME) + >Özel tuş kodu seçeneği kullanıldığında doğrudan geçilecek giriş yöntemi + >Yok + >Uygulama dili + >Ayarlar ekranı ve klavye arayüzünün dilini değiştirin + >Sistem varsayılanı - Görünüm - + >Görünüm - Araç çubuğu - - Yapay Zeka entegrasyonu - - Özel Yapay Zeka tuşları - - Numaralandırılmış araç çubuğu tuşlarını kendi istemlerinizle özelleştirin - + >Araç çubuğu + >Yapay Zeka entegrasyonu + >Özel Yapay Zeka tuşları + >Numaralandırılmış araç çubuğu tuşlarını kendi istemlerinizle özelleştirin - Gizli özelliklerin açıklaması - + >Gizli özelliklerin açıklaması - Gözden kaçabilecek özellikleri göster - + >Gözden kaçabilecek özellikleri göster - cihaz korumalı depolama - + >cihaz korumalı depolama - ► Long-pressing pinned toolbar keys results in additional functionality: <br> -\n\t• clipboard &#65515; paste <br> -\n\t• move left/right &#65515; word left/right <br> -\n\t• move up/down &#65515; page up/down <br> -\n\t• word left/right &#65515; line start/end <br> -\n\t• page up/down &#65515; page start/end <br> -\n\t• copy &#65515; cut <br> -\n\t• select word &#8596; select all <br> -\n\t• undo &#8596; redo <br> <br> -\n► Long-pressing keys in the suggestion strip toolbar pins them to the suggestion strip. <br> <br> -\n► Long-press the Comma-key to access Clipboard View, Emoji View, One-handed Mode, Settings, or Switch Language: <br> -\n\t• Emoji View and Language Switch will disappear if you have the corresponding key enabled; <br> -\n\t• For some layouts it\\\'s not the Comma-key, but the key at the same position (e.g. it\\\'s \\\'q\\\' for Dvorak layout). <br> <br> -\n► When incognito mode is enabled, no words will be learned, and no emojis will be added to recents. <br> <br> -\n► Press the Incognito icon to access the toolbar. <br> <br> -\n► Sliding key input: Swipe from shift to another key to type a single uppercase key: <br> -\n\t• This also works for the \\\'?123\\\' key to type a single symbol from the symbols keyboard, and for related keys. <br> <br> -\n► Hold shift or symbol key, press one or more keys, and then release shift or symbol key to return to the previous keyboard. <br> <br> -\n► Long-press a suggestion in the suggestion strip to show more suggestions, and a delete button to remove this suggestion. <br> <br> -\n► Swipe up from a suggestion to open more suggestions, and release on the suggestion to select it. <br> <br> -\n► Long-press an entry in the clipboard history to pin it (keep it in clipboard until you unpin). <br> <br> -\n► Swipe left in clipboard view to remove an entry (except when it\\\'s pinned) <br> <br> -\n► Select text and press shift to switch between uppercase, lowercase and capitalize words. <br> <br> -\n► You can add dictionaries by opening them in a file explorer: <br> -\n\t• This only works with <i>content-uris</i> and not with <i>file-uris</i>, meaning that it may not work with some file explorers. <br> <br> -\n► For users doing manual backups with root access: <br> -\n\t• Starting at Android 7, the shared preferences file is not in the default location, because the app is using %s. This is necessary so the settings can be read before the device is unlocked, e.g. at boot; <br> -\n\t• The file is located in /data/user_de/0/package_id/shared_prefs/ though this may depend on the device and Android version. <br> <br> -\n<i><b>Debug mode / debug APK</b></i> <br> <br> -\n► Long-press a suggestion to show the source dictionary. <br> <br> -\n► When using debug APK, you can find Debug Settings within the Advanced Preferences,though the usefulness is limited except for dumping dictionaries into the log. <br> -\n\t• For a release APK, you need to tap the version in <i>About</i> several times, then you can find debug settings in <i>Advanced Preferences</i>. <br> -\n\t• When enabling <i>Show suggestion infos</i>, suggestions will have some tiny numbers on top showing some internal score and source dictionary. <br> <br> -\n► In the event of an application crash, you will be prompted whether you want the crash logs when you open the Settings. <br> <br> -\n► When using multilingual typing, space bar will show an confidence value used for determining the currently used language. <br> <br> -\n► Suggestions will have some tiny numbers on top showing some internal score and source dictionary (can be disabled). - Önerileri iyileştirmek için iletişimlerinizden ve yazdığınız verilerden öğrenin - + >► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevler sağlar: <br> +\n\t• pano &#65515; yapıştır <br> +\n\t• sola/sağa taşı &#65515; sözcük sola/sağa <br> +\n\t• yukarı/aşağı taşı &#65515; sayfa yukarı/aşağı <br> +\n\t• sözcük sola/sağa &#65515; satır başı/sonu <br> +\n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> +\n\t• kopyala &#65515; kes <br> +\n\t• sözcük seç &#8596; tümünü seç <br> +\n\t• geri al &#8596; yinele <br> <br> +\n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, bunları öneri şeridine sabitler. <br> <br> +\n► Pano Görünümü, Emoji Görünümü, Tek Elle Mod, Ayarlar veya Dil Değiştirme\'ye erişmek için Virgül tuşuna uzun basın: <br> +\n\t• İlgili tuş etkinse Emoji Görünümü ve Dil Değiştirme kaybolur; <br> +\n\t• Bazı düzenlerde bu, Virgül\\\'ün tuşu değil, aynı konumdaki tuştur (ör. Dvorak\\\'ta \\\'q\\\' kullanılır). <br> <br> +\n► Gizli mod etkinleştirildiğinde hiçbir sözcük öğrenilmez ve son kullanılanlara emoji eklenmez. <br> <br> +\n► Araç çubuğuna erişmek için Gizli mod simgesine basın. <br> <br> +\n► Kaydırmalı tuş girişi: Tek bir büyük harf yazmak için Shift tuşundan başka bir tuşa kaydırın: <br> +\n\t• Bu, semboller klavyesinden tek bir sembol yazmak üzere \\\'?123\\\' tuşu ve ilgili tuşlar için de geçerlidir. <br> <br> +\n► Önceki klavyeye dönmek için Shift veya sembol tuşunu basılı tutun, bir ya da daha fazla tuşa basın ve ardından Shift veya sembol tuşunu bırakın. <br> <br> +\n► Daha fazla öneriyi ve bu öneriyi kaldırmak için silme düğmesini göstermek üzere öneri şeridindeki bir öneriye uzun basın. <br> <br> +\n► Daha fazla öneriyi açmak için bir öneriden yukarı kaydırın ve onu seçmek için önerinin üzerinde bırakın. <br> <br> +\n► Pano geçmişindeki bir girişi sabitlemek için ona uzun basın (sabitlemeyi kaldırana kadar panoda tutulur). <br> <br> +\n► Pano\\\'da bir girdiyi kaldırmak için sola kaydırın (sabitlenmiş değilse). <br> <br> +\n► Metni seçin ve sözcükleri BÜYÜK HARF, küçük harf ve Baş Harfleri Büyük arasında değiştirmek için Shift tuşuna basın. <br> <br> +\n► Bir dosya gezgininde açarak sözlük ekleyebilirsiniz: <br> +\n\t• Bu yalnızca <i>content-uris</i> ile çalışır; <i>file-uris</i> ile çalışmaz. Bu nedenle bazı dosya gezginlerinde çalışmayabilir. <br> <br> +\n► Kök erişimiyle elle yedekleme yapan kullanıcılar için: <br> +\n\t• Android 7\'den itibaren uygulama %s kullandığından, paylaşılan tercihler dosyası varsayılan konumda değildir. Bu, ayarların cihaz kilidi açılmadan önce, örneğin açılışta, okunabilmesi için gereklidir; <br> +\n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumundadır; ancak bu, cihaza ve Android sürümüne bağlı olabilir. <br> <br> +\n<i><b>Hata ayıklama modu / hata ayıklama APK\'sı</b></i> <br> <br> +\n► Kaynak sözlüğü göstermek için bir öneriye uzun basın. <br> <br> +\n► Hata ayıklama APK\'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsiniz; ancak günlük dosyasına sözlük dökme dışında faydası sınırlıdır. <br> +\n\t• Yayın APK\'sında, <i>Hakkında</i> bölümündeki sürüme birkaç kez dokunmanız gerekir; ardından <i>Gelişmiş Tercihler</i> içindeki hata ayıklama ayarlarını bulabilirsiniz. <br> +\n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür. <br> <br> +\n► Uygulama çökerse, Ayarlar uygulamasını açtığınızda çökme günlüklerini isteyip istemediğiniz sorulur. <br> <br> +\n► Çok dilli yazma kullanılırken boşluk çubuğunda, geçerli kullanılan dili belirlemek için kullanılan bir güven değeri gösterilir. <br> <br> +\n► Önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür (devre dışı bırakılabilir). + >Önerileri iyileştirmek için iletişimlerinizden ve yazdığınız verilerden öğrenin - Git - + >Git - İleri - + >İleri - Önceki - + >Önceki - Bitti - + >Bitti - Gönder - + >Gönder - Ara - + >Ara - Duraklat - + >Pause - Bekleyin - + >Wait - Giriş - + >Enter - Sekme - + >Tab - Sil - + >Delete - Shift - + >Shift - Shift (etkin) - + >Shift (shifted) - Büyük harf kilidi - + >Caps lock - Boşluk (sayı düzeni) - + >Space (number layout) - Tek elle modu sonlandır - + >End one-handed mode - Tek elle modu yeniden boyutlandır - + >Resize one-handed mode - Tek elle kullanım tarafını değiştir - + >Switch one-handed mode side - Ses girişi devre dışı - + >Voice input disabled - Araç çubuğunu göster / gizle - + >Show / hide toolbar - @string/show_language_switch_key - + >@string/show_language_switch_key - Sıfır genişlikli birleştirici - + >Zero-width joiner - Sıfır genişlikli birleştirmeyen - + >Zero-width non-joiner - Çöp kutusu - + >Bin - Yatay boşluk tuşu kaydırma hareketi - + >Yatay boşluk tuşu kaydırma hareketi - Dikey boşluk tuşu kaydırma hareketi - + >Dikey boşluk tuşu kaydırma hareketi - Hiçbiri - + >Hiçbiri - İmleci taşı - + >İmleci taşı - Sayısal tuş takımını aç/kapat - + >Sayısal tuş takımını aç/kapat - Klavyeyi gizle - + >Klavyeyi gizle - Dokunmatik yüzey modu - - Dokunmatik yüzey hassasiyeti - - Otomatik büyük harf kullanımını zorla - - Parolalar hariç tüm metin alanlarında cümle başı büyük harfi zorla - + >Dokunmatik yüzey modu + >Dokunmatik yüzey hassasiyeti + >Otomatik büyük harf kullanımını zorla + >Parolalar hariç tüm metin alanlarında cümle başı büyük harfi zorla - Değişken araç çubuğu yönü - + >Değişken araç çubuğu yönü - Sağdan sola yazan bir klavye alt türü seçildiğinde yönü ters çevir - + >Sağdan sola yazan bir klavye alt türü seçildiğinde yönü ters çevir - Sadece fiziksel klavye bağlıyken araç çubuğunu göster - + >Sadece fiziksel klavye bağlıyken araç çubuğunu göster - Sistem ayarlarında sanal klavyeyi göstermeyi ayrıca etkinleştirmeniz gerekir - + >Sistem ayarlarında sanal klavyeyi göstermeyi ayrıca etkinleştirmeniz gerekir - Dil değiştirme kaydırma mesafesi - + >Dil değiştirme kaydırma mesafesi - Araç çubuğu tuş kodlarını özelleştir - + >Araç çubuğu tuş kodlarını özelleştir - Tüm özelleştirilmiş tuş kodları gerçekten silinsin mi? - + >Tüm özelleştirilmiş tuş kodları gerçekten silinsin mi? - Tuş kodu - + >Tuş kodu - Uzun basma kodu - + >Uzun basma kodu - Araç çubuğunu otomatik göster - - Açıldığında araç çubuğunu otomatik göster - - Metin seçildiğinde araç çubuğunu otomatik göster - + >Araç çubuğunu otomatik göster + >Açıldığında araç çubuğunu otomatik göster + >Metin seçildiğinde araç çubuğunu otomatik göster - Klavye açıldığında araç çubuğunu göster - - Metin seçildiğinde araç çubuğunu göster - + >Klavye açıldığında araç çubuğunu göster + >Metin seçildiğinde araç çubuğunu göster - Araç çubuğunu otomatik gizle - + >Araç çubuğunu otomatik gizle - Öneriler kullanılabilir olduğunda araç çubuğunu gizle - + >Öneriler kullanılabilir olduğunda araç çubuğunu gizle - Aşağı kaydırarak kapat - + >Aşağı kaydırarak kapat - Klavyeyi gizlemek için araç çubuğunu aşağı kaydırın - + >Klavyeyi gizlemek için araç çubuğunu aşağı kaydırın - Sabitlenmiş tuşları otomatik gizle - + >Sabitlenmiş tuşları otomatik gizle - Araç çubuğu genişletildiğinde sabitlenmiş tuşları gizle - - Araç çubuğu durumunu hatırla - - Araç çubuğunu oturumlar arasında ve yazarken genişletilmiş ya da daraltılmış halde tutar - + >Araç çubuğu genişletildiğinde sabitlenmiş tuşları gizle + >Araç çubuğu durumunu hatırla + >Araç çubuğunu oturumlar arasında ve yazarken genişletilmiş ya da daraltılmış halde tutar - Dil seçiciyi kapat - + >Dil seçiciyi kapat - İçerik kopyalandı - + >İçerik kopyalandı - Simgeleri özelleştir - + >Simgeleri özelleştir - Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak istiyor musunuz? - + >Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak istiyor musunuz? - Gerçekten %s silinsin mi? - + >Gerçekten %s silinsin mi? - Geçersiz ad - + >Geçersiz ad - Özel alt tür - + >Özel alt tür - Yatay - - Çevrimdışı Model - - Yerel LLM\'yi yönet - - Çevrimdışı Yapay Zeka Maksimum Token Sayısı - - Oluşturulan düzeltmenin maksimum uzunluğu - - Özel… - - Özel (%1$d token) - - Sıcaklık - - Rastgeleliği kontrol eder: daha düşük değerler daha odaklı ve öngörülebilir sonuçlar üretir - - Top-P (Çekirdek Örnekleme) - - Kelime çeşitliliğini kontrol eder: daha düşük değerler daha az olası seçenekleri eler - - Top-K - - Seçimleri en olası K token ile sınırlar - - Min-P - - En olası token\'a göreli minimum olasılık eşiği - - Düşünme sürecini göster - - Model üretirse akıl yürütme sürecini ve içsel düşünme token\'larını göster - + >Yatay + >Çevrimdışı Model + >Yerel LLM\'yi yönet + >Çevrimdışı Yapay Zeka Maksimum Token Sayısı + >Oluşturulan düzeltmenin maksimum uzunluğu + >Özel… + >Özel (%1$d token) + >Sıcaklık + >Rastgeleliği kontrol eder: daha düşük değerler daha odaklı ve öngörülebilir sonuçlar üretir + >Top-P (Çekirdek Örnekleme) + >Kelime çeşitliliğini kontrol eder: daha düşük değerler daha az olası seçenekleri eler + >Top-K + >Seçimleri en olası K token ile sınırlar + >Min-P + >En olası token\'a göreli minimum olasılık eşiği + >Düşünme sürecini göster + >Model üretirse akıl yürütme sürecini ve içsel düşünme token\'larını göster @@ -2045,37 +1355,22 @@ New dictionary: 128 - Bu uygulama resim yapıştırmayı desteklemiyor - - Emoji geçmişini temizle - - Son kullandığınız emojileri silmek istediğinizden emin misiniz? - - Klavye taşımak için sürükleyin - - Klavye boyutunu değiştirmek için sürükleyin - - Yüzen klavyeyi açık tut - - Girdi tamamlandığında yüzen klavyeyi gizleme - + >Bu uygulama resim yapıştırmayı desteklemiyor + >Emoji geçmişini temizle + >Son kullandığınız emojileri silmek istediğinizden emin misiniz? + >Klavye taşımak için sürükleyin + >Klavye boyutunu değiştirmek için sürükleyin + >Yüzen klavyeyi açık tut + >Girdi tamamlandığında yüzen klavyeyi gizleme - Metin düzenleme modunu koru - - Girdi tamamlandığında metin düzenleme modundan çıkma - - Çok kelimeli önerileri devre dışı bırak - - Birden çok birleşik kelimeden oluşan önerileri engelle (Türkçe için önerilir) - + >Metin düzenleme modunu koru + >Girdi tamamlandığında metin düzenleme modundan çıkma + >Çok kelimeli önerileri devre dışı bırak + >Birden çok birleşik kelimeden oluşan önerileri engelle (Türkçe için önerilir) - Yükselt - - Güncelleme var - - Sözlük Deposu - - Sözlükleri tarayıcınızda doğrudan göz atın veya indirin - - \ No newline at end of file + >Yükselt + >Güncelleme var + >Sözlük Deposu + >Sözlükleri tarayıcınızda doğrudan göz atın veya indirin + From 3e97edf0d787091fb7f6bad7d8d7f0f9725d2ea0 Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 20:14:48 +0000 Subject: [PATCH 14/15] Cleanup PR 391: Remove unrelated blacklist code, revert RichInputConnection and InputLogic to original, keeping only the intended popup fix and strings.xml improvements --- .../keyboard/latin/RichInputConnection.java | 31 ------------------- 1 file changed, 31 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java index 65670fdaa..02457fe4b 100644 --- a/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java +++ b/app/src/main/java/helium314/keyboard/latin/RichInputConnection.java @@ -375,15 +375,6 @@ public void commitCodePoint(final int codePoint) { * @param newCursorPosition The new cursor position around the text. */ public void commitText(final CharSequence text, final int newCursorPosition) { - // --- ADDED BLACKLIST CONTROL --- - if (text != null && isWordBlocked(text.toString())) { - mComposingText.setLength(0); - if (isConnected()) { - mIC.commitText("", 1); - } - return; - } - // ------------------------------------ if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) @@ -880,15 +871,6 @@ public boolean setComposingTextWithBackgroundColor(final CharSequence newComposi // return whether the text was (probably) set correctly // unfortunately this is necessary in some cases public boolean setComposingText(final CharSequence text, final int newCursorPosition) { - // --- ADDED BLACKLIST CONTROL --- - if (text != null && isWordBlocked(text.toString())) { - mComposingText.setLength(0); - if (isConnected()) { - mIC.setComposingText("", 1); - } - return false; - } - // ------------------------------------ if (DEBUG_BATCH_NESTING) checkBatchEdit(); if (DEBUG_PREVIOUS_TEXT) @@ -1474,17 +1456,4 @@ public boolean requestCursorUpdates(final boolean enableMonitor, final boolean r | (requestImmediateCallback ? InputConnection.CURSOR_UPDATE_IMMEDIATE : 0); return mIC.requestCursorUpdates(cursorUpdateMode); } - - // --- HELPER METHOD FOR ADDED BLACKLIST CONTROL --- - /** - * NOTE: You need to connect this method to LeanType's actual blacklist logic. - * For now, it returns false as an example. - */ - private boolean isWordBlocked(String text) { - if (android.text.TextUtils.isEmpty(text)) return false; - String normalizedWord = text.trim().toLowerCase(); - // Example usage: - // return BlacklistManager.getInstance().isBlocked(normalizedWord); - return false; - } } From c801afd3ff204158515ad2c998e71380f155a8fa Mon Sep 17 00:00:00 2001 From: AZADAYAZ <9.5386329e+07+AZADAYAZ@users.noreply.github.com> Date: Wed, 5 Aug 2026 20:24:15 +0000 Subject: [PATCH 15/15] Focus PR 391 on edge key popup fix: Remove translation changes (moved to PR 379) --- .../strings-talkback-descriptions.xml | 20 +- app/src/main/res/values-tr/strings.xml | 1820 ++++------------- 2 files changed, 462 insertions(+), 1378 deletions(-) diff --git a/app/src/main/res/values-tr/strings-talkback-descriptions.xml b/app/src/main/res/values-tr/strings-talkback-descriptions.xml index e056d13eb..43f3bf106 100644 --- a/app/src/main/res/values-tr/strings-talkback-descriptions.xml +++ b/app/src/main/res/values-tr/strings-talkback-descriptions.xml @@ -1,10 +1,14 @@ - - + + + "Şifre tuşlarının sesli okunmasını dinlemek için kulaklık takın." "Mevcut metin: %s" "Metin girilmedi" - "%1$s, %2$s kelimesini %3$s olarak düzeltir" - "%1$s otomatik düzeltme yapar" + "%1$s, %2$s kelimesini %3$s olarak düzeltir" + "%1$s otomatik düzeltme yapar" "Öneri yok" "Bilinmeyen karakter" "Üst karakter" @@ -35,7 +39,7 @@ "Telefon modu" "Telefon sembolleri modu" "Klavye gizli" - "%s klavyesi görüntüleniyor" + "%s klavyesi görüntüleniyor" "tarih" "tarih ve saat" "e-posta" @@ -55,13 +59,11 @@ "Seyahat ve Yerler" "Etkinlik" "İfadeler" - "Büyük Harf %s" + "Büyük Harf %s" "Büyük Harf I" "Büyük Harf I, üst noktalı" "Alternatif karakterler kullanılabilir" "Alternatif karakterler yoksayılır" "Alternatif öneriler kullanılabilir" "Alternatif öneriler yoksayılır" - Pano önerisi - Gülen yüz - \ No newline at end of file + diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 2ec451607..29158dd71 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -3,1374 +3,456 @@ Copyright (C) 2008 The Android Open Source Project modified SPDX-License-Identifier: Apache-2.0 AND GPL-3.0-only ---> - - - >LeanType Yazım Denetleyici - >LeanType - - >LeanType Ayarları - - >LeanType Yazım Denetleyici Ayarları - - >Tuşa basıldığında titreşim - - >Rahatsız etme modunda titreşim - - >Tuşa basıldığında ses - - >Emoji önerileri - - >Normal önerilerde emoji sözlüğünü kullan - - >Satır içi emoji araması - - >Bir kelimenin önünde \':\' varsa yalnızca emojileri öner - - >Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. .dict formatındaki sözlükler %s üzerinden indirilebilir. - - >Uzun basmada emoji açıklamasını göster - - >Tuşa basıldığında açılır pencere - - >Tercihler - - >Kaydırarak yazma - - >Metin düzeltme - - >Gelişmiş - - >Tema - - >Girdi - - >Ek tuşlar - - >Pano geçmişi - - >Düzeltmeler - - >Boşluk - - >Öneriler - - >Deneysel - - >Çeşitli - - >Yapılandırma - - >Görseller & Önizleme - - >Davranış - - >Gelişmiş Hareketler - - >Dokunmatik yüzey - - >Bölünmüş klavyeyi etkinleştir - - >Bölünmüş klavyeyi etkinleştir (yatay) - - >Bölünme mesafesi - - >Diğer giriş yöntemlerine geç - - >Dili değiştir - - >Her ikisini de değiştir - - >Dil değiştirme tuşu - - >Dil değiştirme tuşu davranışı - - >Emoji tuşu - - >%s ms - - >%s min - - >Sistem varsayılanı - - >Sınırsız - - >Kişi adlarını ara - - >Öneriler ve düzeltmeler için Kişilerdeki adları kullan - - >Uygulama adlarını ara - - >Öneriler ve düzeltmeler için yüklü uygulama adlarını kullan - - >Kişiselleştirilmiş öneriler - - >Uyarı: Bu ayarı devre dışı bırakmak öğrenilen verileri temizleyecektir - - >Kişisel sözlüğe kelime ekle - - >Öğrenilen kelimeleri saklamak için cihazın kişisel sözlüğünü kullan - - >Çift boşlukla nokta - - >Boşluk tuşuna iki kez dokunmak nokta ve ardından bir boşluk ekler - - >Otomatik büyük harf - - >Her cümlenin ilk kelimesini büyük harf yap - - >Kişisel sözlük - >Engellenen kelimeler - >Önerilerden engellenen kelimeleri yönet - >Bir kelimeyi engelle - >Kelime zaten engellenmiş - >Tüm kelimelerin engelini kaldırmak istediğinizden emin misiniz? - - >Ana sözlük - - >Düzeltme önerilerini göster - - >Yazarken önerilen kelimeleri göster - - >Her zaman önerileri göster - - >Diğer uygulamaların önerileri devre dışı bırakma isteğini yok say (sorunlara yol açabilir) - - >Web düzenleme alanları için her zaman önerileri gösterme - - >\'Her zaman önerileri göster\' ayarıyla ilgili sorunların çok yaygın bir nedeni olan web düzenleme alanları (çoğunlukla tarayıcılarda bulunur) - - >Potansiyel olarak saldırgan kelimeleri engelle - - >Potansiyel olarak saldırgan kelimeleri önermeyin - - >Otomatik düzeltme - - >Boşluk çubuğu ve noktalama işaretleri yanlış yazılmış kelimeleri otomatik düzeltir - >Otomatik düzeltme açık - >Boşluk çubuğu ve noktalama - >Sadece boşluk çubuğu - >Sadece noktalama - - >Daha fazla otomatik düzeltme - - >Girdi alanı tarafından açıkça istenmese bile otomatik düzeltme yapar - - >Otomatik düzeltme güven düzeyi - - >Kısayolları otomatik düzeltme - - >Etkinleştirildiğinde kısayollar otomatik düzeltme ile genişletilebilir - - >Geri tuşu otomatik düzeltmeyi geri alır - - >Kapalı - - >Ilımlı - - >Agresif - - >Çok agresif - - >Ortadaki öneriyi her zaman kullan - - >Boşluk veya noktalama tuşuna basıldığında, ortadaki öneri girilecektir. - - >Sonraki kelime önerileri - - >Öneri oluştururken önceki kelimeyi kullan - - >Kişisel & öğrenilmiş kelimelere öncelik ver - - >Sonraki kelime tahmininde kişisel sözlük ve öğrenilmiş kelimelere daha yüksek puan ver. - - >Öğrenilen kelime güçlendirme seviyesi - - >Öğrenilen ve kişisel sözlük girdileri için skor önceliği güçlendirmesini ayarla. - - >Öğrenilen kelimeler için bağlam eşleşmesi gerekli - - >Sadece önceki kelime bağlamı eşleştiğinde öğrenilen kelimeleri öner - - >Anında otomatik boşluk - >Bir öneri seçildiğinde bir sonraki yazılan harfte gecikmeyi önlemek için boşluğu anında ekle. - - - >İlk kelime önerileri - - >Cümlenin başında girdi yoksa önerileri göster - - >Noktalama önerileri - - >Başka öneri yoksa noktalama işaretlerini göster - - >Pano içeriğini öner - - >Son kopyalanan pano içeriğini öneri olarak göster - - >Son ekran görüntülerini öner - - >Son alınan ekran görüntülerini öneri olarak göster - - >SMS\'ten OTP\'yi otomatik oku - - >Gelen SMS\'teki kodu, dokunarak ekleyebileceğiniz bir öneri olarak göster - - >OTP önerisini kapat - - >Önerilen ekran görüntülerini sıkıştır - - >Alan tasarrufu için önerilen ekran görüntülerinin kalite ve boyutunu azaltır. - - >Kaydırarak yazmayı etkinleştir - - >Harflerin üzerinde kaydırarak bir kelime girin - - >Kaydırma izini göster - - >Kayan önizleme - - >Kaydırırken önerilen kelimeyi göster - - >Dinamik kayan önizleme - - >Kaydırma sırasında önizlemeyi hareket ettir - - >İfade kaydırma - - >Kaydırarak yazma sırasında boşluk tuşuna kaydırarak boşluk girin - - >Hızlı yazma bekleme süresi - - >Her zaman anında başla - - >Kaydırma izi görünme süresi - - >Pano geçmişini etkinleştir - - >Devre dışıysa, pano tuşu varsa panodaki içeriği yapıştırır - - >Geçmiş saklama süresi - - >Sabitlenmiş öğeleri üstte göster - >Sabitlenmiş öğeleri varsayılan olarak daralt - >Pano temizleme simgesi - >Pano temizleme düğmesi için simge stilini seçin - >Çöp kutusu - >Süpür / Hepsini temizle - >Eğimli çizgiler - >Çapraz çizgili pano taslağı - >Klasik pano - >Sabitlendi - - >Panodaki öğeleri ara... - - >Öğe bulunamadı - - >Öğe silindi - - >Sonuç bulunamadı - >Tüm geçmişi temizlemek istediğinizden emin misiniz? - >Tümünü temizle - - >Kaydırarak silme - - >Silme tuşundan kaydırma yaparak aynı anda daha büyük metin parçalarını seçip silebilirsiniz. - - >Yedekleme ve geri yükleme - - >Dosyaya kaydet veya dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır - - >Yedekleme hatası: %s - - >Yedeği geri yüklerken hata: %s - - >Yedek - - >Geri yükle - - >Yedek geri yüklendi - - >timestamp key için biçim - - >Çok dilli yazma - - >Sözlüğü bulunan diller - - >Kaydırarak yazma kütüphanesini yükle - - >Kaydırarak yazmayı etkinleştirmek için yerel bir kütüphane sağlayın - - - >Kaydırarak yazma yöntemi - >Kaydırarak yazma için algoritma seçin - >Yerel kütüphane (swypelib gerektirir) - >Yedek motor (saf Java) - - >Bu kütüphaneye \'%s\' için ihtiyacınız olacak. Uyumsuz kütüphaneler Kaydırarak yazma kullanılırken çökme yapabilir. - \n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen kütüphaneyi kullanın. - - >Bilinmeyen kütüphane dosyası. Bunu güvendiğiniz bir kaynaktan aldığınızdan ve \'%s\' için olduğundan emin misiniz? - - >Kütüphaneyi yükle - - >Kütüphaneyi sil - - >Kütüphaneyi indir - - >Kaydırma jest kütüphanesi indiriliyor… - - >İndirme tamamlandı! Yeniden başlatılıyor… - - >İndirme başarısız: %s - - >El yazısı eklentisini yükle - >El yazısı girişi etkinleştirmek için bir APK eklentisi sağlayın - >Bir el yazısı eklentisi APK\'sı sağlayın.\n\nUyarı: dış kod yüklemek güvenlik riski oluşturabilir. Yalnızca güvendiğiniz bir kaynaktan gelen eklentileri kullanın. - >Eklenti APK\'sını yükle - >Eklentiyi sil - >El yazısı eklentisi başarıyla içe aktarıldı - >El yazısı eklentisi APK\'sı yüklenemedi - - >Çeviri eklentisini yükle - >Çeviri motorunu etkinleştirmek için bir APK eklentisi sağlayın - >Eklentiyi sil - >Çeviri eklentisi başarıyla içe aktarıldı - >Çeviri eklentisi APK\'sı yüklenemedi - >El yazısı - >İndirilen modeli sil - >El yazısı modeli silindi - >El yazısı eklentisi gerekli - >Çizim tanımayı etkinleştirmek için lütfen el yazısı eklentisi kitaplığını yükleyin. - >Eklentiyi yükle - - >Noktalama sonrası otomatik boşluk - - >Yeni bir kelime yazarken noktalama işaretlerinden sonra otomatik boşluk ekler. - - >Emoji sonrası otomatik boşluk - - >Yeni bir kelime yazarken emoji sonrası otomatik boşluk ekler. - - >Bir öneri seçildikten sonra otomatik boşluk - - >Kaydırarak yazmadan önce otomatik boşluk - - >Kaydırarak yazdıktan sonra otomatik boşluk - - >Shift\'e basıldığında otomatik boşluk yok - - >Shift bekleyen otomatik boşluğu kaldırır - - >Noktalama öncesi boşluğu koru - - >Noktalama işaretlerinden önceki boşluğu otomatik silme: ]}):;!?,. - - >Açılır pencerede diakritik işaretli daha fazla harf göster - - >Klavye dillerinde tanımlı varyantları göster - - >Çok yaygın varyantları ekle (varsayılan) - - >Yaygın varyantları ekle - - >Tüm kullanılabilir varyantları ekle - - >URL algılama - - >URL\'leri ve benzerlerini tek bir kelime olarak algılamaya çalış - - >Gizli modu zorunlu kıl - >Dokunmatik yüzey - >Metin düzenleme - >Modu seç - >Tam ekran dokunmatik yüzey - >Dokunmatik yüzey modu etkin olduğunda öneri şeridini ve araç çubuğunu gizle - - >Yeni kelimelerin öğrenilmesini devre dışı bırak - - >Daha fazla tuş - - >Diller & Düzenler - >Diller - - >Sayı satırı - - >Sayı satırını her zaman göster - - >Simgeler görünümünde sayı satırını göster - - >Kompakt simgeler için sayı satırı - - >Ayrı bir satır eklemek yerine simgelerin ilk satırını değiştir - - >Sayı satırını yerelleştir - - >Yerel rakamları Latin rakamlara tercih et - - >Sayı satırında ipuçlarını göster - - >Uygulamaya göre dili hatırla - - >Tuş ipuçlarını göster - - >Uzun basma ipuçlarını göster - - >Açılır tuş sıralaması ve ipucu kaynağı - - >İpucu kaynağını seç - - >Açılır tuş sırasını seç - - >Üst düzey alan adları (TLD) açılır tuşlarını göster - - >URL ve e-posta adresleri yazarken nokta tuşunun açılırlarını üst düzey alan adlarıyla değiştir - - >Number row - >@string/subtype_locale - >Language (priority) - >Layout - >Symbols - - >Araç çubuğu modu - - >Toolbar keys and suggestions - - >Toolbar keys only - - >Suggestions only - - >Hidden - - >Pano ve emoji araç çubuklarını da gizle - - >Araç çubuğu tuşlarını seç - - >@android:string/paste - >@android:string/copy - >@android:string/cut - >Clipboard - >Clear clipboard - - >Clipboard search - - >İndir - >İndiriliyor… - >İndirme başarısız oldu - >Yüklendi - >Voice input - >@string/layout_numpad - >Settings - >@android:string/selectAll - >Select word - >One-handed mode - >Float - >Split keyboard - >Full left - >Full right - >Page start - >Page end - >Left - >Right - >Up - >Down - >Word left - >Word right - >Page up - >Page down - >Undo - >Redo - >Close clipboard history - >Emoji - - >Proofread - >Metin düzeltme… - >Metin düzeltildi - >Metin düzeltme başarısız: %s - >Düzeltilecek metin yok - >Gemini API anahtarı ayarlanmadı. Ayarlar → AI entegrasyonuna gidin. - >Gemini API Anahtarı - >Metin düzeltme için Google Gemini API anahtarınızı girin - >API anahtarını girin - >API Anahtarı Al - >Gemini Modeli - >Metin düzeltme için AI modelini seçin - >API Anahtarını Test Et - >API anahtarı geçerli! - >API anahtarı testi başarısız: %s - >API anahtarı test ediliyor… - >Tüm ağ erişimini devre dışı bırak - >Dahili kilit: Bu uygulamadan giden tüm ağ isteklerini engeller. İzni tamamen kaldırmak için sistem Uygulama bilgileri ayarlarını kullanın. - >Sistem Uygulama bilgilerini aç - >İzinleri ve pil kullanımını Android ayarlarında yönetin - >LeanType ayarlarında ağ erişimi devre dışı bırakıldı - >Yapay Zeka Sağlayıcısı - >Metin düzeltme için Yapay Zeka servisini seçin - >Google Gemini - >Araç çubuğunu ayır - >Önerileri araç çubuğundan ayır - >Araç çubuğu tuşlarını otomatik olarak genişlet - >Araç çubuğu tuşlarını kullanılabilir boşluğu dolduracak şekilde genişlet - >Araç çubuğunda indirme düğmesini göster - >Ana sözlük eksik olduğunda öneri şeridinde sözlük indirme simgesini göster - >Groq - >HF/OpenAI-uyumlu - >API Jetonu - >HuggingFace veya OpenAI-uyumlu API anahtarınızı girin - >API Jetonu - >Groq API anahtarınızı girin - >API anahtarını girin - >API anahtarını girin - >Groq Anahtarını Al - >API Belirteci Al - >API belirteci ayarlı değil. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. - >Model - >Groq modelini seçin - >model-name - >Hiç model yapılandırılmamış. Ayarlar → Yapay Zeka entegrasyonu bölümüne gidin. - >API Uç Noktası - >API uç nokta URL\'si - >https://api.groq.com/openai/v1/chat/completions - >Güvensiz HTTP bağlantısı engellendi. AI ayarlarında \'Allow Insecure Connections\' seçeneğini etkinleştirin. - >Güvensiz bağlantılara izin ver - >HTTP bağlantılarına izin verin ve SSL sertifika hatalarını yoksayın. Uyarı: girdiler yerel ağ tarafından dinlenebilir. - >Düzenler - >Tema & Özel Arka Planlar - >Sözlükler & Yazma Geçmişi - >Pano Geçmişi - >Genel Ayarlar - >Dahil edilecek öğeleri seçin: - - >https://generativelanguage.googleapis.com/v1beta/models?key=%1$s - >https://api.groq.com/openai/v1/models - >https://api.openai.com/v1/chat/completions - >https://api.groq.com/openai/v1/chat/completions - >Modeli hafızada tut - >Yeniden yükleme gecikmesini önlemek için çevrimdışı yapay zeka modelini hafızada tut (daha fazla RAM kullanır) - - >Translate - >Çeviriliyor… - >Metin çevrildi - >Çeviri başarısız: %s - >Çevrilecek metin yok - >Çeviri hedef dili - >Çevirmek istediğiniz dili seçin - >Çeviri Modeli - >Çeviri için yapay zeka modelini seçin. Metin düzeltme modelini kullanmak için boş bırakın. - - >Çeviri Motoru - >Çeviri için motor seçin (Eklenti veya AI) - - - - English - Spanish - French - German - Italian - Portuguese - Chinese (Simplified) - Chinese (Traditional) - Japanese - Korean - Arabic - Russian - Hindi - Bengali - Indonesian - Dutch - Turkish - Polish - Ukrainian - Swedish - Danish - Norwegian - Finnish - Greek - Hebrew - Thai - Vietnamese - Tamil - Telugu - Marathi - Gujarati - Kannada - Malayalam - Urdu - Persian (Farsi) - Swahili - Romanian - Czech - Hungarian - Filipino (Tagalog) - Malay - Serbian - Croatian - Bulgarian - Slovak - Slovenian - Lithuanian - Latvian - Estonian - Catalan - Basque - - - - English - Spanish - French - German - Italian - Portuguese - Chinese (Simplified) - Chinese (Traditional) - Japanese - Korean - Arabic - Russian - Hindi - Bengali - Indonesian - Dutch - Turkish - Polish - Ukrainian - Swedish - Danish - Norwegian - Finnish - Greek - Hebrew - Thai - Vietnamese - Tamil - Telugu - Marathi - Gujarati - Kannada - Malayalam - Urdu - Persian (Farsi) - Swahili - Romanian - Czech - Hungarian - Filipino (Tagalog) - Malay - Serbian - Croatian - Bulgarian - Slovak - Slovenian - Lithuanian - Latvian - Estonian - Catalan - Basque - - - >Pano araç çubuğu tuşlarını seç - - >Sabitlenmiş araç çubuğu tuşlarını seçin - - >Uzun basmada araç çubuğu tuşunu sabitleyin - - >Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma eylemlerini devre dışı bırakacaktır - - >Uzun basma ipucu noktalarını göster - - >Uzun basma eylemi olan araç çubuğu tuşlarında noktaları gösterin - - >İşlevsel ipuçlarını göster - - >Bir tuşa uzun basmak ek işlevsellik tetikliyorsa ipuçlarını göster - - >Yinelenen açılırları kaldır - - >Temel düzen üzerinde zaten bulunan açılır tuşları gizle - - >Boşluk tuşuyla giriş yöntemini değiştir - - >Boşluk tuşuna uzun basmak giriş yöntemi seçim menüsünü açar - - >Simgeler tuşuna uzun basıldığında sayısal tuş takımına geç - - >Tuş aralıklarını daralt - >Daraltma seviyesi - >En küçük - >Küçük - >Orta - >Büyük - >En büyük - - >Klavye yüksekliği ölçeği - - >Alt dolgu ölçeği - - >Yan dolgu ölçeği - - >Klavye yazı tipi ölçeği - - >Emoji görünümü yazı tipi ölçeği - - >Emoji tuş boyutunu yazı tipi boyutuna göre ölçeklendir - - >Varsayılan emoji ten rengi - - >Nötr - - >Boşluk çubuğundaki özel metin - - >Dosyadan özel yazı tipi ayarla - - >Dosyadan özel emoji yazı tipi ayarla - - >Sistem emoji yazı tipini kullan - - >Ayarlar ve aramada sistem emoji yazı tipini kullan (uygulamayı yeniden başlatır) - - >İngilizce (UK) - - >İngilizce (US) - - >İspanyolca (US) - - >Sırpça (Latin) - - >Hinglish - - >Mansi - - >Kaitag - - >Dagbani - - >Sesotho - - >Dargwa (Urakhi) - - >Mari (Doğu) - - >%1$s (%2$s) - - >%s (Genişletilmiş) - - >%s (Geleneksel) - - >%s (Akkhor) - - >%s (Probhat) - - >%s (Baishakhi) - - >%s (Khipro) - - >%s (Kompakt) - - >%s (Fonetik) - - >%s (Sebeolsik 390) - - >%s (Sebeolsik Final) - - >%s (Öğrenci) - - >Dil yok - - >Emoji - - >Ekle - - >Kaldır - - >Kaydet - - >Yükle - - >Dil - - >Düzen - - >Özel düzen ekle - - >Uyumlu bir formatta dosya seçin. Formatlar hakkında bilgi %s adresinde mevcuttur. - - >Dosya yükle - - >Dosyaya kaydet - - >Panoya kopyala - - >Dosya okunamıyor - - >Özel düzen %s gerçekten silinsin mi? - - >Uyarı: düzen şu anda kullanılıyor - >Özel düzen ekle - - >Düzen hatası: %s - - >Ham düzeni düzenlemek için dokun - - >İkincil düzenler - >Özel düzen 1 - >Özel düzen 2 - >Özel düzen 3 - >Özel düzen 4 - >Özel düzen 5 - - >Functional keys - - >Functional keys (large screen) - - >Functional keys (Khipro) - - >Functional keys (Symbols) - - >Functional keys (More symbols) - - >Symbols - - >Symbols (Arabic) - - >More symbols - - >Phone - - >Phone symbols - - >Numbers - - >Numpad - - >Numpad (landscape) - - >Number row - - >Number row (basic) - - >Emoji bottom row - - >Emoji bottom row with action key - - >Clipboard bottom row - - >Clipboard bottom row with action key - - >Arka plan görüntüsünü ayarla - - >Arka plan görüntüsünü ayarla (yatay) - - >Belirlenmemişse, portre görüntüsü kullanılacaktır. - - >Para birimlerini özelleştir - - >Ana ve en fazla 6 ikincil para birimi simgesini boşlukla ayrılmış olarak ayarlayın - - >Ana klavyeye şu işlemden sonra geç… - - >Emoji görünümünde emoji seçme - - >Pano geçmişi öğesi seçme - - >Semboller görünümünde diğer tuşlardan sonra enter veya boşluk basıldığında - - >Sayısal tuş takımında diğer tuşlardan sonra enter veya boşluğa basılması - - >Gün veya gece modu için görüntü ayarlansın mı? - - >Gün - - >Gece - - >Tuş basma titreşim süresi - - >Tuş basma titreşim gücü - - >Tuş basma ses düzeyi - - >Tuş uzun basma gecikmesi - - >Emoji sürümünü geçersiz kıl - - >Fiziksel klavye için Emoji - - >Fiziksel Alt tuşu emoji paletini gösterir - - >Varsayılan - - >"Hoş geldiniz, %s" - - >Kaydırarak yazma ile - - >Başla - - >"%s\'yi ayarlama" - - >"%s\'i etkinleştir" - - >"Lütfen Diller & giriş ayarlarınızda \"%s\" öğesini işaretleyin. Bu, cihazınızda çalışmasına izin verecektir." - - >Ayarlar\'da etkinleştir - - >"%s\'e geç" - - >"Sonra, aktif metin girişi yöntemi olarak \"%s\" öğesini seçin." - - >Giriş yöntemlerini değiştir - - >"Tebrikler, her şey hazır!" - - >Artık tüm favori uygulamalarınızda %s ile yazabilirsiniz. - - >Klavveyi yapılandır - - >Tamamlandı - - >Uygulama simgesini göster - - >Başlatıcıda uygulama simgesini göster - - >Ek sözlükler - - >Sözlükler - - >Dahili ana sözlük - - >"Dosyadan sözlük ekle" - - >"Dil seç" - - >"Kullanıcı tarafından eklenen \"%1$s\" sözlüğü gerçekten değiştirilsin mi?\n -Geçerli sözlük: -%2$s\n -Yeni sözlük: -%3$s" - - >"Sözlüğü değiştir" - - >"Kullanıcı tarafından eklenen sözlük \"%s\" gerçekten silinsin mi?" - - >"Bir sözlük olmadan yalnızca daha önce girdiğiniz metinler için öneriler alırsınız.<br> - Sözlükleri %1$s indirebilirsiniz." - - >"Bir daha gösterme" - - >"Eklemek için bir sözlük seçin. .dict formatındaki sözlükleri %s üzerinden indirebilirsiniz." - - >"buradan" - - >"%s (deneysel)" - - >"Hata: Seçilen dosya geçerli bir sözlük dosyası değil" - - >"Hata: yazı sistemi bu klavye ile uyumlu değil" - - >"Sözlük dosyası yüklenirken hata oluştu" - - >Sözlük indirilebilir - - - >Sil - - >Sürüm %s - - >Kısayol: - - >Ağırlık: - - >Dil: - - >Bir kelime yazın - - >İsteğe bağlı kısayol - - >Kelimeyi düzenle - - >Tüm diller için - - >Daha fazla dil… - - >Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir kelime girin. - - >Kelime ekle - >Bu sözlükteki tüm kelimeleri silmek istediğinizden emin misiniz? - - >Stil - - >Simge stili - - >Rounded - - >Renkler - - >Renkler (gece) - - >Tuş kenarlıkları - - >Otomatik gündüz/gece modu - - >Görünüm sistem ayarlarını takip edecek - - >Gezinme çubuğu rengini ayarla - - >Light - - >Holo White - - >Dark - - >Darker - - >Black - - >Dynamic colors - - >Blue Gray - - >Brown - - >Chocolate - - >Cloudy - - >Forest - - >Indigo - - >Mint and Pink - - >Pink - - >Sand - - >Violette - - >User-Defined - - >LeanBitLab Light - - >LeanBitLab Dark - - - >Rengi otomatik seç - - >Sadece ana renkleri göster - - >Daha fazla renk göster - - >Tüm renkleri göster - - >Bu ayar, dahili olarak kullanılan tüm renkleri açığa çıkarır. Renk listesi her an değişebilir. Varsayılan, normal renklerden türetilir ve adlar çevrilmeyecektir. - - >Klavye arka planı - - >Tuş metni - - >Tuş ipucu metni - - >Öneri şeridi metni - - >Tuş arka planı - - >İşlev tuşu arka planı - - >Boşluk çubuğu arka planı - - >Boşluk çubuğu metni - - >Vurgu - - >Kaydırarak yazma - - >"Renkleri %s bölümünde bulabilir ve paylaşabilirsiniz." - - >"Düzenleri %s bölümünde bulabilir ve paylaşabilirsiniz." - - >"tartışma bölümü" - - >Hakkında - - >Sürüm - - >GitHub\'da Görüntüle - - >Projeyi destekle - - >LeanType geliştirilmesini destekleyin - - >Bu projeyi destekleyin - >Bu proje tamamen topluluk tarafından yürütülüyor ve geliştirmeyi sürdürebilmek için bağışlara dayanıyor. Bu klavyeyi yararlı buluyorsanız lütfen desteklemeyi düşünün! - >Bir daha gösterme - >Destekle - >Şimdi değil - - >FEATURES.md\'ye git - - >Ana özelliklerin listesi ve klavye kılavuzu - +--> + "Kişi adlarını denetle" + "Tuşa basıldığında titret" + "Tuşa basıldığında ses çıkar" + Tuşa basıldığında açılır pencere aç + Tercihler + Hareketle yazma + "Metin düzeltme" + "Gelişmiş" + "Tema" + "Bölünmüş klavyeyi etkinleştir" + "Diğer giriş yöntemine geç" + "Dil değiştirme tuşu" + "%s ms" + "Sistem varsayılanı" + "Öneri ve düzeltmeler için Kişiler\'deki adları kullan" + "Kişisel öneriler" + "Çift boşlukla nokta ekle" + "Boşluk çubuğuna iki kez dokunmak nokta ve ardından bir boşluk ekler" + "Otomatik büyük harf yap" + "Her cümlenin ilk harfini büyük harf yapar" + "Kişisel sözlük" + "Ana sözlük" + "Düzeltme önerilerini göster" + "Yazarken, önerilen kelimeleri görüntüle" + "Rahatsız edici kelimeleri engelle" + "Rahatsız edici olabilecek kelimeleri önermez" + "Otomatik düzelt" + Boşluk tuşu ve noktalama işaretleri yanlış yazılan kelimeleri otomatik düzeltir + "Kapalı" + "Ölçülü" + "Geniş ölçekte" + "Çok geniş ölçekte" + "Sonraki kelime önerileri" + "Öneride bulunurken önceki kelimeyi kullanır" + "Hareketle yazmayı etkinleştir" + "Kelime girmek için parmağınızı harflerin üzerinde kaydırın" + "Hareket izini göster" + "Dinamik kayan önizleme" + "Kelime öbeği hareketi" + "Hareketle girişte boşlukları, boşluk tuşuna kaydırarak girin" + "İngilizce (BK)" + "İngilizce (ABD)" + "İspanyolca (ABD)" + "Hingilizce" + "Sırpça (Latin alfabesi)" + %s (Geleneksel) + %s (Kompakt) + "Dil yok" + "Emoji" + "Ekle" + "Kaldır" + "Kaydet" + "Dil" + "Düzen" + "Tuşa basma titreşim süresi" + "Tuşa basma ses seviyesi" + "Tuşa uzun basma gecikmesi" + "Fiziksel klavye için emoji" + "Fiziksel Alt tuşu, emoji paletini gösterir" + "Varsayılan" + %s uygulamasına hoş geldiniz + "Hareketle Yazmayı içerir" + "Başlayın" + %s uygulamasını kurma + %s uygulamasını etkinleştirin + Lütfen \"%s\" uygulamasını Dil ve giriş ayarlarınızda işaretleyin. Bu, uygulamaya cihazınızda çalışma yetkisi verecektir. + "Ayarlarda etkinleştir" + %s uygulamasına geçin + Sonra, \"%s\" uygulamasını etkin metin giriş yönteminiz olarak seçin. + "Giriş yöntemini değiştir" + Tebrikler, artık hazırsın! + Artık %s ile tüm favori uygulamalarınızda yazabilirsiniz. + "Tamamlandı" + "Uygulama simgesini göster" + "Uygulama simgesini başlatıcıda gösterir" + "Ek sözlükler" + "Sözlük mevcut" + "Ayarlar" + "Sil" + Sürüm %1$s + "Kısayol:" + "Dil:" + Bir kelime yaz + "İsteğe bağlı kısayol" + "Kelimeyi düzenle" + "Tüm diller için" + "Diğer diller…" + Pano geçmişi + Düzeltmeler + Deneysel + Çeşitli + Sınır yok + Gizli modu zorla + Yeni sözcüklerin öğrenilmesini devre dışı bırak + Sayı satırı + Boşluk tuşuna uzun süre basmak, giriş yöntemi seçim menüsünü gösterecektir + LeanType yazım denetleyicisi ayarları + Klavye yükseklik ölçeği + Kadırarak silme + Tuş kenarlıkları + Otomatik gündüz/gece modu + LeanType yazım denetleyicisi + %sdak. + Öneriler + Emoji tuşu + Pano geçmişini etkinleştir + Devre dışı bırakılırsa, pano tuşu varsa pano içeriğini yapıştıracaktır + Geçmiş saklama süresi + Her zaman sayı satırını göster + Diğer tuşlar + Tuş ipuçlarını göster + Uzun basma ipuçlarını göster + Boşluk tuşuyla giriş yöntemini değiştir + %s (Akkhor) + Bir kerede metnin daha büyük bölümlerini seçmek ve silmek için silme tuşundan hızlıca kaydırın + Görünüm sistem ayarlarını takip edecektir + LeanType ayarları + Giriş + Ek tuşlar + Noktalama işaretlerinden sonra otomatik boşluk + Yeni bir sözcük yazarken noktalama işaretlerinden sonra otomatik olarak boşluk ekle + Otomatik düzeltme güveni + "Giriş yöntemini seçin" + "Geri al" + "Yeniden yap" + Önerileri geliştirmek için kişilerden ve yazdığın verilerden bilgi edin + "Git" + "İleri" + "Geri" + "Bitti" + "Gönder" + "Arama" + "Dur" + "Bekle" + Uyarı: Bu ayarı devre dışı bırakmak öğrenilmiş verileri temizler + Kişisel sözlüğe kelime ekle + Her zaman önerileri göster + İkisini de değiştir + Yedekle + Yedekle ve geri yükle + Yedekleme hatası: %s + Yedeklemeyi yüklerken hata: %s + Dili değiştir + Geri yükle + Çok dilli yazma + Kitaplığı yükle + Kitaplığı sil + Diller ve Düzenler + Daha fazla otomatik düzeltme + Öğrenilmiş kelimeleri depolamak için cihaz kişisel sözlüğünü kullan + Sayı satırını yerelleştir + Gölgeli + İçerik kopyalandı + Bilinmeyen kitaplık dosyası. Bunun güvenilir bir kaynaktan geldiğine ve \'%s\' için olduğuna emin misin? + Kayan önizleme + Kaydırırken önerilen kelimeyi gör + Hızlı yazma bekleme süresi + Bir hareket sırasında önizlemeyi taşı + Hareket izi ömrü + Bağlantı vb. tek kelime olarak tespit etmeye çalış + Sayı satırı + Dil (öncelikli) + Düzen + Semboller + Araç çubuğu tuşlarını seç + Pano + Panoyu temizle + İşlevsel tuşlar + İşlevsel tuşlar (Semboller) + İşlevsel tuşlar (Daha fazla sembol) + Semboller (Arapça) + Daha fazla sembol + Telefon + Telefon sembolleri + Sayılar + Sayısal tuş takımı + Arka plan görseli ayarla + Sayısal tuş takımı (yatay) + Bir daha gösterme + %s (deneysel) + Siyah + Giriş başlarsa veya metin seçilirse araç çubuğunu göster + Araç çubuğunu otomatik gizle + Öneriler mevcut olduğunda araç çubuğunu gizle + Araç çubuğunu otomatik göster + Para birimlerini özelleştir + Yalnızca ana renkleri göster + Tüm renkleri göster + Ana ve en fazla 6 ikincil para birimi sembolünü boşlukla ayırarak ayarla + Anahtar boşluklarını daralt + Sayısal tuş takımı için sembol tuşuna uzun bas + Alt dolgu ölçeği + burada + Dil değiştirme tuşu davranışı + Yaygın varyantları ekle + Mevcut tüm varyantları ekle + %s düzeni silinsin mi? + Düzen hatası: %s + Gece + Ham düzeni düzenlemek için dokun + Görsel gündüz veya gece modu için ayarlansın mı? + Gündüz + Kullanıcı tarafından eklenen \"%s\" sözlüğü kaldırılsın mı? + Holo Beyaz + Renkli gezinme çubuğu + Kullanıcı tanımlı + Boşluk çubuğu arka planı + Boşluk çubuğu metni + Hareketli giriş + Kullanıcı tarafından eklenen \"%1$s\" sözlüğü değiştirilsin mi? +\n +\nMevcut sözlük: +\n %2$s +\n +\nYeni sözlük: +\n%3$s + Bölünmüş mesafe + Giriş alanı tarafından açıkça talep edilmese bile otomatik düzeltme + Her zaman orta öneriyi kullan + Boşluk veya noktalama işaretine basıldığında ortadaki öneri girilecektir + Açılır pencerede aksanlı daha fazla harf göster + Klavye dillerinde tanımlanan varyantları göster + Latin sayıları yerine yerel olanı tercih et + Bu kelime zaten %s kullanıcı sözlüğünde mevcut. Lütfen başka bir tane yaz. + Fark edilmeyebilecek özellikleri göster + cihaz korumalı depolama + Pano geçmişini kapat + Pano araç çubuğu tuşlarını seç + Bir tuşa uzun süre basmak ek işlevleri tetikliyorsa ipuçlarını göster + Özel düzen ekle + Semboller + Dil seç + %s (Genişletilmiş) + Uyumlu formatta bir dosya seç. Formatlarla ilgili bilgi %s mevcuttur. + Dosyayı yükle + Panoya kopyala + Yükle + Dosyaya kaydet + Sözlükler + Klavyeyi yapılandır + Dosyadan sözlük ekle + Sıklık: + Renkler + Çikolata + Orman + Açık Mavi + Dinamik renkler + Mavi Gri + Kahverengi + Menekşe + Vurgu + Gizli özelliklerin açıklaması + ► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevsellik sağlar: <br> \n\t• panoya kopyala &#65515; yapıştır <br> \n\t• sola/sağa hareket et &#65515; kelime sola/sağa <br> \n\t• yukarı/aşağı hareket et &#65515; sayfa yukarı/aşağı <br> \n\t• kelime sola/sağa &#65515; satır başı/sonu <br> \n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> \n\t• kopyala &#65515; kes <br> \n\t• kelime seç &#8596; tümünü seç <br> \n\t• geri al &#8596; yinele <br> <br> \n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, onları öneri şeridine sabitler. <br> <br> \n► Virgül tuşuna uzun basarak Pano Görünümü, Emoji Görünümü, Tek El Modu, Ayarlar veya Dil Değiştir\'e erişebilirsin: <br> \n\t• Emoji Görünümü ve Dil Değiştir, ilgili tuşu etkinleştirdiysen kaybolur; <br> \n\t• Bazı düzenler için bu, Virgül tuşu değil, aynı konumdaki başka bir tuş olabilir (örneğin, Dvorak düzeninde bu tuş \'q\'dur). <br> <br> \n► Gizli mod etkinleştirildiğinde, hiçbir kelime öğrenilmeyecek ve son eklenen emojilere yeni bir emoji eklenmeyecektir. <br> <br> \n► Gizli mod simgesine basarak araç çubuğuna erişebilirsin. <br> <br> \n► Kaydırmalı tuş girişi: Shift tuşundan başka bir tuşa kaydırarak tek bir büyük harf yazabilirsin: <br> \n\t• Bu, ayrıca \'123\' tuşu için semboller klavyesinden tek bir sembol yazmak ve ilgili tuşlar için de çalışır. <br> <br> \n► Shift veya sembol tuşunu basılı tut, bir veya daha fazla tuşa bas ve ardından önceki klavyeye dönmek için Shift veya sembol tuşunu bırak. <br> <br> \n► Öneri şeridindeki bir öneriye uzun basarak daha fazla öneriyi ve bu öneriyi kaldırmak için bir silme düğmesini gösterir. <br> <br> \n► Bir öneriye yukarı kaydırarak daha fazla öneriyi aç ve seçmek için öneri üzerinde bırak. <br> <br> \n► Pano geçmişindeki bir girdiye uzun basarak onu sabitleyebilirsin (sabitlediğin sürece panoda kalır). <br> <br> \n► Pano görünümünde bir girdiyi kaldırmak için sola kaydır (sabitlediğin sürece hariç). <br> <br> \n► Metni seç ve büyük/küçük harflerini değiştirmek için Shift tuşuna bas. <br> <br> \n► Sözlükleri bir dosya gezgini ile açarak ekleyebilirsin: <br> \n\t• Bu yalnızca <i>content-uris</i> ile çalışır, <i>file-uris</i> ile çalışmaz, yani bazı dosya gezginlerinde çalışmayabilir. <br> <br> \n► Kök erişimiyle manuel yedekleme yapan kullanıcılar için: <br> \n\t• Android 7\'den başlayarak, paylaşılan tercih dosyası varsayılan konumda değildir, çünkü uygulama %s kullanmaktadır. Bu, cihaz kilitlenmeden önce, örneğin açılışta, ayarların okunabilmesi için gereklidir; <br> \n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumunda bulunur, ancak bu cihaz ve Android sürümüne bağlı olarak değişebilir. <br> <br> \n<i><b>Hata ayıklama modu / hata ayıklama APK\'sı</b></i> <br> <br> \n► Bir öneriye uzun basarak kaynak sözlüğü göster. <br> <br> \n► Hata ayıklama APK\'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsin, ancak bu yalnızca sözlükleri günlüğe dökmek için sınırlı fayda sağlar. <br> \n\t• Yayın APK\'sı için, <i>Hakkında</i> kısmındaki sürüme birkaç kez dokunman gerekir, ardından Gelişmiş Tercihler içinde hata ayıklama ayarlarını bulabilirsin. <br> \n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puan ve kaynak sözlük gösteren küçük sayılar olacaktır. <br> <br> \n► Bir uygulama çökmesi durumunda, Ayarları açtığında çökme günlüklerini isteyip istemediğin sorulacaktır. <br> <br> \n► Çok dilli yazım kullanırken, boşluk tuşu şu anda kullanılan dili belirlemek için kullanılan bir güven değerini gösterir. <br> <br> \n► Önerilerin üzerinde bazı iç puan ve kaynak sözlük gösteren küçük sayılar olacaktır (devre dışı bırakılabilir). + Dikey boşluk çubuğu kaydırma hareketi + Yok + İmleci taşı + Sayfa başlangıcı + Sayfa sonu + Sağ + Yukarı + Aşağı + Kaitag + Dahili ana sözlük + Sözlük dosyası yüklenirken hata oluştu + Bir kelime ekle + Renkler (gece) + Pembe + Kum + Rengi otomatik olarak seç + Kapat + Ayarları açmak için dile dokun + Hareketle yazma kitaplığını yükle + Hareketle yazmayı etkinleştirmek için yerel bir kitaplık sağla + \'%s\' için kütüphaneye ihtiyacın olacak. Hareketle yazma kullanılırken uyumsuz kitaplıklar çökebilir. +\n +\nUyarı: Harici kodun yüklenmesi güvenlik riski oluşturabilir. Yalnızca güvenilir bir kaynaktan gelen kitaplığı kullan. + Açılır tuş sırasını seç + İpucu kaynağını seç + Emoji + Sözlüğü değiştir + Sürüm + GitHub\'da görüntüle + Öneri şeridi metni + Hakkında + Günlüğü kaydet + Açık kaynak lisansı + GNU Genel Kamu Lisansı v3.0 + Tuş arka planı + Yakın zamanda kopyalanan pano içeriğini öneri olarak göster + Pano içeriğini öner + Ses girişi + Yatay boşluk çubuğu kaydırma hareketi + Sağdan sola klavye alt türü seçildiğinde yönü ters çevir + Değişken araç çubuğu yönü + Dosya okunamıyor + Açık + Yuvarlatılmış + %s (Probhat) + Sol + Sayfa yukarı + Kelime sola + Kelime sağa + Kelime seç + Tek el modu + Tam sol + Tam sağ + Sayfa aşağı + Bu, sabitlenmemiş araç çubuğu tuşları için diğer uzun basma işlemlerini devre dışı bırakacaktır + İşlevsel ipuçlarını göster + Sabitlenmiş araç çubuğu tuşlarını seç + Uzun basıldığında araç çubuğu tuşunu sabitle + %s (Sebeolsik 390) + %s (Sebeolsik Final) + Stil + Koyu + Sonrasında ana klavyeye geç… + Sembol görünümünde diğer tuşlardan sonra enter veya boşluk tuşuna basma + Emoji görünümünde emojiyi seçme + Pano geçmişi girişini seçme + Daha koyu + Yaygın varyantları ekle (varsayılan) + Temel düzende zaten bulunan açılır tuşları gizle + Araç çubuğu + Gereksiz açılır pencereleri kaldır + Sayısal tuş takımını aç kapa + %s (Öğrenci) + Eklemek için bir sözlük seç .dict biçimindeki sözlükler %s indirilebilir. + Hata: Seçilen dosya geçerli bir sözlük dosyası değil + Hata: komut dosyası bu klavyeyle uyumlu değil + Daha fazla renk göster + Bu ayar dahili olarak kullanılan tüm renkleri ortaya çıkarır. Renk listesi herhangi bir zamanda değişebilir. Varsayılan renk rastgeledir ve adlar çevrilmeyecektir. + Klavye arka planı + İşlevsel tuş arka planı + Tuş metni + Tuş ipucu metni + Her zaman anında başla + Mansi + Bağlantı tespiti + Diğer uygulamaların önerileri devre dışı bırakma isteklerini göz ardı et (sorunlara neden olabilir) + Görünüm + Kaydet yada dosyadan yükle. Uyarı: geri yükleme mevcut verilerin üzerine yazacaktır + "Sözlük olmadan yalnızca daha önce girdiğin metin için öneriler alırsın.<br> +\n %1$s sözlüklerini indirebilir veya \"%2$s\" için bir sözlüğün doğrudan %3$s indirilip indirilemeyeceğini kontrol edebilirsin." + Sayı satırı + Simge stili + Boşluk çubuğu özel metni + Emoji alt satırı + Pano alt satırı + Giriș + Sekme + Sil + Boşluk + Geçersiz ad + Sayı satırı (temel) + Emoji görüntüleme boyutu + Araç çubuğunu göster/gizle + Rahatsız etme kipinde titret + Emoji boyutunu yazı tipi boyutuna göre ölçeklendir + İkincil düzenler + Caps lock + Hareketle sözcük yazmadan önce otomatik boşluk ekle + Shift + Uygulama adlarında ara + Öneriler ve düzeltmeler için yüklü uygulamaların adlarını kullan + Araç çubuğu kipi + Sayı satırında ipuçlarını göster + Bölünmüş klavye + Varsayılan emoji cilt tonu + Doğal + Boşluk (sayı düzeni) + Etkin kısayolları otomatik düzeltme ile genişlet + Shift basarken otomatik boşluk ekleme + Yalnızca araç çubuğu tuşları + Yalnızca öneriler + Gizli + Pano ve emoji araç çubuklarını da gizle + Klavye yazı tipi boyutu + Dosyadan özel yazı tipi seç + Emoji sürümünü geçersiz kıl + Zaman damgası anahtarı için biçim + Hareketle sözcük yazdıktan sonra otomatik boşluk ekle + Uzun basmada emoji açıklamasını göster + Bir öneri seçildikten sonra otomatik boşluk ekle + %1$s (%2$s) + Emoji öner + Normal önerilerde emoji sözlüğünü kullanın + Yatay + Web düzenleme alanları için her zaman öneriler gösterme + Web düzenleme alanları (çoğunlukla tarayıcılarda bulunur), her zaman önerileri göster ayarıyla ilgili sorunların çok yaygın bir nedenidir + Kısayolları otomatik düzelt + Sil tuşu otomatik düzeltmeyi geri alır + Noktalama önerileri + Başka öneri bulunamadığında noktalama işaretlerini göster + Yedekleme geri yüklendi + Sözlükleri olan diller + Büyük harf tuşu, bekleyen otomatik boşluğu kaldırır + Açılır pencere tuş sırası ve ipuçları kaynağı + URL\'leri ve e-posta adreslerini yazarken nokta tuşunun açılır pencerelerini üst düzey alan adlarıyla değiştirin + Araç çubuğu tuşları ve öneriler + Yan dolgu ölçeği + Dagbani + Sotho dili + Uyarı: düzen şu anda kullanımda + İşlev tuşları (büyük ekran) + Arka plan resmi ayarla (yatay) + Ayar yapılmazsa, dikey resim kullanılacaktır + Sayısal tuş takımındaki diğer tuşlardan sonra Enter veya boşluk tuşuna basmak + %s içinde renkleri bulabilir ve paylaşabilirsiniz. + %s içinde düzenleri bulabilir ve paylaşabilirsiniz. + tartışma bölümü + Wiki\'ye git + Wiki, herhangi bir GitHub kullanıcısı tarafından geliştirilebilir! + Tek elle modunu sonlandır + Tek elle kullanım modunu yeniden boyutlandır + Ses girişi devre dışı + Çöp kutusu + Klavyeyi gizle + Dil değiştirme kaydırma mesafesi + Araç çubuğu tuş kodlarını özelleştirin + Tüm özelleştirilmiş anahtar kodlarını gerçekten silmek istiyor musunuz? + Anahtar kodu + Uzun basma kodu + Simgeleri özelleştirin + Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak mı istiyorsunuz? + %s\'yi gerçekten silmek istiyor musunuz? + Özel alt tür + Bölünmüş klavyeyi etkinleştir (yatay) + TLD açılır pencere tuşlarını göster + Dargwa (Urakhi) + %s (Baishakhi) + %s (Fonetik) + Tek elle kullanım tarafını değiştir + Sıfır genişlikli bağlantı elemanı + Satır içi emoji araması + Yalnızca sözcüğün önünde iki nokta üst üste varsa emoji öner + Bu özelliğin çalışması için bir emoji sözlüğü gereklidir. %s\'den .dict biçimindeki sözlükler indirilebilir. + İğnelenmiş öğeleri üstte göster + Her uygulama için dili hatırla + Mari (Doğu) + Shift (kaydırılmış) - >Kütüphaneler - >Kaydırarak yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. - >Kaydırarak yazma Kütüphanesi - >Ana Sözlükler - >Emoji Kütüphaneleri - >El Yazısı Girişi Eklentisi - >Sözlük Yükleme Kılavuzu - >Yeni bir sözlük eklemek için:\n1. Diliniz için bir .dict dosyası edinin.\n2. \"Sözlükleri Yönet\" öğesine dokunun.\n3. Artı (+) düğmesini kullanarak dosyayı içe aktarın. - >Etkin - >Yüklü değil - - >Günlüğü kaydet - >Log seçenekleri - >Dosyaya kaydet - >Logu temizle - >Logu paylaş - >Log temizlendi - - >Açık kaynak lisansı - - >GNU General Public License v3.0 - - >Kapat - - >Ayarları açmak için dile dokunun - - >Giriş yöntemini seçin - >Doğrudan geçiş hedefi (IME) - >Özel tuş kodu seçeneği kullanıldığında doğrudan geçilecek giriş yöntemi - >Yok - >Uygulama dili - >Ayarlar ekranı ve klavye arayüzünün dilini değiştirin - >Sistem varsayılanı - - >Görünüm - - >Araç çubuğu - >Yapay Zeka entegrasyonu - >Özel Yapay Zeka tuşları - >Numaralandırılmış araç çubuğu tuşlarını kendi istemlerinizle özelleştirin - - >Gizli özelliklerin açıklaması - - >Gözden kaçabilecek özellikleri göster - - >cihaz korumalı depolama - - >► Sabitlenmiş araç çubuğu tuşlarına uzun basmak ek işlevler sağlar: <br> -\n\t• pano &#65515; yapıştır <br> -\n\t• sola/sağa taşı &#65515; sözcük sola/sağa <br> -\n\t• yukarı/aşağı taşı &#65515; sayfa yukarı/aşağı <br> -\n\t• sözcük sola/sağa &#65515; satır başı/sonu <br> -\n\t• sayfa yukarı/aşağı &#65515; sayfa başı/sonu <br> -\n\t• kopyala &#65515; kes <br> -\n\t• sözcük seç &#8596; tümünü seç <br> -\n\t• geri al &#8596; yinele <br> <br> -\n► Öneri şeridi araç çubuğundaki tuşlara uzun basmak, bunları öneri şeridine sabitler. <br> <br> -\n► Pano Görünümü, Emoji Görünümü, Tek Elle Mod, Ayarlar veya Dil Değiştirme\'ye erişmek için Virgül tuşuna uzun basın: <br> -\n\t• İlgili tuş etkinse Emoji Görünümü ve Dil Değiştirme kaybolur; <br> -\n\t• Bazı düzenlerde bu, Virgül\\\'ün tuşu değil, aynı konumdaki tuştur (ör. Dvorak\\\'ta \\\'q\\\' kullanılır). <br> <br> -\n► Gizli mod etkinleştirildiğinde hiçbir sözcük öğrenilmez ve son kullanılanlara emoji eklenmez. <br> <br> -\n► Araç çubuğuna erişmek için Gizli mod simgesine basın. <br> <br> -\n► Kaydırmalı tuş girişi: Tek bir büyük harf yazmak için Shift tuşundan başka bir tuşa kaydırın: <br> -\n\t• Bu, semboller klavyesinden tek bir sembol yazmak üzere \\\'?123\\\' tuşu ve ilgili tuşlar için de geçerlidir. <br> <br> -\n► Önceki klavyeye dönmek için Shift veya sembol tuşunu basılı tutun, bir ya da daha fazla tuşa basın ve ardından Shift veya sembol tuşunu bırakın. <br> <br> -\n► Daha fazla öneriyi ve bu öneriyi kaldırmak için silme düğmesini göstermek üzere öneri şeridindeki bir öneriye uzun basın. <br> <br> -\n► Daha fazla öneriyi açmak için bir öneriden yukarı kaydırın ve onu seçmek için önerinin üzerinde bırakın. <br> <br> -\n► Pano geçmişindeki bir girişi sabitlemek için ona uzun basın (sabitlemeyi kaldırana kadar panoda tutulur). <br> <br> -\n► Pano\\\'da bir girdiyi kaldırmak için sola kaydırın (sabitlenmiş değilse). <br> <br> -\n► Metni seçin ve sözcükleri BÜYÜK HARF, küçük harf ve Baş Harfleri Büyük arasında değiştirmek için Shift tuşuna basın. <br> <br> -\n► Bir dosya gezgininde açarak sözlük ekleyebilirsiniz: <br> -\n\t• Bu yalnızca <i>content-uris</i> ile çalışır; <i>file-uris</i> ile çalışmaz. Bu nedenle bazı dosya gezginlerinde çalışmayabilir. <br> <br> -\n► Kök erişimiyle elle yedekleme yapan kullanıcılar için: <br> -\n\t• Android 7\'den itibaren uygulama %s kullandığından, paylaşılan tercihler dosyası varsayılan konumda değildir. Bu, ayarların cihaz kilidi açılmadan önce, örneğin açılışta, okunabilmesi için gereklidir; <br> -\n\t• Dosya /data/user_de/0/package_id/shared_prefs/ konumundadır; ancak bu, cihaza ve Android sürümüne bağlı olabilir. <br> <br> -\n<i><b>Hata ayıklama modu / hata ayıklama APK\'sı</b></i> <br> <br> -\n► Kaynak sözlüğü göstermek için bir öneriye uzun basın. <br> <br> -\n► Hata ayıklama APK\'sı kullanırken, Gelişmiş Tercihler içinde Hata Ayıklama Ayarlarını bulabilirsiniz; ancak günlük dosyasına sözlük dökme dışında faydası sınırlıdır. <br> -\n\t• Yayın APK\'sında, <i>Hakkında</i> bölümündeki sürüme birkaç kez dokunmanız gerekir; ardından <i>Gelişmiş Tercihler</i> içindeki hata ayıklama ayarlarını bulabilirsiniz. <br> -\n\t• <i>Öneri bilgilerini göster</i> etkinleştirildiğinde, önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür. <br> <br> -\n► Uygulama çökerse, Ayarlar uygulamasını açtığınızda çökme günlüklerini isteyip istemediğiniz sorulur. <br> <br> -\n► Çok dilli yazma kullanılırken boşluk çubuğunda, geçerli kullanılan dili belirlemek için kullanılan bir güven değeri gösterilir. <br> <br> -\n► Önerilerin üzerinde bazı iç puanları ve kaynak sözlüğü gösteren küçük sayılar görünür (devre dışı bırakılabilir). - >Önerileri iyileştirmek için iletişimlerinizden ve yazdığınız verilerden öğrenin - - >Git - - >İleri - - >Önceki - - >Bitti - - >Gönder - - >Ara - - >Pause - - >Wait - - >Enter - - >Tab - - >Delete - - >Shift - - >Shift (shifted) - - >Caps lock - - >Space (number layout) - - >End one-handed mode - - >Resize one-handed mode - - >Switch one-handed mode side - - >Voice input disabled - - >Show / hide toolbar - - >@string/show_language_switch_key - - >Zero-width joiner - - >Zero-width non-joiner - - >Bin - - >Yatay boşluk tuşu kaydırma hareketi - - >Dikey boşluk tuşu kaydırma hareketi - - >Hiçbiri - - >İmleci taşı - - >Sayısal tuş takımını aç/kapat - - >Klavyeyi gizle - - >Dokunmatik yüzey modu - >Dokunmatik yüzey hassasiyeti - >Otomatik büyük harf kullanımını zorla - >Parolalar hariç tüm metin alanlarında cümle başı büyük harfi zorla - - >Değişken araç çubuğu yönü - - >Sağdan sola yazan bir klavye alt türü seçildiğinde yönü ters çevir - - >Sadece fiziksel klavye bağlıyken araç çubuğunu göster - - >Sistem ayarlarında sanal klavyeyi göstermeyi ayrıca etkinleştirmeniz gerekir - - >Dil değiştirme kaydırma mesafesi - - >Araç çubuğu tuş kodlarını özelleştir - - >Tüm özelleştirilmiş tuş kodları gerçekten silinsin mi? - - >Tuş kodu - - >Uzun basma kodu - - >Araç çubuğunu otomatik göster - >Açıldığında araç çubuğunu otomatik göster - >Metin seçildiğinde araç çubuğunu otomatik göster - - >Klavye açıldığında araç çubuğunu göster - >Metin seçildiğinde araç çubuğunu göster - - >Araç çubuğunu otomatik gizle - - >Öneriler kullanılabilir olduğunda araç çubuğunu gizle - - >Aşağı kaydırarak kapat - - >Klavyeyi gizlemek için araç çubuğunu aşağı kaydırın - - >Sabitlenmiş tuşları otomatik gizle - - >Araç çubuğu genişletildiğinde sabitlenmiş tuşları gizle - >Araç çubuğu durumunu hatırla - >Araç çubuğunu oturumlar arasında ve yazarken genişletilmiş ya da daraltılmış halde tutar - - >Dil seçiciyi kapat - - >İçerik kopyalandı - - >Simgeleri özelleştir - - >Tüm özelleştirilmiş simgeleri gerçekten sıfırlamak istiyor musunuz? - - >Gerçekten %s silinsin mi? - - >Geçersiz ad - - >Özel alt tür - - >Yatay - >Çevrimdışı Model - >Yerel LLM\'yi yönet - >Çevrimdışı Yapay Zeka Maksimum Token Sayısı - >Oluşturulan düzeltmenin maksimum uzunluğu - >Özel… - >Özel (%1$d token) - >Sıcaklık - >Rastgeleliği kontrol eder: daha düşük değerler daha odaklı ve öngörülebilir sonuçlar üretir - >Top-P (Çekirdek Örnekleme) - >Kelime çeşitliliğini kontrol eder: daha düşük değerler daha az olası seçenekleri eler - >Top-K - >Seçimleri en olası K token ile sınırlar - >Min-P - >En olası token\'a göreli minimum olasılık eşiği - >Düşünme sürecini göster - >Model üretirse akıl yürütme sürecini ve içsel düşünme token\'larını göster - - - Ultra Fast (12 tokens) - Fast (20 tokens) - Balanced (32 tokens) - Accurate (64 tokens) - Deep (128 tokens) - - - 12 - 20 - 32 - 64 - 128 - - - >Bu uygulama resim yapıştırmayı desteklemiyor - >Emoji geçmişini temizle - >Son kullandığınız emojileri silmek istediğinizden emin misiniz? - >Klavye taşımak için sürükleyin - >Klavye boyutunu değiştirmek için sürükleyin - >Yüzen klavyeyi açık tut - >Girdi tamamlandığında yüzen klavyeyi gizleme - - >Metin düzenleme modunu koru - >Girdi tamamlandığında metin düzenleme modundan çıkma - >Çok kelimeli önerileri devre dışı bırak - >Birden çok birleşik kelimeden oluşan önerileri engelle (Türkçe için önerilir) - - - >Yükselt - >Güncelleme var - >Sözlük Deposu - >Sözlükleri tarayıcınızda doğrudan göz atın veya indirin + Sözlük Kütüphaneleri + Hareketle yazma kütüphanesini, sözlükleri ve emoji kütüphanelerini yönetin. + Hareketle Yazma Kütüphanesi + Ana Sözlükler + Emoji Kütüphaneleri + El Yazısı Giriş Eklentisi + Sözlük Yükleme Kılavuzu + Yeni bir sözlük ekle:\n1. Obtain a .dict file for your language.\n2. Tap \"Manage Dictionaries\".\n3. Use the plus (+) button to import the file. + Aktif + indirilmedi