I'm working on a new version of the CLDR (localization data) packages, with the goal of reducing the amount of data that most installations will need.
The packages are broken up into: cldr2: provides functions for accessing the data and resolving locale names cldr2-data-core: provides the data from https://github.com/unicode-cldr/cldr-core cldr2-data_<locale name>: one per locale, provides data from the rest of the unicode-cldr repos, but only for the locale in the package name The cldr2 package depends on cldr2-data-core, but a user is free to install as many or as few locale-specific packages as desired. The problem I've run into is how, at runtime, to find the data files I need in a way that works during development. Each of the cldr2-data-* packages has a data archive at cldr2/data/json.zip from the package root directory. So, if someone wants data from the core package, we could do: ``` (define dir (pkg-directory "cldr2-data-core" #:cache PKG-CACHE)) ... [raise an exception if the package isn't installed] ... (define zip-path (build-path dir "cldr2" "data" "json.zip")) ... [open the archive and extract the relevant data] ... ``` And that's fine, except that it doesn't work in development when using raco link, because raco link manages collections, not packages. And I don't think that collection-file-path is useful here either, since all of these json.zip files have exactly the same collection-relative path. What's the best way to handle this? Should I just give the zip files distinct names and use collection-file-path? Or is there a better way to handle this situation? (I'm a bit reluctant to use collection-file-path, since I think it searches the file system and so would be a bit expensive. pkg-directory needs to parse the package catalog, but it allows the results of that parse to be cached.) -Jon -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/CAKfDxxxywSUuR0j%3DM1sgU3foezz_jt3%2BAChNEqCO3SuqYtffRA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
