Merge pull request #24720 from k0001/hun-es

hunspellDicts: add spanish dictionaries.
This commit is contained in:
Graham Christensen 2017-07-16 16:36:14 -04:00 committed by GitHub
commit 4a2f605398

View file

@ -1,30 +1,13 @@
/* hunspell dictionaries */
{ stdenv, fetchurl, unzip }:
{ stdenv, fetchurl, fetchFromGitHub, unzip, coreutils, bash, which, zip }:
with stdenv.lib;
let
mkDict =
{ name, src, meta, readmeFile, dictFileName, ... }:
let
isFrench = hasSuffix "fr_" dictFileName;
isItaly = hasSuffix "it_" dictFileName;
isSpanish = hasSuffix "es_" dictFileName;
isEnglish = hasSuffix "en_" dictFileName;
in
stdenv.mkDerivation rec {
inherit name src meta;
buildInputs = [ unzip ];
sourceRoot = ".";
phases = "unpackPhase installPhase" + (if isItaly then "patchPhase" else "");
unpackCmd = "unzip $src ${readmeFile} ${dictFileName}.dic ${dictFileName}.aff";
prePatch = if isItaly then ''
# Fix dic file empty lines (FS#22275)
sed '/^\/$/d' -i it_IT.dic
'' else "";
{ name, readmeFile, dictFileName, ... }@args:
stdenv.mkDerivation (rec {
inherit name;
installPhase = ''
# hunspell dicts
install -dm755 "$out/share/hunspell"
@ -38,7 +21,45 @@ let
install -dm755 "$out/share/doc"
install -m644 ${readmeFile} $out/share/doc/${name}.txt
'';
};
} // args);
mkDictFromRla =
{ shortName, shortDescription, dictFileName }:
mkDict rec {
inherit dictFileName;
version = "2.2";
name = "hunspell-dict-${shortName}-rla-${version}";
readmeFile = "README.txt";
src = fetchFromGitHub {
owner = "sbosio";
repo = "rla-es";
rev = "v${version}";
sha256 = "0n9ms092k7vg7xpd3ksadxydbrizkb7js7dfxr08nbnnb9fgy0i8";
};
meta = with stdenv.lib; {
description = "Hunspell dictionary for ${shortDescription} from rla";
homepage = https://github.com/sbosio/rla-es;
license = with licenses; [ gpl3 lgpl3 mpl11 ];
maintainers = with maintainers; [ renzo ];
platforms = platforms.all;
};
phases = "unpackPhase patchPhase buildPhase installPhase";
buildInputs = [ bash coreutils unzip which zip ];
patchPhase = ''
substituteInPlace ortograf/herramientas/make_dict.sh \
--replace /bin/bash bash \
--replace /dev/stderr stderr.log
substituteInPlace ortograf/herramientas/remover_comentarios.sh \
--replace /bin/bash bash \
'';
buildPhase = ''
cd ortograf/herramientas
bash -x ./make_dict.sh -l ${dictFileName} -2
unzip ${dictFileName}.zip \
${dictFileName}.dic ${dictFileName}.aff ${readmeFile}
'';
};
mkDictFromDicollecte =
{ shortName, shortDescription, longDescription, dictFileName }:
@ -59,6 +80,12 @@ let
maintainers = with maintainers; [ renzo ];
platforms = platforms.all;
};
buildInputs = [ unzip ];
phases = "unpackPhase installPhase";
sourceRoot = ".";
unpackCmd = ''
unzip $src ${dictFileName}.dic ${dictFileName}.aff ${readmeFile}
'';
};
mkDictFromWordlist =
@ -75,9 +102,15 @@ let
maintainers = with maintainers; [ renzo ];
platforms = platforms.all;
};
buildInputs = [ unzip ];
phases = "unpackPhase installPhase";
sourceRoot = ".";
unpackCmd = ''
unzip $src ${dictFileName}.dic ${dictFileName}.aff ${readmeFile}
'';
};
mkLinguistico =
mkDictFromLinguistico =
{ shortName, shortDescription, dictFileName, src }:
mkDict rec {
inherit src dictFileName;
@ -90,6 +123,16 @@ let
maintainers = with maintainers; [ renzo ];
platforms = platforms.all;
};
buildInputs = [ unzip ];
phases = "unpackPhase patchPhase installPhase";
sourceRoot = ".";
prePatch = ''
# Fix dic file empty lines (FS#22275)
sed '/^\/$/d' -i ${dictFileName}.dic
'';
unpackCmd = ''
unzip $src ${dictFileName}.dic ${dictFileName}.aff ${readmeFile}
'';
};
mkDictFromXuxen =
@ -169,6 +212,134 @@ in {
};
};
/* SPANISH */
es-any = mkDictFromRla {
shortName = "es-any";
shortDescription = "Spanish (any variant)";
dictFileName = "es_ANY";
};
es-ar = mkDictFromRla {
shortName = "es-ar";
shortDescription = "Spanish (Argentina)";
dictFileName = "es_AR";
};
es-bo = mkDictFromRla {
shortName = "es-bo";
shortDescription = "Spanish (Bolivia)";
dictFileName = "es_BO";
};
es-cl = mkDictFromRla {
shortName = "es-cl";
shortDescription = "Spanish (Chile)";
dictFileName = "es_CL";
};
es-co = mkDictFromRla {
shortName = "es-co";
shortDescription = "Spanish (Colombia)";
dictFileName = "es_CO";
};
es-cr = mkDictFromRla {
shortName = "es-cr";
shortDescription = "Spanish (Costra Rica)";
dictFileName = "es_CR";
};
es-cu = mkDictFromRla {
shortName = "es-cu";
shortDescription = "Spanish (Cuba)";
dictFileName = "es_CU";
};
es-do = mkDictFromRla {
shortName = "es-do";
shortDescription = "Spanish (Dominican Republic)";
dictFileName = "es_DO";
};
es-ec = mkDictFromRla {
shortName = "es-ec";
shortDescription = "Spanish (Ecuador)";
dictFileName = "es_EC";
};
es-es = mkDictFromRla {
shortName = "es-es";
shortDescription = "Spanish (Spain)";
dictFileName = "es_ES";
};
es-gt = mkDictFromRla {
shortName = "es-gt";
shortDescription = "Spanish (Guatemala)";
dictFileName = "es_GT";
};
es-hn = mkDictFromRla {
shortName = "es-hn";
shortDescription = "Spanish (Honduras)";
dictFileName = "es_HN";
};
es-mx = mkDictFromRla {
shortName = "es-mx";
shortDescription = "Spanish (Mexico)";
dictFileName = "es_MX";
};
es-ni = mkDictFromRla {
shortName = "es-ni";
shortDescription = "Spanish (Nicaragua)";
dictFileName = "es_NI";
};
es-pa = mkDictFromRla {
shortName = "es-pa";
shortDescription = "Spanish (Panama)";
dictFileName = "es_PA";
};
es-pe = mkDictFromRla {
shortName = "es-pe";
shortDescription = "Spanish (Peru)";
dictFileName = "es_PE";
};
es-pr = mkDictFromRla {
shortName = "es-pr";
shortDescription = "Spanish (Puerto Rico)";
dictFileName = "es_PR";
};
es-py = mkDictFromRla {
shortName = "es-py";
shortDescription = "Spanish (Paraguay)";
dictFileName = "es_PY";
};
es-sv = mkDictFromRla {
shortName = "es-sv";
shortDescription = "Spanish (El Salvador)";
dictFileName = "es_SV";
};
es-uy = mkDictFromRla {
shortName = "es-uy";
shortDescription = "Spanish (Uruguay)";
dictFileName = "es_UY";
};
es-ve = mkDictFromRla {
shortName = "es-ve";
shortDescription = "Spanish (Venezuela)";
dictFileName = "es_VE";
};
/* FRENCH */
fr-any = mkDictFromDicollecte {
@ -215,7 +386,7 @@ in {
/* ITALIAN */
it-it = mkLinguistico rec {
it-it = mkDictFromLinguistico rec {
shortName = "it-it";
dictFileName = "it_IT";
shortDescription = "Hunspell dictionary for 'Italian (Italy)' from Linguistico";