From a SAC case:
We'd like to have Greek Lucene indexing support added into JIRA. We've done a core modification for one of our customers, but we would really like to see it in the official codeline.
Objects affected:
- jira/src/etc/languages/default/com/atlassian/jira/web/action/JiraWebActionSupport.properties
admin.jira.allowed.language.greek=Greek
- /jira/src/java/com/atlassian/jira/config/properties/APKeys.java
public class Languages { public static final String ENGLISH = "english"; public static final String GERMAN = "german"; public static final String GREEK = "greek"; public static final String RUSSIAN = "russian"; public static final String CJK = "cjk"; public static final String OTHER = "other"; }
- jira/src/java/com/atlassian/jira/issue/index/JiraAnalyzer.java
/* * Copyright (c) 2002-2004 * All rights reserved. */ package com.atlassian.jira.issue.index; import com.atlassian.jira.ManagerFactory; import com.atlassian.jira.config.properties.APKeys; import com.atlassian.jira.issue.index.analyzer.CJKAnalyzer; import com.atlassian.jira.issue.index.analyzer.EnglishAnalyzer; import com.atlassian.jira.issue.index.analyzer.GermanAnalyzer; import com.atlassian.jira.issue.index.analyzer.SimpleAnalyzer; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.el.GreekAnalyzer; import org.apache.lucene.analysis.el.GreekCharsets; import org.apache.lucene.analysis.ru.RussianAnalyzer; import org.apache.lucene.analysis.ru.RussianCharsets; import java.io.Reader; public class JiraAnalyzer extends Analyzer { public static final Analyzer ANALYZER_FOR_INDEXING = new JiraAnalyzer(true); public static final Analyzer ANALYZER_FOR_SEARCHING = new JiraAnalyzer(false); private final Analyzer englishAnalyzer; private final Analyzer germanAnalyzer; private final Analyzer russianAnalyzer; private final Analyzer cjkAnalyzer; private final Analyzer otherAnalyzer; private final Analyzer greekAnalyzer; public JiraAnalyzer(boolean indexing) { this.englishAnalyzer = new EnglishAnalyzer(indexing); this.germanAnalyzer = new GermanAnalyzer(indexing); this.russianAnalyzer = new RussianAnalyzer(RussianCharsets.UnicodeRussian); this.cjkAnalyzer = new CJKAnalyzer(indexing); this.otherAnalyzer = new SimpleAnalyzer(indexing); this.greekAnalyzer = new GreekAnalyzer(GreekCharsets.UnicodeGreek); } /* * Create a token stream for this analyzer. */ public final TokenStream tokenStream(String fieldname, Reader reader) { final String language = ManagerFactory.getApplicationProperties().getString(APKeys.JIRA_I18N_LANGUAGE_INPUT); if (APKeys.Languages.ENGLISH.equals(language)) { return englishAnalyzer.tokenStream(fieldname, reader); } else if (APKeys.Languages.GERMAN.equals(language)) { return germanAnalyzer.tokenStream(fieldname, reader); } else if (APKeys.Languages.GREEK.equals(language)) { return greekAnalyzer.tokenStream(fieldname, reader); } else if (APKeys.Languages.RUSSIAN.equals(language)) { return russianAnalyzer.tokenStream(fieldname, reader); } else if (APKeys.Languages.CJK.equals(language)) { return cjkAnalyzer.tokenStream(fieldname, reader); } else //'other' or languages that we don't know about yet. { return otherAnalyzer.tokenStream(fieldname, reader); } } }
- jira/src/java/com/atlassian/jira/web/action/admin/EditApplicationProperties.java
public Map getAllowedLanguages() { Map allowedLanguages = new ListOrderedMap(); allowedLanguages.put(APKeys.Languages.ENGLISH, getText("admin.jira.allowed.language.english")); allowedLanguages.put(APKeys.Languages.GERMAN, getText("admin.jira.allowed.language.german")); allowedLanguages.put(APKeys.Languages.GREEK, getText("admin.jira.allowed.language.greek")); allowedLanguages.put(APKeys.Languages.RUSSIAN, getText("admin.jira.allowed.language.russian")); allowedLanguages.put(APKeys.Languages.CJK, getText("admin.jira.allowed.language.cjk")); allowedLanguages.put(APKeys.Languages.OTHER, getText("admin.jira.allowed.language.other")); return allowedLanguages; }
- is incorporated by
-
JRASERVER-13809 Add more indexing and search languages
- Closed