Have per-project glossaries.
- new permissions: add and remove glossary terms (and translate glossary terms in all languages), translate glossary terms
- the "Manage Translators" role should have the permission to add and remove glossary terms and translate glossary terms in all languages
- the "translate glossary terms" permission is added with a checkbox in additon to the "Translate" and "Review" permission checkboxes.
- update description of the "Manage Translators" permission, and change "Translate" to "Translate Content" or something else that distinguishes it from glossary translation.
- anyone with access to view the project can view the glossary in "view only" mode.
- project glossary terms are shown in glossary search results when translating in that project
- terms from the project glossary take precedence over identical terms in the global glossary
Technical Requirement: project glossaries must be stored in a generic way. The project must have a glossary ID that links to the glossary table.
- add HGlossary table with (glossaryId, global (bit))
- contains global glossary (id 0) after initial migration.
- "global" is true for the global glossary, false for everything else
- add column to HGlossaryEntry "glossaryId"
- all existing entries have id of global glossary (id 0)
- add column HProject_Glossary to look up the glossary for a project.
- Initially empty
- When adding a glossary term for a project, if there is no entry in this table yet, add a new row in HGlossary and a row in HProject_Glossary.