summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/bib2gls
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-09-10 22:10:52 +0000
committerKarl Berry <karl@freefriends.org>2017-09-10 22:10:52 +0000
commit23056da81dd216ac377e040b70c9b78e01c94186 (patch)
tree2ef9d4754fb21d2e16390741fb5d8fcb2045a095 /Master/texmf-dist/scripts/bib2gls
parent17ae18d7db87b958fb98d507710e615be1d4cc17 (diff)
bib2gls (10sep17)
git-svn-id: svn://tug.org/texlive/trunk@45266 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/bib2gls')
-rwxr-xr-xMaster/texmf-dist/scripts/bib2gls/bib2gls.jarbin0 -> 112916 bytes
-rwxr-xr-xMaster/texmf-dist/scripts/bib2gls/bib2gls.sh12
-rwxr-xr-xMaster/texmf-dist/scripts/bib2gls/convertgls2bib.jarbin0 -> 21545 bytes
-rwxr-xr-xMaster/texmf-dist/scripts/bib2gls/convertgls2bib.sh12
-rw-r--r--Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml373
-rwxr-xr-xMaster/texmf-dist/scripts/bib2gls/texparserlib.jarbin0 -> 694875 bytes
6 files changed, 397 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/bib2gls/bib2gls.jar b/Master/texmf-dist/scripts/bib2gls/bib2gls.jar
new file mode 100755
index 00000000000..5e4610756f9
--- /dev/null
+++ b/Master/texmf-dist/scripts/bib2gls/bib2gls.jar
Binary files differ
diff --git a/Master/texmf-dist/scripts/bib2gls/bib2gls.sh b/Master/texmf-dist/scripts/bib2gls/bib2gls.sh
new file mode 100755
index 00000000000..5f9d7f71e60
--- /dev/null
+++ b/Master/texmf-dist/scripts/bib2gls/bib2gls.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+kernel=`uname -s`
+if test "${kernel#*CYGWIN}" != "$kernel"
+then
+ jarpath=`cygpath -w $(kpsewhich --progname=bib2gls --format=texmfscripts bib2gls.jar)`
+else
+ jarpath=`kpsewhich --progname=bib2gls --format=texmfscripts bib2gls.jar`
+fi
+
+java -Djava.locale.providers=CLDR,JRE -jar "$jarpath" "$@"
+
diff --git a/Master/texmf-dist/scripts/bib2gls/convertgls2bib.jar b/Master/texmf-dist/scripts/bib2gls/convertgls2bib.jar
new file mode 100755
index 00000000000..1ccf50f5771
--- /dev/null
+++ b/Master/texmf-dist/scripts/bib2gls/convertgls2bib.jar
Binary files differ
diff --git a/Master/texmf-dist/scripts/bib2gls/convertgls2bib.sh b/Master/texmf-dist/scripts/bib2gls/convertgls2bib.sh
new file mode 100755
index 00000000000..3e7370b0ca7
--- /dev/null
+++ b/Master/texmf-dist/scripts/bib2gls/convertgls2bib.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+kernel=`uname -s`
+if test "${kernel#*CYGWIN}" != "$kernel"
+then
+ jarpath=`cygpath -w $(kpsewhich --progname=convertgls2bib --format=texmfscripts convertgls2bib.jar)`
+else
+ jarpath=`kpsewhich --progname=convertgls2bib --format=texmfscripts convertgls2bib.jar`
+fi
+
+java -jar "$jarpath" "$@"
+
diff --git a/Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml b/Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml
new file mode 100644
index 00000000000..c48375fee45
--- /dev/null
+++ b/Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+<comment>English language file for bib2gls</comment>
+
+<entry key="about.version">{0} version {1} ({2})</entry>
+<entry key="about.license">License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.</entry>
+
+<entry key="syntax.usage">Usage: {0} [&lt;option&gt;]+ &lt;aux file&gt;</entry>
+<entry key="syntax.info">Helper application for the glossaries-extra package.
+See the manual for further details.</entry>
+<entry key="syntax.use.help">(Use --help or -h for help.)</entry>
+<entry key="syntax.options">Options:</entry>
+<entry key="syntax.version">{0} (or {1}) Display version and exit.</entry>
+<entry key="syntax.help">{0} (or {1}) Display this help message and exit.</entry>
+<entry key="syntax.debug">{0} [&lt;n&gt;] Switch on debug mode (optionally with the
+ given level).</entry>
+<entry key="syntax.nodebug">{0} Switch off debug mode. (Default.)</entry>
+<entry key="syntax.nodebug">{0} Switch off debug mode. (Default.)
+ Synonym: {1}</entry>
+<entry key="syntax.verbose">{0} Switch on verbose mode.</entry>
+<entry key="syntax.noverbose">{0} Switch off verbose mode. (Default.)
+ Some messages are displayed.
+ Synonym: {1}</entry>
+<entry key="syntax.silent">{0} Only display error messages.</entry>
+<entry key="syntax.locale">{0} &lt;lang&gt; (or {1} &lt;lang&gt;)
+ Use language resource file for &lt;lang&gt;.</entry>
+<entry key="syntax.log">{0} &lt;file&gt; (or {1} &lt;file&gt;)
+ Set transcript file name.</entry>
+<entry key="syntax.dir">{0} &lt;directory&gt; (or {1} &lt;directory&gt;)
+ Files relative to &lt;directory&gt;.
+ (This doesn''t change the current working
+ directory.)</entry>
+<entry key="syntax.interpret">{0} Switch on interpret mode (default).</entry>
+<entry key="syntax.no.interpret">{0} Switch off interpret mode.</entry>
+
+<entry key="syntax.mfirstuc">{0} &lt;fields&gt;|all (or {1} &lt;fields&gt;|all)
+ Insert an empty group if fields start
+ with certain problematic commands
+ to protect against case-changing commands
+ like \Gls.
+
+ The default is to do this for all fields.
+ To do this for only a subset of fields,
+ set &lt;fields&gt; to a comma-separated
+ list of fields (e.g. 'name,short,long').
+ The keyword 'all' indicates all fields.</entry>
+<entry key="syntax.no.mfirstuc">{0}
+ Switch off the auto-insertion of an empty
+ group for all fields.</entry>
+
+<entry key="syntax.no.math.mfirstuc">{0}
+ Switch off the auto-insertion of an empty
+ group for math-shift ($).</entry>
+
+<entry key="syntax.math.mfirstuc">{0}
+ Switch on the auto-insertion of an empty
+ group for math-shift ($).
+ This option will be overriden by
+ {1}</entry>
+
+
+<entry key="syntax.check.shortcuts">{0} &lt;option&gt;
+ Check for the shortcut commands when
+ search for dependencies.
+ Permitted values of &lt;option&gt;:
+ ''acronyms'' (or ''acro'')
+ ''abbreviations'' (or ''abbr'')
+ ''all'' (or ''true'')
+ ''none'' (or ''false'')</entry>
+<entry key="syntax.check.nested">{0} &lt;list&gt;|"none"
+ Check each field listed in &lt;list&gt;
+ for potentially problematic nested link
+ text. (Default list: name, text, plural,
+ first, firstplural, short, shortplural,
+ long, longplural, symbol).
+
+ If "none", disable check.</entry>
+<entry key="syntax.nocheck.nested">{0}
+ Don''t check for potentially problematic
+ nested link text. (Equivalent to
+ {1} "none")</entry>
+<entry key="syntax.format.map">{0} &lt;key&gt;=&lt;value&gt;[,&lt;key&gt;=&lt;value&gt;]* (or {1} &lt;key&gt;=&lt;value&gt;[,&lt;key&gt;=&lt;value&gt;]*)
+ Set location format mappings.</entry>
+<entry key="syntax.group">{0} or {1}
+ Add ''group'' field to entries.</entry>
+<entry key="syntax.no.group">{0}
+ Don''t add ''group'' field to entries.</entry>
+<entry key="syntax.trim.fields">{0}
+ Trim leading and trailing spaces from fields.</entry>
+<entry key="syntax.no.trim.fields">{0}
+ Don''t trim leading and trailing spaces from fields (default).</entry>
+<entry key="syntax.tex.encoding">{0} &lt;name&gt;
+ Set the character encoding for the output files.</entry>
+
+<entry key="message.reading">Reading {0}</entry>
+<entry key="message.writing">Writing {0}</entry>
+<entry key="message.no.read">No read access for {0}</entry>
+<entry key="message.no.write">No write access for {0}</entry>
+<entry key="message.running">Running {0}</entry>
+<entry key="message.processing">Processing {0}</entry>
+<entry key="message.copying">Copying {0} -&gt; {1}</entry>
+<entry key="message.moving">Moving {0} -&gt; {1}</entry>
+<entry key="message.added.dep">Added dependent: {0}</entry>
+<entry key="message.added.parent">Adding parent: {0}</entry>
+<entry key="message.selection.mode">Selection mode: {0}</entry>
+<entry key="message.ignore.fields">Ignoring fields:</entry>
+<entry key="message.sort.mode">Sort mode: {0}</entry>
+<entry key="message.sort.field">Sort field: {0}</entry>
+<entry key="message.label.prefix">Label prefix: {0}</entry>
+<entry key="message.dual.label.prefix">Dual label prefix: {0}</entry>
+<entry key="message.dual.sort.mode">Dual sort mode: {0}</entry>
+<entry key="message.dual.sort.field">Dual sort field: {0}</entry>
+<entry key="message.dual.entry.mappings">Dual entry mappings:</entry>
+<entry key="message.dual.symbol.mappings">Dual symbol mappings:</entry>
+<entry key="message.dual.abbreviation.mappings">Dual abbreviation mappings:</entry>
+<entry key="message.dual.entryabbreviation.mappings">Dual entry-abbreviation mappings:</entry>
+<entry key="message.process.result">Processed returned: {0}</entry>
+
+<entry key="message.log.file">Transcript written to {0}.</entry>
+<entry key="message.written">{0} written to {1}.</entry>
+<entry key="message.written.total">{0} written in total.</entry>
+
+<entry key="message.0.entry">No entries</entry>
+<entry key="message.1.entry">1 entry</entry>
+<entry key="message.2.entry">{0,number} entries</entry>
+
+<entry key="message.1.sty">1 recognised package:</entry>
+<entry key="message.2.sty">{0,number} recognised packages:</entry>
+
+<entry key="message.checking.read">Checking read access for {0}</entry>
+<entry key="message.checking.write">Checking write access for {0}</entry>
+<entry key="message.setting.sort">Initialising collation keys (strength={0}, decomposition={1})</entry>
+<entry key="message.no.fallback">Entry type ''{0}'' has no fallback for field: {1}</entry>
+<entry key="message.inconsistent.range">Inconsistent location format {0}
+with range started by {1}</entry>
+<entry key="message.merge.range">Merging location {0}
+into explicit range {1}</entry>
+<entry key="message.uc.protecting">Inserting empty group in front of {0} to protect it from mfirstuc.</entry>
+<entry key="message.discarding.entry">Discarding entry {0}</entry>
+<entry key="message.pattern.info">Pattern: {0}. Field: {1}. Value: {2}. Matches: {3}.</entry>
+<entry key="message.calc.text.width">Calculating width of name field for entry ''{0}''</entry>
+<entry key="message.calc.text.width.result">Calculated width of ''{0}'': {1,number}</entry>
+<entry key="message.parsing.code">Parsing code block:</entry>
+<entry key="message.unknown.tex.charset">Unable to detect character encoding for TeX file.
+Defaulting to: {0}.
+(Use {1} if this is incorrect.)</entry>
+<entry key="message.tex.charset">TeX character encoding: {0}</entry>
+<entry key="message.adding.target.record">Adding record {0} from aliased entry {1}.</entry>
+<entry key="message.ignored.record">Ignoring record {0}.</entry>
+<entry key="message.normalizing">Normalising {0} to {1}.</entry>
+<entry key="message.norm.distinct">Normalized {0} distinct from {1}.</entry>
+<entry key="message.no.norm">Can''t normalize {0}.</entry>
+<entry key="message.collator.rules">Collator rules: {0}.</entry>
+<entry key="message.no.collation.element">No collation element for: {0}.</entry>
+<entry key="message.break.points">Break points: {0}.</entry>
+
+<entry key="tag.page">Page</entry>
+<entry key="tag.pages">Pages</entry>
+<entry key="tag.passim">passim</entry>
+
+<!--
+ Letter groups usually only have the first character converted to upper case
+ (for example, the digraph 'dz' is converted to 'Dz'). This doesn't apply
+ to the Dutch digraph 'ij', which should be converted to 'IJ'. Other
+ exceptions may be added as appropriate.
+ -->
+<entry key="grouptitle.case.ij">IJ</entry>
+
+<entry key="warning.title">Warning: {0}</entry>
+<entry key="warning.substituting">Substituting {0} with {1}</entry>
+<entry key="warning.removing">Removing {0}</entry>
+<entry key="warning.ignoring.unknown.entry.type">Ignoring unknown entry type: {0}</entry>
+<entry key="warning.ignoring.unknown.encoding">Ignoring unknown encoding: {0}</entry>
+<entry key="warning.can.find.arg">Can't detect argument for: \{0}</entry>
+<entry key="warning.no.default.sort">Can't determine sort value for: {0}
+(Using sort field ''{1}''.)</entry>
+<entry key="warning.missing.field">Entry ''{0}'' missing required field: {1}</entry>
+<entry key="warning.potential.nested.link">Entry ''{0}'' has potentially nested link text in field: {1}
+Consider using \glsps'{'{3}'}' or \glspt'{'{3}'}' instead of {2}'{'{3}'}'</entry>
+<entry key="warning.dir.no.write">Directory not writable: {0}
+Using TEXMFOUTPUT instead: {1}</entry>
+<entry key="warning.conflicting.range.format">Entry location conflict for formats: {0} and {1}
+Replacing {1} with {2}</entry>
+<entry key="warning.discarding.conflicting.record">Entry location conflict for formats: {0} and {1}
+Discarding: {2}
+Conflicts with: {3}</entry>
+<entry key="warning.discarding.conflicting.record.using.map">Entry location conflict.
+Obeying requested mapping {0} -&gt; {1}
+Discarding: {2}
+Keeping: {3}</entry>
+<entry key="warning.discarding.conflicting.record.using.map2">Entry location conflict.
+Obeying requested mapping {0} -&gt; {1} and {2} -&gt; {3}
+Discarding: {4}
+Discarding: {5}
+Replacement: {6}</entry>
+<entry key="warning.cant.find.parent">Parent ''{0}'' not found for entry {1}</entry>
+<entry key="warning.cant.find.parent.name">Can''t determine parent name for entry {0}</entry>
+<entry key="warning.field.clash">Field clash: {0} and {1}
+Ignoring {1}</entry>
+<entry key="warning.field.unsupported">Unsupported field: {0}
+(Update glossaries-extra.sty to at least version {1})</entry>
+<entry key="warning.option.clash">Option clash: {0} and {1}
+Ignoring {1}</entry>
+<entry key="warning.option.pair.required">Resource option {0} requires option {1}</entry>
+<entry key="warning.group.option.required">Resource option {0} requires application switch {1}</entry>
+<entry key="warning.parent.missing">Parent {0} does not occur before entry {1} so removing relationship.</entry>
+<entry key="warning.unknown.field.pattern">Ignoring pattern for unknown field: {0}</entry>
+<entry key="warning.notbasiclatin.id">Problematic entry label: {0}
+You document doesn''t seem to have used fontspec which
+suggests it''s not using XeLaTeX or LuaLaTeX, so you need
+to restrict your labels to the Basic Latin set (or
+switch TeX engines).</entry>
+<entry key="warning.spchars.id">Problematic entry label: {0}
+Contains one or more special characters.</entry>
+<entry key="warning.alias.not.found">Can''t find target {0} for aliased entry {1}.
+Aliased entries must be in the same resource set as their target entries with option {2}={3}.</entry>
+<entry key="warning.deprecated">''{0}'' deprecated. Use ''{1}'' instead.</entry>
+
+<entry key="error.title">Error: {0}</entry>
+<entry key="error.alias.map.forbidden">The 'alias' field can't be mapped.</entry>
+<entry key="error.no.sty.version">Unable to read version date for package {0}</entry>
+<entry key="error.sty.too.old">Package {0} version {1} is too old.
+Minimum version {2} required.</entry>
+<entry key="error.unknown.tex.charset">Unknown TeX charset: {0}
+Defaulting to {1}. Use {2} to set another encoding.</entry>
+<entry key="error.missing.aux.cs.require_cs">Missing \{0} in aux file. (Have you used \{1}?)</entry>
+<entry key="error.missing.aux.cs.require_cs_or">Missing \{0} in aux file. (Have you used \{1} or \{2}?)</entry>
+<entry key="error.missing.records">No records found in aux file.
+Have you used the glossaries-extra.sty ''record'' option?
+Have you indexed your entries using commands like \gls?</entry>
+<entry key="error.missing.aux.new.cs">Missing \{0} in aux file (make sure glossaries-extra.sty is at least {1}).</entry>
+<entry key="error.only.one.aux">Only one aux file permitted.</entry>
+<entry key="error.no.aux">Missing aux file. Use --help for help.</entry>
+<entry key="error.file.not.found">File not found: {0}</entry>
+<entry key="error.missing.src">File not found: {0}
+(Did you forget to use the ''src'' key?)</entry>
+<entry key="error.dir.not.found">Directory not found: {0}</entry>
+<entry key="error.not.dir">Not a directory: {0}</entry>
+<entry key="error.cant.open.log">Can't open log file: {0}</entry>
+<entry key="error.invalid.opt.value">Invalid ''{0}'' value: {1}</entry>
+<entry key="error.invalid.opt.int.value">Invalid ''{0}'' value: {1} (number required)</entry>
+<entry key="error.invalid.opt.minint.value">Invalid ''{0}'' value: {1} (can''t be less than {2,number})</entry>
+<entry key="error.invalid.choice.value">Invalid ''{0}'' value: {1} (allowed values: {2})</entry>
+<entry key="error.invalid.opt.list.size">Invalid value for: {0}
+Value must be a list of size {2,number}</entry>
+<entry key="error.invalid.opt.keylist.value">Invalid ''{0}'' value ''{1}'' (within option ''{2}'')</entry>
+<entry key="error.invalid.opt.keylist.key">Invalid key ''{0}'' within option ''{1}''</entry>
+<entry key="error.invalid.opt.keylist.pattern">Invalid pattern ''{1}'' in {0}='{'{1}'}' (within option ''{2}'')</entry>
+<entry key="error.missing.value">Missing value for: {0}</entry>
+<entry key="error.option.clash">Option clash: {0} and {1}</entry>
+<entry key="error.invalid.dual.map">Invalid mapping: {0}={1}
+The size of the first list ({2,number}) is not the same as the size of
+the second list ({3,number}).</entry>
+<entry key="error.invalid.field">Invalid field ''{0}'' provided by option ''{1}''</entry>
+<entry key="error.openin.forbidden">Read access forbidden for file: {0}</entry>
+<entry key="error.openout.forbidden">Write access forbidden for file: {0}</entry>
+<entry key="error.forbidden.ext">Write access forbidden for extension: {0}</entry>
+<entry key="error.cant.open.process.stream">Unable to open input stream from process: {0}</entry>
+<entry key="error.cyclic.hierarchy">Cyclical hierarchy for entry: {0}</entry>
+<entry key="error.duplicate.resource">Duplicate resource: {0}</entry>
+<entry key="error.nested.range">Nested location range: {0}
+Outer range started with: {1}</entry>
+<entry key="error.range.missing.start">Unmatched end location range {0}</entry>
+<entry key="error.inconsistent.range">Inconsistent location format {0}
+with range started by {1}</entry>
+<entry key="error.range.missing.end">Unmatched start location range {0}</entry>
+<entry key="error.bib.contents.parse">Syntax error parsing @{0}:
+{1}
+</entry>
+<entry key="error.bib.contents.parse.before">Syntax error parsing @{0}:
+{1}
+Error occurred before: {2}
+</entry>
+<entry key="error.bib.contents.parse.data">Syntax error parsing @{0} ({1}):
+{2}
+</entry>
+<entry key="error.bib.contents.parse.data.before">Syntax error parsing @{0} ({1}):
+{2}
+Error occurred before: {3}
+</entry>
+<entry key="error.invalid.sort.rule">Invalid syntax in sort rule:
+{0}</entry>
+
+<!--
+ The following messages are used by convertgls2bib
+-->
+
+<entry key="gls2bib.override.newdualentry">Overriding default definition of \\newdualentry with custom
+definition. (Change \\newcommand to \\providecommand if you want
+\\newdualentry[options]'{'label'}{'short'}{'long'}{'description'}'
+converted to @dualentryabbreviation.)</entry>
+
+<!--
+ The following messages are used by various parts of
+ texparserlib.jar only a few of them may actually be generated by
+ bib2gls which is just using that library to parse the aux and bib files.
+ -->
+
+<entry key="error.line">Line {0}: {1}.</entry>
+<entry key="error.line_with_code">Line {0}: {1} (error code {2}).</entry>
+<entry key="error.unknown">Unknown error</entry>
+<entry key="error.exec_failed">Failed to execute: {0}</entry>
+<entry key="error.app_failed">{0} failed with exit code {1}</entry>
+<entry key="error.interrupted">Process interrupted</entry>
+<entry key="error.syntax">Syntax error: {0}</entry>
+<entry key="error.syntax.unknown_option">Unknown option: {0}</entry>
+<entry key="error.syntax.only_one">Only one {0} permitted</entry>
+<entry key="error.syntax.only_one_input">Only one input file permitted</entry>
+<entry key="error.syntax.missing_filename">Filename expected after {0}</entry>
+<entry key="error.syntax.missing_input">File name expected after {0}</entry>
+<entry key="error.syntax.batch.missing_in">Input file required for batch mode</entry>
+<entry key="error.syntax.batch.missing_out">Output directory required for batch mode</entry>
+<entry key="error.syntax.batch.unknown_format">Unknown format ''{0}''</entry>
+<entry key="error.exists">{0} already exists</entry>
+
+<entry key="tex.error.bad_param">Parameter digit 1 to 9 expected. Found ''{0}''</entry>
+<entry key="tex.error.no_eg">Missing end group</entry>
+<entry key="tex.error.par_before_eg">Paragraph break found before end group</entry>
+<entry key="tex.error.unexpected_eg">Unexpected end group found</entry>
+<entry key="tex.error.missing_endmath">Missing end math</entry>
+<entry key="tex.error.dollar2_ended_with_dollar">$$ ended with $</entry>
+<entry key="tex.error.not_found">Expected ''{0}'' but not found</entry>
+<entry key="tex.error.missing_param">Argument expected for ''{0}'' but not found</entry>
+<entry key="tex.error.empty_stack">Argument expected but not found (empty stack)</entry>
+<entry key="tex.error.not_math_mode">{0} is only permitted in math mode</entry>
+<entry key="tex.error.invalid_accent">{0} is not a recognised accent </entry>
+<entry key="tex.error.ambiguous_midcs">Ambiguous use of {0}</entry>
+<entry key="tex.error.missing_closing">Missing closing {0}</entry>
+<entry key="tex.error.dimen_expected">Dimension expected</entry>
+<entry key="tex.error.missing_unit">Missing unit</entry>
+<entry key="tex.error.expected">Expected {0}</entry>
+<entry key="tex.error.undefined">Undefined command {0}</entry>
+<entry key="tex.error.undefined_char">Undefined active character ''{0}''</entry>
+<entry key="tex.error.cs_expected">Control sequence expected (found ''{0}'')</entry>
+<entry key="tex.error.number_expected">Number expected (found ''{0}'')</entry>
+<entry key="tex.error.register_undef">Unknown register ''{0}''</entry>
+<entry key="tex.error.syntax">Invalid syntax for {0}</entry>
+<entry key="tex.error.extra">Extra {0}</entry>
+<entry key="tex.error.extra_or_forgotten">Extra {0}, or forgotten {1}</entry>
+<entry key="tex.error.double_subscript">Double subscript _{0}_ (replaced with _{0}'{}'_)</entry>
+<entry key="tex.error.double_superscript">Double superscript ^{0}^ (replaced with ^{0}'{}'^)</entry>
+<entry key="tex.error.illegal_align">Illegal alignment {0}</entry>
+<entry key="tex.error.misplaced_omit">Misplaced \omit</entry>
+<entry key="tex.error.improper_alphabetic_constant">Improper alphabetic constant {0}</entry>
+
+<entry key="latex.error.no_alignment">No alignment specifiers found</entry>
+<entry key="latex.error.undefined_counter">No counter ''{0}'' defined</entry>
+<entry key="latex.error.multi_begin_doc">Only one \begin'{document}' permitted</entry>
+<entry key="latex.error.no_begin_doc">No \begin'{document}' found</entry>
+<entry key="latex.error.multi_cls">Only one \documentclass permitted</entry>
+<entry key="latex.error.missing_key">Missing ''{0}'' key</entry>
+<entry key="latex.error.extra_end">Extra \end'{'{0}'}' found</entry>
+<entry key="latex.error.unaccessible">Unaccessible ''{0}''</entry>
+<entry key="latex.error.defined">''{0}'' already defined</entry>
+<entry key="latex.error.illegal_array_arg_char">Illegal character ''{0}'' in array arg</entry>
+<entry key="latex.error.lonely_item">Lonely \item</entry>
+
+<entry key="bibtex.error.missing_value">Missing value</entry>
+<entry key="bibtex.error.expecting">Expecting ''{0}''</entry>
+<entry key="bibtex.error.expecting_or">Expecting ''{0}'' or ''{1}''</entry>
+<entry key="bibtex.error.missing_field_part">Missing field part</entry>
+<entry key="bibtex.error.missing_field_name">Missing field name</entry>
+<entry key="bibtex.error.unbalanced_braces">Unbalanced braces</entry>
+<entry key="bibtex.error.immediately_follows_entry_type">''{0}'' immediately follows entry type</entry>
+<entry key="bibtex.error.immediately_follows_field_name">''{0}'' immediately follows field name</entry>
+<entry key="bibtex.error.illegal_end">Illegal end</entry>
+<entry key="bibtex.error.missing">Missing</entry>
+<entry key="bibtex.error.too_many_commas">Too many commas in name ''{0}''</entry>
+<entry key="bibtex.error.string_name_undefined">String name ''{0}'' undefined</entry>
+</properties>
diff --git a/Master/texmf-dist/scripts/bib2gls/texparserlib.jar b/Master/texmf-dist/scripts/bib2gls/texparserlib.jar
new file mode 100755
index 00000000000..70561ba72dc
--- /dev/null
+++ b/Master/texmf-dist/scripts/bib2gls/texparserlib.jar
Binary files differ