Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable lang selection without need for 'available-langs.properties' #169

Merged
merged 2 commits into from Oct 6, 2020

Conversation

awoods
Copy link
Member

@awoods awoods commented Jun 24, 2020

Related PRs:

Resolves: https://jira.lyrasis.org/browse/VIVO-1848

What does this pull request do?

This pull-request, in combination with the three other pull-requests noted below, does the following:

  • makes languages available to be enabled without the need for the previous 'available-langs.properties' file

How should this be tested?

Use the same tests as those documented in the previous pull-request: #160

Interested parties

@VIVO-project/vivo-committers

Copy link
Member

@gneissone gneissone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works as intended. Confirmed languages are deployed to the home directory. Confirmed only the selected languages are loaded into the application during runtime. Enabling a language that was not deployed throws a warning at startup before running as normal, as expected.

As noted in Slack, this PR does increase the complexity of the home directory structure. Example of new directory:

rdf
├── core
│   ├── abox
│   │   ├── filegraph
│   │   └── firsttime
│   ├── applicationMetadata
│   │   └── firsttime
│   ├── auth
│   │   └── everytime
│   ├── display
│   │   ├── everytime
│   │   └── firsttime
│   ├── displayDisplay
│   │   └── everytime
│   ├── displayTbox
│   │   └── everytime
│   └── tbox
│       ├── filegraph
│       └── firsttime
├── en_US
│   ├── applicationMetadata
│   │   └── everytime
│   ├── display
│   │   └── everytime
│   └── tbox
│       └── everytime

Since we are always deploying files from the language repo dependencies now, we should be able to do away with the core directory at some point [Edit- perhaps not since there will still probably be language-agnostic RDF to be loaded, but the core files could live within the language dependencies only, not here as well]. One additional consequence of this new directory structure is that if people were overwriting files now in the core directory during deployment using a third tier, they will likely have to rearrange the directory structure in their third tier to match.

For clarity, I think it would be preferable that until the files are removed completely, the rdf files included outside the VIVO and Vitro language dependencies are put into the rdf/core directory within the VIVO and Vitro repos themselves, rather than reorganizing the files during the build.

@awoods
Copy link
Member Author

awoods commented Jun 25, 2020

@gneissone : to be clear, for example, are you suggesting the changes to home/src/main/assembly/home.xml be reverted, and the files in home/src/main/resources/rdf be moved into a new directory: home/src/main/resources/rdf/core?

@gneissone
Copy link
Member

@gneissone : to be clear, for example, are you suggesting the changes to home/src/main/assembly/home.xml be reverted, and the files in home/src/main/resources/rdf be moved into a new directory: home/src/main/resources/rdf/core?

Yes, exactly. And likewise in VIVO. I think it makes more sense than the files mysteriously moving into a new directory during mvn install.

@awoods
Copy link
Member Author

awoods commented Jun 25, 2020

The same trickier is also happening in VIVO-languages:
https://github.com/vivo-project/VIVO-languages/pull/57/files

Are you comfortable with that?

@gneissone
Copy link
Member

gneissone commented Jun 25, 2020

Yeah, I think if it's changed here and in VIVO it should also be changed in VIVO-languages.
I guess the overall question is if it will be more obvious for people with existing installer directories (3rd tier) to add the maven black magic to their home.xml file or create a new core directory. It seems more logical to me that the contents of home/src/main/resources are dropped wholesale into home, rather than this specific directory getting special treatment.

@awoods
Copy link
Member Author

awoods commented Jun 25, 2020

@gneissone : I am happy to make the change of moving the location of files around inside the resources directory... if you/we are generally in favor of the more complex rdf directory structure being introduced in this PR.

@gneissone
Copy link
Member

It's fine with me. I guess there are a few alternatives I can think of...

  1. Continue to put all language-agnostic/file system files into a core directory, load all of these every time. Return to old file structure otherwise and use filtering logic on these.
  2. Return to old directory structure, filter out all files with an underscore if there isn't an enabled language suffix following the underscore.
  3. Return to old directory structure, filter out all files with a valid locale (based on Java library) that are not enabled.

I suppose the least disruptive would be options 2 or 3 since custom installer overlays would not need to be reorganized to upgrade. Will be interested to hear other opinions because it's not a big deal to me.

@awoods
Copy link
Member Author

awoods commented Jun 26, 2020

Thanks, @gneissone . I appreciate your articulation of options.
I will wait to hear from others: @vivo-project/vivo-committers ... the community.

Copy link
Member

@gneissone gneissone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new directory structure works for me

rdf
├── abox
│   ├── filegraph
│   └── firsttime
├── applicationMetadata
│   └── firsttime
├── auth
│   └── everytime
├── display
│   ├── everytime
│   └── firsttime
├── displayDisplay
│   └── everytime
├── displayTbox
│   └── everytime
├── i18n
│   ├── de_DE
│   │   ├── applicationMetadata
│   │   │   └── firsttime
│   │   ├── display
│   │   │   └── firsttime
│   │   └── tbox
│   │       ├── everytime
│   │       ├── filegraph
│   │       └── firsttime
└── tbox
    ├── filegraph
    └── firsttime

I have concerns about receiving missing string errors on initial startup and with annotations being in the 'everytime' directory, but those both appear to have been introduced in previous commits and are unrelated to this. Additionally, we need to be sure that files in the home directory that have been moved at some point in the i18n sprints (e.g. https://github.com/vivo-project/VIVO/blob/master/home/src/main/resources/rdf/display/firsttime/aboutPage.n3) are well-documented in the upgrade documentation.

@gneissone gneissone merged commit f2dd7c1 into vivo-project:sprint-i18n Oct 6, 2020
@awoods awoods deleted the vivo-1848 branch October 7, 2020 13:19
roflinn added a commit that referenced this pull request Feb 10, 2021
* Layer uqam updates onto master (minus trailing whitespace)

* Update RDFServiceFactorySingle.java

* Sprint i18n whitespace (#143)

* Removed extraneous whitespace
   - modified:   api/src/main/java/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/BaseEditElementVTwo.java

* move RootUserPolicy.java from VIVO to Vitro repo.

* Remove blank line

* Fixed indentations

* Update whitespace for: TemplateProcessingHelper.java

* Update whitespace for: RDFServiceModel.java

* Removed extraneous whitespaces.

* Tagging UQAM Comments with following tags

-Add-Feature
-Optimization
-Linguistic-Management
-Bug-Correction

* Resolve compilation failures in Vitro tests

* Remove whitespace changes from SelectListGeneratorVTwo.java

* Add null check on field values of RDF Form (#158)

Resolves: https://jira.lyrasis.org/browse/VIVO-1800

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Fix incorrect tool-tip in language selection dropdown (#156)

Resolves: https://jira.lyrasis.org/browse/VIVO-1783

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Sprint i18n/lang filtering model (#159)

* Add language-aware graph filtering instead of layering on additional RDFService

Resolves: https://jira.lyrasis.org/browse/VIVO-1771

* Remove hardcoded link label (#161)

Resolves: https://jira.lyrasis.org/browse/VIVO-1779

* Enable filtering of non-enabled i18n language files from being loaded into triple store (#160)

Define name of available language listing file (found in Vitro-languages)
Update RDFFilesLoader method interfaces to include ServletContext

Part of resolution to: https://jira.lyrasis.org/browse/VIVO-1836

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Add i18n version of Edit page title (#157)

Related to: https://jira.lyrasis.org/browse/VIVO-1779

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Changing ontology extensions for n3 & assigning a base IRI to each (#163)

ontology

Co-authored-by: michelheon <heon@videotorn.ca>
Co-authored-by: Andrew Woods <awoods@duraspace.org>

https://jira.lyrasis.org/browse/VIVO-1862

* Update sprint-i18n with master branch (#166)

* Make data property richtext editor option selectable from UI

* [VIVO-1755] - Better error handling when reasoner disabled (#137)

* Better error handling when reasoner disabled

* Change reasoner error log message to debug

* Extend reasoner status error handling

* Improve reasoner error log message and extend to JenaAdminActions

* Bump up log level for admin action to 'warn' and edit admin panel error message

* Change Model writer lang from "N3-PP" to "N3" (#149)

Resolves: https://jira.lyrasis.org/browse/VIVO-1761

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* [VIVO-1851] - Add 'remove' option to named graph management page (#162)

* Add 'remove' option to named graph management page

Resolves: https://jira.lyrasis.org/browse/VIVO-1851

* [VIVO-1872] - Add download option to SPARQL Query page (#164)

* Add download option to SPARQL Query page

* Set SPARQL query results content type even if downloading

* Address pull request comments

Co-authored-by: gneissone <mbgross@wustl.edu>
Co-authored-by: Ralph O'Flinn <roflinn@users.noreply.github.com>
Co-authored-by: Andrew Woods <awoods@duraspace.org>

* [VIVO-1839] - Use language name for selector instead of flags (#165)

* Use language name for selector instead of flags
* Add country name to language selector
* Increase min-width of language dropdown
* Update data tree comment in languageSelector.ftl
* Min-width for language dropdown
* Language dropdown css adjustment
* Capitalize locale label
* Indent on languageSelector.ftl

Resolves: https://jira.lyrasis.org/browse/VIVO-1839

* Adds internationalization to the admin/sparql-query page (#167)

* Adds internationalization to the admin/sparql-query page

Partial resolution of: https://jira.lyrasis.org/browse/VIVO-1873

* Add i18n for 'save query result'

Related to: https://jira.lyrasis.org/browse/VIVO-1873

* code review

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* removed redundat files which are now available via Vitro- and VIVO-languages

* Making UQAM-optimization aware of https://

* Add parent reference to installer/pom.xml (#174)

Resolves: https://jira.lyrasis.org/browse/VIVO-1903

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Revert non-function RDF changes (#177)

Related to: https://jira.lyrasis.org/browse/VIVO-1905

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Ensure 'other' in Individual->Teaching->advisees->type is translated

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1881

* Re-add logic from commit 7420957

* [VIVO-1812] use i18n translation for validation messages (#179)

* replace constants with i18n text in BasicValidationVTwo
* use constants for i18n template key

Partial resolution of: https://jira.lyrasis.org/browse/VIVO-1812

* added js_string at i18n strings to handle quotes properly, ticket vivo-1842 (#180)

Partial resolution for: https://jira.lyrasis.org/browse/VIVO-1842

* [VIVO-1870] simplify and concat translation for browse by vclass (#182)

* simplify and concat translation for browse by vclass

Partial resolution of: https://jira.lyrasis.org/browse/VIVO-1870

* [VIVO-1900] i18n: added empty check for getCountry, fixing bug with spanish label (es) (#181)

* added empty check for getCountry, fixing bug with spanish label (es), ticket vivo-1900

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1900

* [VIVO 1870] update i18n key to JavaScript mapping (#183)

* update menupage-script i18n key to JavaScript mapping

Follow-on to resolution of: https://jira.lyrasis.org/browse/VIVO-1870

* [VIVO-1837] get i18n bundle from WebappDaoFactoryConfig preferred locales (#178)

* apply i18n text to VClassDaoJena.getLabelForClass
* expose i18n bundle through webapp dao factory interface
* use whole messages for i18n
* if request available use request bundle else use context bundle
* clear cache when context theme directory changes
* make getOverridingLocale from context private
* select locale based on preferred locale from webapp dao factory
* use first preferred local even when no selectable locales available on context
* build default preferred locales from default preferred languages

Resolves: https://jira.lyrasis.org/browse/VIVO-1837

* Ensure that "available langs" include base langs (#185)

Resolves: https://jira.lyrasis.org/browse/VIVO-1922

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Ensure I18nStub is initialized before pertinent tests (#186)

Resolves: https://jira.lyrasis.org/browse/VIVO-1923

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* add additional null checks to ensure context is ready for theme change (#187)

* [VIVO-1915] i18n - Adding a label with language tag through the "new" manageLabelsForindividualAddForm.ftl does not take the setting for language tag (#184)

* Fixed bug when addng a label with language tag through managLabelsForindividualAddForm, re ticket VIVO-1915

* removed the language select for managing multi language labels, ticket vivo-1915

* readded the fix for language selection because of the fr-CA version of the manageLabelsForIndividualftl, ticket vivo-1915

* removed earlier fix, removed comments, modified ManageLabelGenrator, ticket vivo-1915

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1915

* - replaced hard coded "or"s with i18n().or

* [VIVO-1925] i18n: Editing labels results in new label (#188)

* fixed bug: Editing language labels results in new label, ticket vivo-1925

Resolves: https://jira.lyrasis.org/browse/VIVO-1925

* Enable lang selection without need for 'available-langs.properties' (#169)

* Enable lang selection without need for 'available-langs.properties'
Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Reduce number of times QuerySolutions are looped in LanguageFilteringRDFService (#194)

- No functional change in this update

Resolves: https://jira.lyrasis.org/browse/VIVO-1931

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Prevent 'ProcessRdfForm.parseN3ToRDF' from using null linguisticContext (#197)

Resolves: https://jira.lyrasis.org/browse/VIVO-1944

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* [Vivo 1918] i18n: Reload firsttime files on start-up if changed (#195)

Co-authored-by: Andrew Woods <awoods@lyrasis.org>

* [VIVO-1936] i18n: updated the language comment in runtime.properties

* ftl function to capitalize group name affording override

* Further i18n for BasicValidationVTwo.java

* Fixed DeletePropertyController.java - getting localname of property properly (#200)

* Fixed DeletePropertyController.java - getting localname of property properly

Resolves: https://jira.lyrasis.org/browse/VIVO-1816

* Removed hardcoded time units by properties calls in dateTimeWithPrecision.ftl

* Use i18n values for date time form (#204)

Resolves: https://jira.lyrasis.org/browse/VIVO-1953

* VIVO-1929: patch authorizing create individual form (#206)

* patch authorizing create individual form

Resolves: https://jira.lyrasis.org/browse/VIVO-1929

* Issue/vivo 1947 (#205)

* Make data property richtext editor option selectable from UI
* Better error handling when reasoner disabled
* Change reasoner error log message to debug
* Extend reasoner status error handling
* Improve reasoner error log message and extend to JenaAdminActions
* Bump up log level for admin action to 'warn' and edit admin panel error message
* Change Model writer lang from "N3-PP" to "N3" (#149)
* Prevent ontology editor and N3 editing from deleting property values in languages other than the one associated with the editing request. [https://jira.lyrasis.org/browse/VIVO-1947]

Resolves: https://jira.lyrasis.org/browse/VIVO-1947

Co-authored-by: gneissone <mbgross@wustl.edu>
Co-authored-by: Ralph O'Flinn <roflinn@users.noreply.github.com>
Co-authored-by: Andrew Woods <awoods@lyrasis.org>
Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Remove comments

Co-authored-by: Andrew Woods <awoods@duraspace.org>
Co-authored-by: Nicolas D <46490666+nicalico@users.noreply.github.com>
Co-authored-by: VIVO UQAM <62542918+UQAM-VIVO@users.noreply.github.com>
Co-authored-by: Matthias Luehr <luehr@hs-mittweida.de>
Co-authored-by: michelheonuqam <heon.michel@uqam.ca>
Co-authored-by: Brian Lowe <brianjlowe@gmail.com>
Co-authored-by: j-dornbusch <joachim.dornbusch@ehess.fr>
Co-authored-by: Michel Heon <heon@videotron.ca>
Co-authored-by: gneissone <mbgross@wustl.edu>
Co-authored-by: Ralph O'Flinn <roflinn@users.noreply.github.com>
Co-authored-by: dofeldsc <dofeldsc@uos.de>
Co-authored-by: root <root@vivo-development.hs-mittweida.de>
Co-authored-by: gneissone <mbgross@unavco.org>
Co-authored-by: William Welling <wwelling@library.tamu.edu>
Co-authored-by: Kampe <Benjamin.Kampe@tib.eu>
Co-authored-by: Gross, Benjamin <benjamin.gross@clarivate.com>
Co-authored-by: matthiasluehr <60263380+matthiasluehr@users.noreply.github.com>
Co-authored-by: nicolasdickner <dickner.nicolas@uqam.ca>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants