Issue: "language system statement" warning


“[WARNING] <..> [internal] Feature block seen before any language system statement. You should place language system statements before any feature definition”


This warning typically occurs with older FontLab 5.0.x or earlier files opened in 5.1.x or 5.2.x for the first time. It can be fixed permanently by adding appropriate code.


Solution:


In your OpenType Layout feature definitions, you must define all languagesystems that your features are using. See (3) below for details on what the text needs to be. Where to put these definitions?


1. Open the OpenType panel (where OpenType layout features live)


a) If the list of features on the left under "Name" is empty, and/or you were not intending to have OpenType features in the generated font, then you can safely ignore this warning message. (Note that kerning can be handled as an OpenType feature with the "kern" feature.)


b) If the OpenType panel shows a list of feature names (4-letter codes) on the left, and you want to preserve them, then add the languagesystem definition at the very beginning of the lower-right portion of the OpenType panel (NOTE, only one line sown, you'll need at least the two lines given above):


2. If you're not using FontLab Studio, but are instead using a standalone FEA file with Fontographer (or some other OpenType compiler), you should place the languagesystem definitions at the beginning of your FEA file.


3. What text do I put in for the languagesystem statement(s)?


For a basic Latin-based font, that has no language-specific code at all, the definitions of your languagesystem could be as simple as the following:


languagesystem DFLT dflt;
languagesystem latn dflt;


Note that both every writing system and every language explicitly used in the feature code must be declared in the code. So a font that has code relating to seven specific Latin languages and one specific Cyrilic one, and supports Greek, can end up with a set of languagesystem statements that looks like this:


languagesystem DFLT dflt; 
languagesystem latn dflt; 
languagesystem latn FRA; 
languagesystem latn PLK; 
languagesystem latn TRK; 
languagesystem latn AZE; 
languagesystem latn CRT; 
languagesystem latn ROM; 
languagesystem latn MOL; 
languagesystem cyrl dflt; 
languagesystem cyrl SRB; 
languagesystem grek dflt;



4) For more details and explanation, read this article https://forum.fontlab.com/opentype-layout-feature-development/fea-2-5-vs-1-6-'languagesystem'-and-'script-dflt'-issues/