From dad80ca5d848f85f09e34c616b4828ac5b72b0e5 Mon Sep 17 00:00:00 2001 From: BDhara Date: Mon, 18 Sep 2023 15:38:09 -0300 Subject: [PATCH 1/6] Set target --- src/controls/richText/RichText.tsx | 71 ++++++++++++++++++++++++- src/controls/richText/RichText.types.ts | 2 + src/loc/en-us.ts | 3 ++ src/loc/mystrings.d.ts | 3 ++ 4 files changed, 77 insertions(+), 2 deletions(-) diff --git a/src/controls/richText/RichText.tsx b/src/controls/richText/RichText.tsx index 737bc1df9..b7d337a63 100644 --- a/src/controls/richText/RichText.tsx +++ b/src/controls/richText/RichText.tsx @@ -3,7 +3,7 @@ import * as strings from 'ControlStrings'; import 'react-quill/dist/quill.snow.css'; import RichTextPropertyPane from './RichTextPropertyPane'; import ReactQuill, { Quill as ReactQuillInstance } from 'react-quill'; -import type { Quill } from 'quill'; +import { Quill } from 'quill'; import styles from './RichText.module.scss'; import { IRichTextProps, IRichTextState } from './RichText.types'; import { Guid } from '@microsoft/sp-core-library'; @@ -89,6 +89,15 @@ export class RichText extends React.Component { text: strings.ListNumbered, data: { icon: 'NumberedList' } }]; + private ddLinkTargetOpts = [{ + key: '_self', + id: 'same', + text: strings.SameTab + }, { + key: '_blank', + id: 'new', + text: strings.NewTab + }]; /** * Sets default properties @@ -126,6 +135,7 @@ export class RichText extends React.Component { insertImageUrl: undefined, selectedText: undefined, selectedUrl: undefined, + dropdownLinkTarget: '_self', wrapperTop: 0 }; @@ -209,6 +219,26 @@ export class RichText extends React.Component { } } + // static getDerivedStateFromProps(nextProps: IRichTextProps, nextState: IRichTextState) { + + // if (!isEqual(nextProps.value, nextState.text)) { + // nextProps.value = nextProps.value; + // return { + // text: nextState.text + // } + // } + // return null; + // } + + // public UNSAFE_componentWillReceiveProps(nextProps: IRichTextProps): void { + // if (nextProps.value !== this.state.text) { + // nextProps.value = this.getEditor().root.innerHTML; + // this.setState({ + // text: this.getEditor().root.innerHTML + // }); + // } + // } + /** * Returns a handle to the Quill editor */ @@ -394,6 +424,15 @@ export class RichText extends React.Component { } }} /> + } + selectedKey={this.state.dropdownLinkTarget || '_self'} + options={this.ddLinkTargetOpts} + onChange={this.onChangeLinkTarget} + /> +
{ @@ -513,6 +552,17 @@ export class RichText extends React.Component { 'super']; ReactQuillInstance.register(sizeClass, true); + const CusLink = ReactQuillInstance.import('formats/link'); + class TLink extends CusLink { + static create(value) { + const node = super.create(value); + node.setAttribute('href',value.href); + node.setAttribute('target',value.target); + return node; + } + } + + ReactQuillInstance.register(TLink, true); return (
{ this._wrapperRef = ref; }} className={css(styles.richtext && this.state.editing ? 'ql-active' : null, this.props.className || null) || null}> {renderLabel} @@ -690,6 +740,13 @@ export class RichText extends React.Component { this.applyFormat("align", newAlignValue); } + private onChangeLinkTarget = (_event: React.FormEvent, item?: IDropdownOption, _index?: number): void => { + this.applyFormat("target", item.key); + this.setState({ + dropdownLinkTarget: item.key.toString() + }) + } + private onChangeList = (_event: React.FormEvent, item?: IDropdownOption, _index?: number): void => { // if we're already in list mode, toggle off const key = item.key; @@ -724,6 +781,7 @@ export class RichText extends React.Component { hideDialog: false, insertUrlText: linkText, insertUrl: this.state.selectedUrl, + dropdownLinkTarget: this.state.dropdownLinkTarget, selectedRange: range }); } @@ -790,11 +848,16 @@ export class RichText extends React.Component { if (cursorPosition > -1) { const textToInsert: string = (this.state.insertUrlText !== undefined && this.state.insertUrlText !== "") ? this.state.insertUrlText : this.state.insertUrl; const urlToInsert: string = this.state.insertUrl; + const targetToInsert: string = this.state.dropdownLinkTarget; quill.insertText(cursorPosition, textToInsert); quill.setSelection(cursorPosition, textToInsert.length); - quill.formatText(cursorPosition, textToInsert.length, 'link', urlToInsert); + quill.formatText(cursorPosition, textToInsert.length, 'link', { + href: urlToInsert, + target: targetToInsert, + }); } + this.setState({ hideDialog: true, insertUrl: undefined, @@ -876,10 +939,13 @@ export class RichText extends React.Component { // Get the currently selected url const selectedUrl = formats.link ? formats.link : undefined; + //const selectedTarget = formats.target ? formats.target : "_self"; + this.setState({ selectedText: selectedText, selectedUrl: selectedUrl, + //dropdownLinkTarget: selectedTarget, formats: formats }); @@ -1001,6 +1067,7 @@ export class RichText extends React.Component { if (label) { return ( ); diff --git a/src/controls/richText/RichText.types.ts b/src/controls/richText/RichText.types.ts index bc89355f7..2c6139322 100644 --- a/src/controls/richText/RichText.types.ts +++ b/src/controls/richText/RichText.types.ts @@ -178,4 +178,6 @@ export interface IRichTextState { text: string; wrapperTop: number; + + dropdownLinkTarget: string; } diff --git a/src/loc/en-us.ts b/src/loc/en-us.ts index daeea6c12..cf253e5ca 100644 --- a/src/loc/en-us.ts +++ b/src/loc/en-us.ts @@ -94,6 +94,8 @@ define([], () => { HeaderH3: "Heading 2", HeaderH4: "Heading 3", HeaderBlockQuote: "Pull quote", + SameTab: "Same tab", + NewTab: "New tab", AlignLeft: "Align left", AlignCenter: "Center", AlignRight: "Align right", @@ -115,6 +117,7 @@ define([], () => { InsertImageTitle: "Insert image", AddressFieldLabel: "Address", TextToDisplayLabel: "Text to display", + LinkTarget: "Open link in", SaveButtonLabel: "Save", CancelButtonLabel: "Cancel", RemoveLinkLabel: "Remove link", diff --git a/src/loc/mystrings.d.ts b/src/loc/mystrings.d.ts index c390bd064..1f2b60e8f 100644 --- a/src/loc/mystrings.d.ts +++ b/src/loc/mystrings.d.ts @@ -91,6 +91,8 @@ declare interface IControlStrings { HeaderH3: string; HeaderH4: string; HeaderBlockQuote: string; + SameTab: string; + NewTab: string; AlignLeft: string; AlignCenter: string; AlignRight: string; @@ -112,6 +114,7 @@ declare interface IControlStrings { InsertImageTitle: string; AddressFieldLabel: string; TextToDisplayLabel: string; + LinkTarget: string; SaveButtonLabel: string; CancelButtonLabel: string; RemoveLinkLabel: string; From 73f83b8ee0942ff462182131db66b282dcc1ba54 Mon Sep 17 00:00:00 2001 From: BDhara Date: Mon, 2 Oct 2023 12:52:54 -0300 Subject: [PATCH 2/6] Prefilled dropdown on text selection --- src/controls/richText/RichText.tsx | 43 +++++++++++++----------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/src/controls/richText/RichText.tsx b/src/controls/richText/RichText.tsx index b7d337a63..8431817f3 100644 --- a/src/controls/richText/RichText.tsx +++ b/src/controls/richText/RichText.tsx @@ -219,26 +219,6 @@ export class RichText extends React.Component { } } - // static getDerivedStateFromProps(nextProps: IRichTextProps, nextState: IRichTextState) { - - // if (!isEqual(nextProps.value, nextState.text)) { - // nextProps.value = nextProps.value; - // return { - // text: nextState.text - // } - // } - // return null; - // } - - // public UNSAFE_componentWillReceiveProps(nextProps: IRichTextProps): void { - // if (nextProps.value !== this.state.text) { - // nextProps.value = this.getEditor().root.innerHTML; - // this.setState({ - // text: this.getEditor().root.innerHTML - // }); - // } - // } - /** * Returns a handle to the Quill editor */ @@ -556,8 +536,8 @@ export class RichText extends React.Component { class TLink extends CusLink { static create(value) { const node = super.create(value); - node.setAttribute('href',value.href); - node.setAttribute('target',value.target); + node.setAttribute('href', value.href); + node.setAttribute('target', value.target); return node; } } @@ -741,7 +721,6 @@ export class RichText extends React.Component { } private onChangeLinkTarget = (_event: React.FormEvent, item?: IDropdownOption, _index?: number): void => { - this.applyFormat("target", item.key); this.setState({ dropdownLinkTarget: item.key.toString() }) @@ -762,6 +741,7 @@ export class RichText extends React.Component { const range = quill.getSelection(); let linkText = this.state.selectedText; + let dropdownLinkTarget = ''; if (this.state.selectedUrl !== undefined && this.state.selectedText === "") { const { text } = this.state; const urlStartIndex = text.indexOf(this.state.selectedUrl); @@ -775,17 +755,29 @@ export class RichText extends React.Component { const linkStart = editorText.indexOf(linkText); range.index = linkStart; range.length = linkText.length; + + dropdownLinkTarget = this.calculateLinkTargetBasedOnSelectedText(text.substring(urlStartIndex, endTextIndex)); } + + this.setState({ hideDialog: false, insertUrlText: linkText, insertUrl: this.state.selectedUrl, - dropdownLinkTarget: this.state.dropdownLinkTarget, + dropdownLinkTarget: dropdownLinkTarget, selectedRange: range }); } + private calculateLinkTargetBasedOnSelectedText = (selectedText: string): string => { + if (selectedText.includes('_blank')) { + return '_blank'; // Open in a new tab for links containing "example" + } else { + return '_self'; // Open in the same tab for other links + } + } + /** * Hides the insert link dialog */ @@ -861,7 +853,8 @@ export class RichText extends React.Component { this.setState({ hideDialog: true, insertUrl: undefined, - insertUrlText: undefined + insertUrlText: undefined, + dropdownLinkTarget: '_self' }); } From c5d0f330358f5010af9d3292630d3e8926796c8d Mon Sep 17 00:00:00 2001 From: BDhara Date: Mon, 2 Oct 2023 13:40:54 -0300 Subject: [PATCH 3/6] Default set to self, caretdown color update --- src/controls/richText/RichText.module.scss | 13 +++++++++++++ src/controls/richText/RichText.tsx | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/controls/richText/RichText.module.scss b/src/controls/richText/RichText.module.scss index d61326a42..885b189a7 100644 --- a/src/controls/richText/RichText.module.scss +++ b/src/controls/richText/RichText.module.scss @@ -97,6 +97,19 @@ color: "[theme:neutralLighterAlt, default:#{$ms-color-neutralLighterAlt}]"; } +.toolbarSubmenuCaretLT { + display: inline-block; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-weight: normal; + font-size: 8px; + speak: none; + top: 50%; + color: "[theme:neutralTertiaryAlt, default:#{$ms-color-neutralTertiaryAlt}]"; +} + + .toolbarSubmenuDisplayButton { width: 100%; } diff --git a/src/controls/richText/RichText.tsx b/src/controls/richText/RichText.tsx index 8431817f3..e17debff5 100644 --- a/src/controls/richText/RichText.tsx +++ b/src/controls/richText/RichText.tsx @@ -407,7 +407,7 @@ export class RichText extends React.Component { } + onRenderCaretDown={() => } selectedKey={this.state.dropdownLinkTarget || '_self'} options={this.ddLinkTargetOpts} onChange={this.onChangeLinkTarget} @@ -741,7 +741,7 @@ export class RichText extends React.Component { const range = quill.getSelection(); let linkText = this.state.selectedText; - let dropdownLinkTarget = ''; + let dropdownLinkTarget = '_self'; if (this.state.selectedUrl !== undefined && this.state.selectedText === "") { const { text } = this.state; const urlStartIndex = text.indexOf(this.state.selectedUrl); From 0ffd2fbefd89cb3491095cb90b60b8ec5edd6bcb Mon Sep 17 00:00:00 2001 From: BDhara Date: Mon, 2 Oct 2023 15:25:44 -0300 Subject: [PATCH 4/6] Added comments --- src/controls/richText/RichText.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/controls/richText/RichText.tsx b/src/controls/richText/RichText.tsx index e17debff5..93571885a 100644 --- a/src/controls/richText/RichText.tsx +++ b/src/controls/richText/RichText.tsx @@ -770,9 +770,12 @@ export class RichText extends React.Component { }); } + /** + * Get target value on text selection + */ private calculateLinkTargetBasedOnSelectedText = (selectedText: string): string => { if (selectedText.includes('_blank')) { - return '_blank'; // Open in a new tab for links containing "example" + return '_blank'; // Open in a new tab for links containing "_blank" } else { return '_self'; // Open in the same tab for other links } @@ -931,9 +934,7 @@ export class RichText extends React.Component { const formats = quill.getFormat(range); // Get the currently selected url - const selectedUrl = formats.link ? formats.link : undefined; - //const selectedTarget = formats.target ? formats.target : "_self"; - + const selectedUrl = formats.link ? formats.link : undefined; this.setState({ selectedText: selectedText, From a5709ae42e4e8bf0d879e905f601704d6bc431d7 Mon Sep 17 00:00:00 2001 From: BDhara Date: Mon, 2 Oct 2023 15:29:16 -0300 Subject: [PATCH 5/6] Removed extra comments --- src/controls/richText/RichText.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/controls/richText/RichText.tsx b/src/controls/richText/RichText.tsx index 93571885a..9148ad028 100644 --- a/src/controls/richText/RichText.tsx +++ b/src/controls/richText/RichText.tsx @@ -934,12 +934,11 @@ export class RichText extends React.Component { const formats = quill.getFormat(range); // Get the currently selected url - const selectedUrl = formats.link ? formats.link : undefined; + const selectedUrl = formats.link ? formats.link : undefined; this.setState({ selectedText: selectedText, selectedUrl: selectedUrl, - //dropdownLinkTarget: selectedTarget, formats: formats }); From a22e6931428c17a7fbaf0b30f45aecbfa17b5824 Mon Sep 17 00:00:00 2001 From: BDhara Date: Mon, 2 Oct 2023 16:31:54 -0300 Subject: [PATCH 6/6] Handle localization --- src/loc/bg-bg.ts | 2 ++ src/loc/ca-es.ts | 2 ++ src/loc/da-dk.ts | 2 ++ src/loc/de-de.ts | 2 ++ src/loc/el-gr.ts | 2 ++ src/loc/es-es.ts | 2 ++ src/loc/et-ee.ts | 2 ++ src/loc/eu-es.ts | 2 ++ src/loc/fi-fi.ts | 2 ++ src/loc/fr-ca.ts | 2 ++ src/loc/fr-fr.ts | 2 ++ src/loc/it-it.ts | 2 ++ src/loc/ja-jp.ts | 2 ++ src/loc/lt-lt.ts | 2 ++ src/loc/lv-lv.ts | 2 ++ src/loc/nb-no.ts | 2 ++ src/loc/nl-nl.ts | 2 ++ src/loc/pl-pl.ts | 2 ++ src/loc/pt-br.ts | 2 ++ src/loc/pt-pt.ts | 2 ++ src/loc/ro-ro.ts | 2 ++ src/loc/ru-ru.ts | 2 ++ src/loc/sk-sk.ts | 2 ++ src/loc/sr-latn-rs.ts | 2 ++ src/loc/sv-se.ts | 2 ++ src/loc/tr-tr.ts | 2 ++ src/loc/vi-vn.ts | 2 ++ src/loc/zh-cn.ts | 2 ++ src/loc/zh-tw.ts | 2 ++ 29 files changed, 58 insertions(+) diff --git a/src/loc/bg-bg.ts b/src/loc/bg-bg.ts index 657246024..90dce751e 100644 --- a/src/loc/bg-bg.ts +++ b/src/loc/bg-bg.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Функция 2", "HeaderH4": "Функция 3", "HeaderBlockQuote": "Изтегли цитат", + "SameTab": "Същият раздел", + "NewTab": "Нов прозорец", "AlignLeft": "Подравни отляво", "AlignCenter": "Център", "AlignRight": "Подравни отдясно", diff --git a/src/loc/ca-es.ts b/src/loc/ca-es.ts index 556f0370f..bb73bb21a 100644 --- a/src/loc/ca-es.ts +++ b/src/loc/ca-es.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Encapçalament 2", "HeaderH4": "Encapçalament 3", "HeaderBlockQuote": "Cita introductòria", + "SameTab": "La mateixa pestanya", + "NewTab": "Nova pestanya", "AlignLeft": "Alinea a l'esquerra", "AlignCenter": "Centre", "AlignRight": "Alinea a la dreta", diff --git a/src/loc/da-dk.ts b/src/loc/da-dk.ts index 85077d2e1..06459d7db 100644 --- a/src/loc/da-dk.ts +++ b/src/loc/da-dk.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Overskrift 2", "HeaderH4": "Overskrift 3", "HeaderBlockQuote": "Citat", + "SameTab": "Samme fane", + "NewTab": "Ny fane", "AlignLeft": "Venstrejusteret", "AlignCenter": "Midte", "AlignRight": "Juster til højre", diff --git a/src/loc/de-de.ts b/src/loc/de-de.ts index e4cadb1ed..035da7380 100644 --- a/src/loc/de-de.ts +++ b/src/loc/de-de.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Überschrift 2", "HeaderH4": "Überschrift 3", "HeaderBlockQuote": "Textzitat", + "SameTab": "Gleiche Registerkarte", + "NewTab": "Neue Registerkarte", "AlignLeft": "Linksbündig", "AlignCenter": "Zentrieren", "AlignRight": "Rechtsbündig", diff --git a/src/loc/el-gr.ts b/src/loc/el-gr.ts index 5768b6d9a..9d72765a7 100644 --- a/src/loc/el-gr.ts +++ b/src/loc/el-gr.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Τομέας 2", "HeaderH4": "Τομέας 3", "HeaderBlockQuote": "Ελκυστική φράση", + "SameTab": "Ίδια καρτέλα", + "NewTab": "Νέα καρτέλα", "AlignLeft": "Στοίχιση αριστερά", "AlignCenter": "Κέντρο", "AlignRight": "Στοίχιση δεξιά", diff --git a/src/loc/es-es.ts b/src/loc/es-es.ts index 202970148..ad7489af8 100644 --- a/src/loc/es-es.ts +++ b/src/loc/es-es.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Rumbo 2", "HeaderH4": "Rumbo 3", "HeaderBlockQuote": "Presupuesto de extracción", + "SameTab": "Misma pestaña", + "NewTab": "Nueva pestaña", "AlignLeft": "Alinear a la izquierda", "AlignCenter": "Centro", "AlignRight": "Alinear a la derecha", diff --git a/src/loc/et-ee.ts b/src/loc/et-ee.ts index 050d7fa9e..f810c3af0 100644 --- a/src/loc/et-ee.ts +++ b/src/loc/et-ee.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "2. rubriik", "HeaderH4": "3. rubriik", "HeaderBlockQuote": "Tsitaat", + "SameTab": "Sama vahekaart", + "NewTab": "Uuel kaardil", "AlignLeft": "Joonda vasakule", "AlignCenter": "Center", "AlignRight": "Joonda paremale", diff --git a/src/loc/eu-es.ts b/src/loc/eu-es.ts index fc6b030c8..f4aec386f 100644 --- a/src/loc/eu-es.ts +++ b/src/loc/eu-es.ts @@ -87,6 +87,8 @@ define([], () => { HeaderH3: "Heading 2", HeaderH4: "Heading 3", HeaderBlockQuote: "Pull quote", + SameTab: "Fitxa bera", + NewTab: "Fitxa berria", AlignLeft: "Align left", AlignCenter: "Center", AlignRight: "Align right", diff --git a/src/loc/fi-fi.ts b/src/loc/fi-fi.ts index daa8b4838..d732e0ce7 100644 --- a/src/loc/fi-fi.ts +++ b/src/loc/fi-fi.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Otsake 2", "HeaderH4": "Otsake 3", "HeaderBlockQuote": "Erotettu lainaus", + "SameTab": "Sama välilehti", + "NewTab": "Uusi välilehti", "AlignLeft": "Tasaa vasemmalle", "AlignCenter": "Keskelle", "AlignRight": "Tasaa oikealle", diff --git a/src/loc/fr-ca.ts b/src/loc/fr-ca.ts index ce6cd7273..452381986 100644 --- a/src/loc/fr-ca.ts +++ b/src/loc/fr-ca.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Titre 2", "HeaderH4": "Titre 3", "HeaderBlockQuote": "Citation", + "SameTab": "Même onglet", + "NewTab": "Nouvel onglet", "AlignLeft": "Aligner à gauche", "AlignCenter": "Centrer", "AlignRight": "Aligner à droite", diff --git a/src/loc/fr-fr.ts b/src/loc/fr-fr.ts index 96b761670..5ddfaffd5 100644 --- a/src/loc/fr-fr.ts +++ b/src/loc/fr-fr.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Titre 2", "HeaderH4": "Titre 3", "HeaderBlockQuote": "Citation", + "SameTab": "Même onglet", + "NewTab": "Nouvel onglet", "AlignLeft": "Aligner à gauche", "AlignCenter": "Centrer", "AlignRight": "Aligner à droite", diff --git a/src/loc/it-it.ts b/src/loc/it-it.ts index 17e8e53a5..64ea369ff 100644 --- a/src/loc/it-it.ts +++ b/src/loc/it-it.ts @@ -81,6 +81,8 @@ define([], () => { "HeaderH3": "Titolo 2", "HeaderH4": "Titolo 3", "HeaderBlockQuote": "Quotazione pull", + "SameTab": "Stessa scheda", + "NewTab": "Nuova scheda", "AlignLeft": "Allinea a sinistra", "AlignCenter": "Centro", "AlignRight": "Allinea a destra", diff --git a/src/loc/ja-jp.ts b/src/loc/ja-jp.ts index c3f91d841..0e144d772 100644 --- a/src/loc/ja-jp.ts +++ b/src/loc/ja-jp.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "見出し 2", "HeaderH4": "見出し 3", "HeaderBlockQuote": "引用のプル", + "SameTab": "同じタブ", + "NewTab": "新しいタブ", "AlignLeft": "左揃え", "AlignCenter": "中央揃え", "AlignRight": "右揃え", diff --git a/src/loc/lt-lt.ts b/src/loc/lt-lt.ts index 30dd26c20..9cd0b746a 100644 --- a/src/loc/lt-lt.ts +++ b/src/loc/lt-lt.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "2 antraštė", "HeaderH4": "3 antraštė", "HeaderBlockQuote": "Dėmesį atkreipianti citata", + "SameTab": "同じタブ", + "NewTab": "新しいタブ", "AlignLeft": "Lygiuoti kairėje", "AlignCenter": "Centre", "AlignRight": "Lygiuoti dešinėje", diff --git a/src/loc/lv-lv.ts b/src/loc/lv-lv.ts index 99f814d7a..3fb7b082c 100644 --- a/src/loc/lv-lv.ts +++ b/src/loc/lv-lv.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "2. izdevumu kategorija", "HeaderH4": "3. izdevumu kategorija", "HeaderBlockQuote": "Izvilkuma citāts", + "SameTab": "Tā pati cilne", + "NewTab": "Jauna cilne", "AlignLeft": "Līdzināt pa kreisi", "AlignCenter": "Centrs", "AlignRight": "Līdzināt pa labi", diff --git a/src/loc/nb-no.ts b/src/loc/nb-no.ts index 87fcb47a3..fb5da9f86 100644 --- a/src/loc/nb-no.ts +++ b/src/loc/nb-no.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Overskrift 2", "HeaderH4": "Overskrift 3", "HeaderBlockQuote": "Sitat", + "SameTab": "Samme fane", + "NewTab": "Ny fane", "AlignLeft": "Juster venstre", "AlignCenter": "Midtstill", "AlignRight": "Juster høyre", diff --git a/src/loc/nl-nl.ts b/src/loc/nl-nl.ts index d45a67361..12772c644 100644 --- a/src/loc/nl-nl.ts +++ b/src/loc/nl-nl.ts @@ -81,6 +81,8 @@ define([], () => { "HeaderH3": "Rubriek 2", "HeaderH4": "Rubriek 3", "HeaderBlockQuote": "Blikvangercitaat", + "SameTab": "Hetzelfde tabblad", + "NewTab": "Nieuw tabblad", "AlignLeft": "Links uitlijnen", "AlignCenter": "Middelpunt", "AlignRight": "Rechts uitlijnen", diff --git a/src/loc/pl-pl.ts b/src/loc/pl-pl.ts index 1b9e49f79..7f6fc2705 100644 --- a/src/loc/pl-pl.ts +++ b/src/loc/pl-pl.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Dział 2", "HeaderH4": "Dział 3", "HeaderBlockQuote": "Wyciągnij ofertę", + "SameTab": "Ta sama zakładka", + "NewTab": "Nowa karta", "AlignLeft": "Wyrównaj do lewej", "AlignCenter": "Centrum", "AlignRight": "Wyrównaj do prawej", diff --git a/src/loc/pt-br.ts b/src/loc/pt-br.ts index d92259aa1..6946f4229 100644 --- a/src/loc/pt-br.ts +++ b/src/loc/pt-br.ts @@ -81,6 +81,8 @@ define([], () => { HeaderH3: "Título 2", HeaderH4: "Título 3", HeaderBlockQuote: "Puxar citação", + SameTab: "Mesma guia", + NewTab: "Nova aba", AlignLeft: "Alinhar à esquerda", AlignCenter: "Centro", AlignRight: "Alinhar à direita", diff --git a/src/loc/pt-pt.ts b/src/loc/pt-pt.ts index f924ce8f7..838d13a9a 100644 --- a/src/loc/pt-pt.ts +++ b/src/loc/pt-pt.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Título 2", "HeaderH4": "Título 3", "HeaderBlockQuote": "Puxar citação", + "SameTab": "Mesma guia", + "NewTab": "Nova aba", "AlignLeft": "Alinhar à esquerda", "AlignCenter": "Centro", "AlignRight": "Alinhar à direita", diff --git a/src/loc/ro-ro.ts b/src/loc/ro-ro.ts index 9ff7cbb43..60e2abef6 100644 --- a/src/loc/ro-ro.ts +++ b/src/loc/ro-ro.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Titlu 2", "HeaderH4": "Rubrica 3", "HeaderBlockQuote": "Trage citat", + "SameTab": "Aceeași filă", + "NewTab": "Filă nouă", "AlignLeft": "Aliniere la stânga", "AlignCenter": "Centrul", "AlignRight": "Aliniere la dreapta", diff --git a/src/loc/ru-ru.ts b/src/loc/ru-ru.ts index 3bf9a69c7..986b0db5c 100644 --- a/src/loc/ru-ru.ts +++ b/src/loc/ru-ru.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Заголовок 2", "HeaderH4": "Заголовок 3", "HeaderBlockQuote": "Цитата", + "SameTab": "Та же вкладка", + "NewTab": "Новая вкладка", "AlignLeft": "Выравнять слева", "AlignCenter": "Выравнять по центру", "AlignRight": "Выравнять справа", diff --git a/src/loc/sk-sk.ts b/src/loc/sk-sk.ts index 7d63fad4c..309b6df08 100644 --- a/src/loc/sk-sk.ts +++ b/src/loc/sk-sk.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Nadpis 2", "HeaderH4": "Nadpis 3", "HeaderBlockQuote": "Citácia", + "SameTab": "Rovnaká karta", + "NewTab": "Nová karta", "AlignLeft": "Zarovnať doľava", "AlignCenter": "Zarovnať do stredu", "AlignRight": "Zarovnať doprava", diff --git a/src/loc/sr-latn-rs.ts b/src/loc/sr-latn-rs.ts index 5c08bc58c..451f68375 100644 --- a/src/loc/sr-latn-rs.ts +++ b/src/loc/sr-latn-rs.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Naslov 2", "HeaderH4": "Naslov 3", "HeaderBlockQuote": "Povuci ponudu", + "SameTab": "Иста картица", + "NewTab": "Нови прозор", "AlignLeft": "Poravnaj levo", "AlignCenter": "Centar", "AlignRight": "Poravnaj desno", diff --git a/src/loc/sv-se.ts b/src/loc/sv-se.ts index 9b86d84d6..38df94e43 100644 --- a/src/loc/sv-se.ts +++ b/src/loc/sv-se.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Rubrik 2", "HeaderH4": "Rubrik 3", "HeaderBlockQuote": "Citat", + "SameTab": "Samma flik", + "NewTab": "Ny flik", "AlignLeft": "Vänsterjustera", "AlignCenter": "Centrera", "AlignRight": "Högerjustera", diff --git a/src/loc/tr-tr.ts b/src/loc/tr-tr.ts index bf40a39ba..013a02327 100644 --- a/src/loc/tr-tr.ts +++ b/src/loc/tr-tr.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Başlık 2", "HeaderH4": "Başlık 3", "HeaderBlockQuote": "Teklif çekme", + "SameTab": "Aynı sekme", + "NewTab": "Yeni sekme", "AlignLeft": "Sola hizala", "AlignCenter": "Merkezi", "AlignRight": "Sağa hizala", diff --git a/src/loc/vi-vn.ts b/src/loc/vi-vn.ts index 2e0688ca7..fb70c0a88 100644 --- a/src/loc/vi-vn.ts +++ b/src/loc/vi-vn.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "Nhóm 2", "HeaderH4": "Nhóm 3", "HeaderBlockQuote": "Kéo báo giá", + "SameTab": "Cùng một tab", + "NewTab": "Tab mới", "AlignLeft": "Canh lề trái", "AlignCenter": "Trung tâm", "AlignRight": "Canh lề phải", diff --git a/src/loc/zh-cn.ts b/src/loc/zh-cn.ts index 5d8a3c4ad..880e662a3 100644 --- a/src/loc/zh-cn.ts +++ b/src/loc/zh-cn.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "标题 2", "HeaderH4": "标题 3", "HeaderBlockQuote": "拉引号", + "SameTab": "相同选项卡", + "NewTab": "新标签", "AlignLeft": "向左对齐", "AlignCenter": "中心", "AlignRight": "向右对齐", diff --git a/src/loc/zh-tw.ts b/src/loc/zh-tw.ts index 9d10f883c..ab81de28d 100644 --- a/src/loc/zh-tw.ts +++ b/src/loc/zh-tw.ts @@ -83,6 +83,8 @@ define([], () => { "HeaderH3": "標題 2", "HeaderH4": "標題 3", "HeaderBlockQuote": "拉引號", + "SameTab": "相同選項卡", + "NewTab": "新標籤", "AlignLeft": "向左對齊", "AlignCenter": "中心", "AlignRight": "向右對齊",