Commit Graph

56 Commits

Author SHA1 Message Date
Juergen Spitzmueller
b1b8ded15d output babel options via \babelprovide in all cases needed 2024-08-26 07:20:58 +02:00
Juergen Spitzmueller
047dee5a3b Basic support for \babelprovide
This is the new(er) babel mechanism to load languages via babel *.ini
files.

Some languages (or varieties) are only supported this way, some work
better with unicode engines this way (for the latter case, we have
BabelProvide 2)
2024-08-25 09:46:29 +02:00
Juergen Spitzmueller
7e09f574ba Add BabelOpts to languages
This way, some settings that were hardcoded in BabelPreamble are
customizable in document settings
2024-08-24 14:30:37 +02:00
Juergen Spitzmueller
7e49ae7b13 Add support for language options (#8034)
File format change.

Note that this cannot be properly reverted to LyX 2.4, so any options
will simply vanish on reversion or roundtrip
2024-08-23 15:52:34 +02:00
Jean-Marc Lasgouttes
2660df9b99 Move Lexer to support/ directory (and lyx::support namespace)
This requires quite a bit of trivial code shuffling.
2024-04-28 12:23:13 +02:00
Enrico Forestieri
d2d33a6a1f Fix compilation on cygwin 2020-10-23 15:00:23 +02:00
Pavel Sanda
5d0b1b640b Make master compilable again with older gcc. 2020-10-21 00:01:03 +02:00
Yuriy Skalko
196d9caeb0 Clean includes using the output of iwyu tool 2020-10-20 11:38:55 +03:00
Yuriy Skalko
5ac65d1532 Move BufferParams.h from Language.h 2020-10-15 19:25:37 +03:00
Richard Kimberly Heck
d6a7ec506e s/requires_/required_/ for code consistency 2020-05-04 14:05:44 -04:00
Richard Kimberly Heck
62af7ee772 More requires --> required, for C++2a. 2020-02-28 00:36:55 -05:00
Juergen Spitzmueller
aa141bc293 Enhance support for Xindy
This adds the proper language module and codepage for languages supported
by Xindy
2019-12-15 12:01:59 +01:00
Juergen Spitzmueller
ce447e1760 Deactivate active - in tables with \cline or \cmidrule
This introduces a new languages tag ActiveChar which also can be used
for similar cases.
2019-08-14 13:10:42 +02:00
Juergen Spitzmueller
b852df91bc Localize the default decimal separator
Do not blindly use (English) "." as default, but the locale default of
the current context language.

Fixes: #7204
2019-07-22 08:05:28 +02:00
Jean-Marc Lasgouttes
049aed8e08 Respect OS-level keyboard language
This bug provides two features:

1/ when a new document is created the language is set to the current
  keyboard language.

2/ when keyboard is switched at OS level, the input language of
   current window is changed. The language is set preferably to one of
   those of the document. Ex. if the keyboard changes to en_GB but one
   is typing a document in US English and Hebrew, then US English will
   be selected rather that adding UK English to the list.

The implementation depends a lot on Qt. The platform status is :

* working on Windows 10

* not working with Linux (although 1/ works with Qt4); it seems that
  Qt5 supports switching through ibus, but I do not know what this
  means.

* not yet tested on macOS.

This addresses bugs #6450, #6247 and somehow #10514.
2019-07-17 23:23:13 +02:00
Jean-Marc Lasgouttes
7ad7698692 Fixup c349472d: Remove unused private field
Spotted by coverity.
2019-07-09 15:15:07 +02:00
Jean-Marc Lasgouttes
b8b5ed8b31 Clean up Language.cpp
Use range-base for loops everywhere.

Rename languagelist to languagelist_, since it is private.
2019-06-05 16:28:37 +02:00
Jean-Marc Lasgouttes
bf88ad495c Make Word Wrap property confiurable by language
It is now possible to specify in the lib/language file whether screen
rows can be broken anywhere (CJK languages) or only at work boundary.

Set WordWrap to false for the CJK languages (notice that japanese-cjk
had been forgotten before).

Moreover, remove a test for separators in row element that was not
really helpful.

Fixes part of ticket #10299.
2019-06-05 15:50:53 +02:00
Günter Milde
c349472d35 "AsBabelOptions" no longer required. Part2.
AsBabelOptions was introduced 2010 in [cc5dd37a2a05/lyxgit].

Since the re-orgianization and opening of the Babel package to
"contributed" language definitions in March 2013, it is no longer required.

Clean up after Part 1 [1361f1a45f23/lyxgit].
2019-04-27 17:09:29 +02:00
Juergen Spitzmueller
e730234e57 Add date-related info insets
With this commit, info insets leave the dark backstage room of an opaque
and quite hidden dev-only feature and come frontstage.

In the UI, they present themselves as "Fields" since this is what people
know from word processors. Other user-related fields that could be
implemented next: time, user name (I plan to do that for 2.4).

Since this supersedes date-insert, I removed Insert > Date from
the menu and propose to ditch date-insert and the corresponding rc.

The lyx2lyx reversion routine has lots of room for improvement and
attractive tasks for pythons (file timestamp, switch of localization).
Please feel invited!

This is a file format change.
2018-08-05 10:01:36 +02:00
Juergen Spitzmueller
803a88f243 Sort out problems with InsetInfo language settings
* use the context language of the info inset (rather than the buffer
language), and translate strings accordingly

* for menu and shortcuts, use the Gui language instead

* actually care that all translatable strings end in po
(this wasn't the case).

Fixes: #5348, rest of #10463
2018-07-27 12:14:37 +02:00
Juergen Spitzmueller
f63de41c4c Remove Language::fontenc()
This raw vector of fontenc alternatives is not needed outside Language,
and it should actually never be used.
2018-04-23 12:59:57 +02:00
Juergen Spitzmueller
26ea1e1496 Align fontenc with document fonts
Following a request by Günter, we consider the document fonts (only rm
for now) when selecting an appropriate font encoding.

See #9741

The new default font encoding setting "auto" does

* consider the font encoding needed by the language(s), which can now
  have fallback alternatives
* Consider which font encoding is provided by the document font

Thus, cm now will result in OT1 fontenc, if the language can deal with
that.

The font_enc pref is ditched: it is no longer needed.

The automatism is still very basic and is subject to extension.

File format and prefs format change.
2018-04-22 19:06:46 +02:00
Juergen Spitzmueller
71f0dd3a7f Add Provides tag to languages
This allows to specify macros that are provided by specific (Babel)
languages (such as \textgreek)
2018-04-21 15:47:39 +02:00
Juergen Spitzmueller
07c82e9f84 Issue an error message if conflicting languages are used
Some languages are only supported by Babel, some only by Polyglossia.

If these are combined, we issue an error message now.

Fixes: #10456
2016-10-27 09:59:01 +02:00
Guillaume Munch
1f945177b9 Docstringify getLongString in general and preamble snippets in particular
Prepare ground for TexRow InPreamble
2016-10-17 00:16:59 +02:00
Jean-Marc Lasgouttes
76eebf5707 typo 2016-01-20 17:40:47 +01:00
Jean-Marc Lasgouttes
88609b3984 Improve list of available languages for UI l10n.
Add a new tag HasGuiSupport to language file. Add it for all l10ns
that we currently ship. The po files that are unused are not currently
tagged as available, but this could be done, since the code later
checks that the translation is actually there.

This new information is used in GuiPrefs when populating the language
combox.

The new scheme implies that adding a new language is now a two-step
process:
* the language code has to be added to po/LINGUAS, as before;
* one of the entries of the lib/language file has to be selected as
  reference and be given the "HasGuiSupport true" property.
2015-05-21 10:48:38 +02:00
Jean-Marc Lasgouttes
c925748126 Fix uninitialized members in Language constructor
Fixes coverity issue 23412.
2015-03-05 12:17:52 +01:00
Juergen Spitzmueller
16c33b5f6e Move font encoding information to languages. 2015-01-24 14:02:16 +01:00
Georg Baum
25344de51d Make Language and Encoding threadsafe
Read-only access to these classes is now threadsafe, with one exception:
The encoding neds to be already initialized (i.e. init() must not be called).
This makes bug 9336 unreproducable on my machine, although it is not completely
fixed yet.
2014-12-07 18:26:44 +01:00
Jean-Marc
93a43742a5 Fix a bunch of small performance issues spotted by cppcheck
Most of these are about passing const strings parameters as references.
2014-07-05 19:13:10 +02:00
Georg Baum
274b3caff2 Fix most important case of bug #8205
Since a complete solution requires some refactoring, I fixed the bug for the
most important case: The main document language is only supported by
polyglossia. If any other language than the main one is only supported by
polyglossia the bug is still there.
2013-03-31 23:48:05 +02:00
Jean-Marc Lasgouttes
7a7b9abf1b Tracking correctly available translations (take 2)
The previous scheme of loading all possible translations and checking
whether the work is a bit too much "brute force" and causes problems
on Mac OS X (documents loaded with the wrong language).

Now there is an helper static method in Messages class that checks
whether a readable .mo file exist for the language. There should be an
API in gettext for doing that, but alas it is not possible.

As a consequence the method Language::translated() has been removed,
along with its cache.
2012-09-08 16:59:19 +02:00
Jean-Marc Lasgouttes
a86de5d3c0 Revert "Read list of translated languages from a file"
This reverts commit ed1515ef69.
2012-09-08 16:59:18 +02:00
Jean-Marc Lasgouttes
ed1515ef69 Read list of translated languages from a file
The previous scheme of loading all possible translations and checking whether the work
is a bit too much "brute force" and causes problems on Mac OS X (documents loaded
with the wrong language).

In the new scheme, autotools install a file lib/installed_translations that contains a list of installed languages (the .gmo files that got installed). This file is read
in Languages::readInstalledTranslations and allows to set the translated() property
of each language.
2012-07-19 00:21:28 +02:00
Juergen Spitzmueller
837869452a Add quote style information to languages 2012-07-01 11:25:52 +02:00
Juergen Spitzmueller
f71a55a279 some less language hardcoding 2012-06-09 11:32:34 +02:00
Georg Baum
5bf72d6dca support language variants like german (old spelling) or british english
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38029 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-24 19:40:54 +00:00
Georg Baum
55ef7b50b5 First version of separate translation machinery for strings that go into
exported documents.
To update the translations from the .po files, run
make ../lib/layouttranslations
from po.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38016 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-23 19:17:15 +00:00
Stephan Witt
e755729f68 #7170 simplify the hunspell dictionary lookup; use Language::lang() instead of Language::id() as speller index
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37727 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-18 11:54:14 +00:00
Stephan Witt
4ba2c362cb #7170 add id() method for language; add variety of language to hunspell dictionary lookup; use dicts as subdirectory to search for in system_support and user_support directories
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37716 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-17 17:09:06 +00:00
Georg Baum
53a72a4526 fix bug #6584
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36687 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-03 17:48:06 +00:00
Jürgen Spitzmüller
1aa5a0d1f1 Introduce PolyglossiaName and PolyglossiaOpts.
Not yet functional.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36312 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-16 11:07:43 +00:00
Jürgen Spitzmüller
cc5dd37a2a Introduce a new Language option "AsBabelOptions" that specifies whether a language requires to be passed to babel itself (instead of globally to the class).
This allows us to remove some ugly hardcoding of languages in the source.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36292 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-14 10:35:35 +00:00
Jürgen Spitzmüller
12c7e7dde3 * add PreBabelPreamble to Language definition (fixes #4786).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36291 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-14 09:54:24 +00:00
Jürgen Spitzmüller
148f2d648c The languages file rewrite.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36285 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-13 17:25:03 +00:00
Jürgen Spitzmüller
707935ab23 * store the full Language in WordLangTuple.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33378 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-09 11:26:49 +00:00
Jürgen Spitzmüller
4506ec88ab * Add support for aspell language varieties.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33085 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-18 17:02:05 +00:00
Vincent van Ravesteijn
3efb1572a2 Fix bug #6378: Word completion (in texted) should be language-sensitive.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32581 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-18 14:48:56 +00:00