The LanguageResource protocol and the types that implement it
keyboards and lexical models installed within the KeymanEngine.
Generally speaking, this is a lower-level type than
LanguageResourceFullID, requiring extra metadata only discovered during installation
from a resource's package and only used internally within the KeymanEngine.
LanguageResource protocol is the base type used to represent specific types of
installed resources within the KeymanEngine, paired with their target languages. Both
InstallableLexicalModel implement this protocol,
allowing methods to be written that can handle either resource type. Also note the existence
AnyLanguageResource, which serves a "type erasure" role for classes implementing
Important note: multiple copies of
LanguageResource for the same underlying
resource will exist if that resource has been installed for use with multiple languages. One instance
will exist per target language that was selected for installation.
- The type used to uniquely identify the resource, comprised of the resource's ID, type, and paired language code. Frequently used within the engine as a unique identifier for the resource in searches and comparisons.
- The derived type of KeymanPackage supporting this type of resource.
InstallableKeyboard.Package == KeyboardKeymanPackage.
- The resource's internal name. This must be unique among all resources of the same type and follows standard unique ID constraints: a-z, A-Z, 0-9, and underscores only.
- The resource's external name, as displayed to users.
- One language paired with this resource during installation.
- The ID of the resource's source package. Is 'optional' for legacy reasons.
- The unique identifier for the resource's source package.
- The resource's installed version.
- The filename of the package component used internally within the KeymanEngine to load the resource.
- A unique identifier used in language resource searches and comparisons.