3 - Finalised adding support for German.
This commit is contained in:
@@ -6,7 +6,7 @@ export const BOOKS: Book[] = [
|
|||||||
{ id: 'lev', name: '3. Mose', aliases: ['Levitikus', 'Lev', '3Mo'] },
|
{ id: 'lev', name: '3. Mose', aliases: ['Levitikus', 'Lev', '3Mo'] },
|
||||||
{ id: 'num', name: '4. Mose', aliases: ['Numeri', 'Num', '4Mo'] },
|
{ id: 'num', name: '4. Mose', aliases: ['Numeri', 'Num', '4Mo'] },
|
||||||
{ id: 'deu', name: '5. Mose', aliases: ['Deuteronomium', 'Dtn', '5Mo'] },
|
{ id: 'deu', name: '5. Mose', aliases: ['Deuteronomium', 'Dtn', '5Mo'] },
|
||||||
{ id: 'jos', name: 'Josua', aliases: ['Jos', 'Jos'] },
|
{ id: 'jos', name: 'Josua', aliases: ['Jos'] },
|
||||||
{ id: 'jdg', name: 'Richter', aliases: ['Ri', 'Richt'] },
|
{ id: 'jdg', name: 'Richter', aliases: ['Ri', 'Richt'] },
|
||||||
{ id: 'rut', name: 'Rut', aliases: ['Rut', 'Ru'] },
|
{ id: 'rut', name: 'Rut', aliases: ['Rut', 'Ru'] },
|
||||||
{ id: '1sa', name: '1. Samuel', aliases: ['1Sam', '1Sa'] },
|
{ id: '1sa', name: '1. Samuel', aliases: ['1Sam', '1Sa'] },
|
||||||
@@ -15,9 +15,9 @@ export const BOOKS: Book[] = [
|
|||||||
{ id: '2ki', name: '2. Könige', aliases: ['2Kön', '2Kö'] },
|
{ id: '2ki', name: '2. Könige', aliases: ['2Kön', '2Kö'] },
|
||||||
{ id: '1ch', name: '1. Chronik', aliases: ['1Chr', '1Ch'] },
|
{ id: '1ch', name: '1. Chronik', aliases: ['1Chr', '1Ch'] },
|
||||||
{ id: '2ch', name: '2. Chronik', aliases: ['2Chr', '2Ch'] },
|
{ id: '2ch', name: '2. Chronik', aliases: ['2Chr', '2Ch'] },
|
||||||
{ id: 'ezr', name: 'Esra', aliases: ['Esr', 'Esr'] },
|
{ id: 'ezr', name: 'Esra', aliases: ['Esr'] },
|
||||||
{ id: 'neh', name: 'Nehemia', aliases: ['Neh', 'Neh'] },
|
{ id: 'neh', name: 'Nehemia', aliases: ['Neh'] },
|
||||||
{ id: 'est', name: 'Ester', aliases: ['Esther', 'Est', 'Est'] },
|
{ id: 'est', name: 'Ester', aliases: ['Esther', 'Est'] },
|
||||||
{ id: 'job', name: 'Ijob', aliases: ['Hiob', 'Ijob', 'Hi'] },
|
{ id: 'job', name: 'Ijob', aliases: ['Hiob', 'Ijob', 'Hi'] },
|
||||||
{ id: 'psa', name: 'Psalmen', aliases: ['Psalter', 'Ps'] },
|
{ id: 'psa', name: 'Psalmen', aliases: ['Psalter', 'Ps'] },
|
||||||
{ id: 'pro', name: 'Sprüche', aliases: ['Sprüche Salomos', 'Spr'] },
|
{ id: 'pro', name: 'Sprüche', aliases: ['Sprüche Salomos', 'Spr'] },
|
||||||
@@ -28,7 +28,7 @@ export const BOOKS: Book[] = [
|
|||||||
{ id: 'lam', name: 'Klagelieder', aliases: ['Threni', 'Klgl', 'Kla'] },
|
{ id: 'lam', name: 'Klagelieder', aliases: ['Threni', 'Klgl', 'Kla'] },
|
||||||
{ id: 'ezk', name: 'Ezechiel', aliases: ['Hesekiel', 'Ez', 'Hes'] },
|
{ id: 'ezk', name: 'Ezechiel', aliases: ['Hesekiel', 'Ez', 'Hes'] },
|
||||||
{ id: 'dan', name: 'Daniel', aliases: ['Dan'] },
|
{ id: 'dan', name: 'Daniel', aliases: ['Dan'] },
|
||||||
{ id: 'hos', name: 'Hosea', aliases: ['Hos', 'Hos'] },
|
{ id: 'hos', name: 'Hosea', aliases: ['Hos'] },
|
||||||
{ id: 'jol', name: 'Joel', aliases: ['Joe'] },
|
{ id: 'jol', name: 'Joel', aliases: ['Joe'] },
|
||||||
{ id: 'amo', name: 'Amos', aliases: ['Am', 'Amos'] },
|
{ id: 'amo', name: 'Amos', aliases: ['Am', 'Amos'] },
|
||||||
{ id: 'oba', name: 'Obadja', aliases: ['Ob', 'Oba'] },
|
{ id: 'oba', name: 'Obadja', aliases: ['Ob', 'Oba'] },
|
||||||
@@ -52,8 +52,8 @@ export const BOOKS: Book[] = [
|
|||||||
{ id: 'rom', name: 'Römer', aliases: ['Röm', 'Rö'] },
|
{ id: 'rom', name: 'Römer', aliases: ['Röm', 'Rö'] },
|
||||||
{ id: '1co', name: '1. Korinther', aliases: ['1Kor', '1Ko'] },
|
{ id: '1co', name: '1. Korinther', aliases: ['1Kor', '1Ko'] },
|
||||||
{ id: '2co', name: '2. Korinther', aliases: ['2Kor', '2Ko'] },
|
{ id: '2co', name: '2. Korinther', aliases: ['2Kor', '2Ko'] },
|
||||||
{ id: 'gal', name: 'Galater', aliases: ['Gal', 'Gal'] },
|
{ id: 'gal', name: 'Galater', aliases: ['Gal'] },
|
||||||
{ id: 'eph', name: 'Epheser', aliases: ['Eph', 'Eph'] },
|
{ id: 'eph', name: 'Epheser', aliases: ['Eph'] },
|
||||||
{ id: 'php', name: 'Philipper', aliases: ['Phil'] },
|
{ id: 'php', name: 'Philipper', aliases: ['Phil'] },
|
||||||
{ id: 'col', name: 'Kolosser', aliases: ['Kol'] },
|
{ id: 'col', name: 'Kolosser', aliases: ['Kol'] },
|
||||||
{ id: '1th', name: '1. Thessalonicher', aliases: ['1Thes', '1Th'] },
|
{ id: '1th', name: '1. Thessalonicher', aliases: ['1Thes', '1Th'] },
|
||||||
|
|||||||
@@ -15,10 +15,6 @@ import VersionSuggest from './version-suggest';
|
|||||||
import { SettingsLabels } from './i18n/models';
|
import { SettingsLabels } from './i18n/models';
|
||||||
import { I18N } from './i18n';
|
import { I18N } from './i18n';
|
||||||
|
|
||||||
// STILL TODO:
|
|
||||||
// - Need to sort out books in PassageReference to use I18N.
|
|
||||||
// - Need to sort out smallcaps 'Lord' in German.
|
|
||||||
|
|
||||||
export default class LocalBibleRefSettingTab extends PluginSettingTab {
|
export default class LocalBibleRefSettingTab extends PluginSettingTab {
|
||||||
private readonly hiddenClass = 'local-bible-ref-hidden';
|
private readonly hiddenClass = 'local-bible-ref-hidden';
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { getLanguage } from 'obsidian';
|
||||||
import { I18N } from './i18n';
|
import { I18N } from './i18n';
|
||||||
import { Book } from './i18n/models';
|
import { Book } from './i18n/models';
|
||||||
|
|
||||||
@@ -54,10 +55,11 @@ export default class PassageReference
|
|||||||
|
|
||||||
/** Builds the passage matching regular expression. */
|
/** Builds the passage matching regular expression. */
|
||||||
static get regExp(): RegExp {
|
static get regExp(): RegExp {
|
||||||
|
const books = getBooksByLanguage();
|
||||||
let regExpString = '^\\-\\- ?(';
|
let regExpString = '^\\-\\- ?(';
|
||||||
regExpString += I18N.EN.BOOKS.map(
|
regExpString += books
|
||||||
(b) => `${b.name}|${b.aliases.join('|')}`
|
.map((b) => `${b.name}|${b.aliases.join('|')}`)
|
||||||
).join('|');
|
.join('|');
|
||||||
regExpString +=
|
regExpString +=
|
||||||
') ?(\\d{1,3}(?::\\d{1,3})?' +
|
') ?(\\d{1,3}(?::\\d{1,3})?' +
|
||||||
'(?: ?\\- ?\\d{1,3}(?::\\d{1,3})?)?)' +
|
'(?: ?\\- ?\\d{1,3}(?::\\d{1,3})?)?)' +
|
||||||
@@ -152,8 +154,9 @@ export default class PassageReference
|
|||||||
|
|
||||||
/** Retrieves a book based on its alias. */
|
/** Retrieves a book based on its alias. */
|
||||||
private static getBook(alias: string): Book | undefined {
|
private static getBook(alias: string): Book | undefined {
|
||||||
|
const books = getBooksByLanguage();
|
||||||
alias = alias.toLowerCase();
|
alias = alias.toLowerCase();
|
||||||
return I18N.EN.BOOKS.find((book) => {
|
return books.find((book) => {
|
||||||
const aliases = book.aliases.map((a) => a.toLowerCase());
|
const aliases = book.aliases.map((a) => a.toLowerCase());
|
||||||
if (book.name.toLowerCase() === alias) return book;
|
if (book.name.toLowerCase() === alias) return book;
|
||||||
if (aliases.includes(alias)) return book;
|
if (aliases.includes(alias)) return book;
|
||||||
@@ -207,6 +210,16 @@ export default class PassageReference
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getBooksByLanguage(): Book[] {
|
||||||
|
switch (getLanguage()) {
|
||||||
|
case 'de':
|
||||||
|
return I18N.DE.BOOKS;
|
||||||
|
case 'en':
|
||||||
|
default:
|
||||||
|
return I18N.EN.BOOKS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export enum PassageFormat {
|
export enum PassageFormat {
|
||||||
Manuscript = 'manuscript',
|
Manuscript = 'manuscript',
|
||||||
Paragraph = 'paragraph',
|
Paragraph = 'paragraph',
|
||||||
|
|||||||
@@ -17,8 +17,9 @@ import LocalBibleRefSettings, { QuoteReferencePosition } from './settings';
|
|||||||
import { I18N } from './i18n';
|
import { I18N } from './i18n';
|
||||||
|
|
||||||
export default class PassageSuggest extends EditorSuggest<PassageSuggestion> {
|
export default class PassageSuggest extends EditorSuggest<PassageSuggestion> {
|
||||||
private settings: LocalBibleRefSettings;
|
private readonly settings: LocalBibleRefSettings;
|
||||||
private settingsNotConfiguredText = '';
|
private readonly settingsNotConfiguredText: string;
|
||||||
|
|
||||||
private noSettingsNotice: Notice;
|
private noSettingsNotice: Notice;
|
||||||
|
|
||||||
constructor(app: App, settings: LocalBibleRefSettings) {
|
constructor(app: App, settings: LocalBibleRefSettings) {
|
||||||
@@ -55,8 +56,8 @@ export default class PassageSuggest extends EditorSuggest<PassageSuggestion> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// min ref length is 6 ('--gen1')
|
// min ref length is 5 ('--ex1')
|
||||||
if (cursor.ch < 6) return null;
|
if (cursor.ch < 5) return null;
|
||||||
|
|
||||||
// must be a passage ref
|
// must be a passage ref
|
||||||
const isPassage = PassageReference.regExp.test(line);
|
const isPassage = PassageReference.regExp.test(line);
|
||||||
@@ -292,10 +293,11 @@ export default class PassageSuggest extends EditorSuggest<PassageSuggestion> {
|
|||||||
/** Generates an excerpt for the suggestion. */
|
/** Generates an excerpt for the suggestion. */
|
||||||
private generateExcerpt(text: string): string {
|
private generateExcerpt(text: string): string {
|
||||||
text = text.split(/<\/sup>/, 2)[1];
|
text = text.split(/<\/sup>/, 2)[1];
|
||||||
text = text.replace(/(?:<sup>\d+<\/sup>|> |- )/g, '');
|
text = text.replace(/<sup>\d+<\/sup>/g, '');
|
||||||
|
text = text.replace(/^(?:> |- )/gm, '');
|
||||||
text = text.replace(
|
text = text.replace(
|
||||||
/<span style='font-variant: small-caps;'>Lord<\/span>/g,
|
/<span(?:\s+\w+=['"][^'"]+['"])*>([^<]+)<\/span>/g,
|
||||||
'Lord'
|
'$1'
|
||||||
);
|
);
|
||||||
text = text.replace(/\n/g, ' ');
|
text = text.replace(/\n/g, ' ');
|
||||||
text = text.replace(/ {2,}/g, ' ');
|
text = text.replace(/ {2,}/g, ' ');
|
||||||
|
|||||||
Reference in New Issue
Block a user