fess korean localization push
1. Add message/label korean properties 2. Add korean analyzer (seunjeon) 3. Add korean dictionary 4. Add seunjoen manager
This commit is contained in:
parent
5bdc83a672
commit
0b36fb91a6
28 changed files with 2933 additions and 4 deletions
123
src/main/java/org/codelibs/fess/app/pager/SeunjeonPager.java
Normal file
123
src/main/java/org/codelibs/fess/app/pager/SeunjeonPager.java
Normal file
|
@ -0,0 +1,123 @@
|
|||
/*
|
||||
* Copyright 2012-2016 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.app.pager;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.codelibs.fess.Constants;
|
||||
|
||||
public class SeunjeonPager implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private int allRecordCount;
|
||||
|
||||
private int allPageCount;
|
||||
|
||||
private boolean existPrePage;
|
||||
|
||||
private boolean existNextPage;
|
||||
|
||||
private List<Integer> pageNumberList;
|
||||
|
||||
private int pageSize;
|
||||
|
||||
private int currentPageNumber;
|
||||
|
||||
public String id;
|
||||
|
||||
public void clear() {
|
||||
allRecordCount = 0;
|
||||
allPageCount = 0;
|
||||
existPrePage = false;
|
||||
existNextPage = false;
|
||||
pageSize = getDefaultPageSize();
|
||||
currentPageNumber = getDefaultCurrentPageNumber();
|
||||
|
||||
id = null;
|
||||
}
|
||||
|
||||
protected int getDefaultPageSize() {
|
||||
return Constants.DEFAULT_ADMIN_PAGE_SIZE;
|
||||
}
|
||||
|
||||
protected int getDefaultCurrentPageNumber() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public int getAllRecordCount() {
|
||||
return allRecordCount;
|
||||
}
|
||||
|
||||
public void setAllRecordCount(final int allRecordCount) {
|
||||
this.allRecordCount = allRecordCount;
|
||||
}
|
||||
|
||||
public int getAllPageCount() {
|
||||
return allPageCount;
|
||||
}
|
||||
|
||||
public void setAllPageCount(final int allPageCount) {
|
||||
this.allPageCount = allPageCount;
|
||||
}
|
||||
|
||||
public boolean isExistPrePage() {
|
||||
return existPrePage;
|
||||
}
|
||||
|
||||
public void setExistPrePage(final boolean existPrePage) {
|
||||
this.existPrePage = existPrePage;
|
||||
}
|
||||
|
||||
public boolean isExistNextPage() {
|
||||
return existNextPage;
|
||||
}
|
||||
|
||||
public void setExistNextPage(final boolean existNextPage) {
|
||||
this.existNextPage = existNextPage;
|
||||
}
|
||||
|
||||
public int getPageSize() {
|
||||
if (pageSize <= 0) {
|
||||
pageSize = getDefaultPageSize();
|
||||
}
|
||||
return pageSize;
|
||||
}
|
||||
|
||||
public void setPageSize(final int pageSize) {
|
||||
this.pageSize = pageSize;
|
||||
}
|
||||
|
||||
public int getCurrentPageNumber() {
|
||||
if (currentPageNumber <= 0) {
|
||||
currentPageNumber = getDefaultCurrentPageNumber();
|
||||
}
|
||||
return currentPageNumber;
|
||||
}
|
||||
|
||||
public void setCurrentPageNumber(final int currentPageNumber) {
|
||||
this.currentPageNumber = currentPageNumber;
|
||||
}
|
||||
|
||||
public List<Integer> getPageNumberList() {
|
||||
return pageNumberList;
|
||||
}
|
||||
|
||||
public void setPageNumberList(final List<Integer> pageNumberList) {
|
||||
this.pageNumberList = pageNumberList;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
* Copyright 2012-2016 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.app.service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.beans.util.BeanUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.app.pager.SeunjeonPager;
|
||||
import org.codelibs.fess.dict.DictionaryFile.PagingList;
|
||||
import org.codelibs.fess.dict.DictionaryManager;
|
||||
import org.codelibs.fess.dict.seunjeon.SeunjeonFile;
|
||||
import org.codelibs.fess.dict.seunjeon.SeunjeonItem;
|
||||
import org.codelibs.fess.dict.synonym.SynonymFile;
|
||||
import org.codelibs.fess.dict.synonym.SynonymItem;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
|
||||
public class SeunjeonService {
|
||||
@Resource
|
||||
protected DictionaryManager dictionaryManager;
|
||||
|
||||
public List<SeunjeonItem> getSeunjeonList(final String dictId, final SeunjeonPager seunjeonPager) {
|
||||
return getSeunjeonFile(dictId).map(file -> {
|
||||
final int pageSize = seunjeonPager.getPageSize();
|
||||
final PagingList<SeunjeonItem> seunjeonList = file.selectList((seunjeonPager.getCurrentPageNumber() - 1) * pageSize, pageSize);
|
||||
|
||||
// update pager
|
||||
BeanUtil.copyBeanToBean(seunjeonList, seunjeonPager, option -> option.include(Constants.PAGER_CONVERSION_RULE));
|
||||
seunjeonList.setPageRangeSize(5);
|
||||
seunjeonPager.setPageNumberList(seunjeonList.createPageNumberList());
|
||||
|
||||
return (List<SeunjeonItem>) seunjeonList;
|
||||
}).orElse(Collections.emptyList());
|
||||
}
|
||||
|
||||
public OptionalEntity<SeunjeonFile> getSeunjeonFile(final String dictId) {
|
||||
return dictionaryManager.getDictionaryFile(dictId).filter(file -> file instanceof SeunjeonFile)
|
||||
.map(file -> OptionalEntity.of((SeunjeonFile) file)).orElse(OptionalEntity.empty());
|
||||
}
|
||||
|
||||
public OptionalEntity<SeunjeonItem> getSeunjeonItem(final String dictId, final long id) {
|
||||
return getSeunjeonFile(dictId).map(file -> file.get(id).get());
|
||||
}
|
||||
|
||||
public void store(final String dictId, final SeunjeonItem seunjeonItem) {
|
||||
getSeunjeonFile(dictId).ifPresent(file -> {
|
||||
if (seunjeonItem.getId() == 0) {
|
||||
file.insert(seunjeonItem);
|
||||
} else {
|
||||
file.update(seunjeonItem);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void delete(final String dictId, final SeunjeonItem seunjeonItem) {
|
||||
getSeunjeonFile(dictId).ifPresent(file -> {
|
||||
file.delete(seunjeonItem);
|
||||
});
|
||||
}
|
||||
}
|
|
@ -0,0 +1,418 @@
|
|||
/*
|
||||
* Copyright 2012-2016 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.app.web.admin.dict.seunjeon;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.beans.util.BeanUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.app.pager.SeunjeonPager;
|
||||
import org.codelibs.fess.app.service.SeunjeonService;
|
||||
import org.codelibs.fess.app.web.CrudMode;
|
||||
import org.codelibs.fess.app.web.admin.dict.AdminDictAction;
|
||||
import org.codelibs.fess.app.web.base.FessAdminAction;
|
||||
import org.codelibs.fess.dict.seunjeon.SeunjeonItem;
|
||||
import org.codelibs.fess.util.RenderDataUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.web.Execute;
|
||||
import org.lastaflute.web.response.ActionResponse;
|
||||
import org.lastaflute.web.response.HtmlResponse;
|
||||
import org.lastaflute.web.response.render.RenderData;
|
||||
import org.lastaflute.web.ruts.process.ActionRuntime;
|
||||
import org.lastaflute.web.validation.VaErrorHook;
|
||||
|
||||
/**
|
||||
* @author nocode
|
||||
*/
|
||||
public class AdminDictSeunjeonAction extends FessAdminAction {
|
||||
|
||||
// ===================================================================================
|
||||
// Attribute
|
||||
// =========
|
||||
@Resource
|
||||
private SeunjeonService seunjeonService;
|
||||
@Resource
|
||||
private SeunjeonPager seunjeonPager;
|
||||
@Resource
|
||||
protected DynamicProperties systemProperties;
|
||||
|
||||
// ===================================================================================
|
||||
// Hook
|
||||
// ======
|
||||
@Override
|
||||
protected void setupHtmlData(final ActionRuntime runtime) {
|
||||
super.setupHtmlData(runtime);
|
||||
runtime.registerData("helpLink", systemHelper.getHelpLink(fessConfig.getOnlineHelpNameDictSeunjeon()));
|
||||
}
|
||||
|
||||
// ===================================================================================
|
||||
// Search Execute
|
||||
// ==============
|
||||
@Execute
|
||||
public HtmlResponse index(final SearchForm form) {
|
||||
validate(form, messages -> {}, () -> asDictIndexHtml());
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonJsp).renderWith(data -> {
|
||||
searchPaging(data, form);
|
||||
});
|
||||
}
|
||||
|
||||
@Execute
|
||||
public HtmlResponse list(final OptionalThing<Integer> pageNumber, final SearchForm form) {
|
||||
validate(form, messages -> {}, () -> asDictIndexHtml());
|
||||
pageNumber.ifPresent(num -> {
|
||||
seunjeonPager.setCurrentPageNumber(pageNumber.get());
|
||||
}).orElse(() -> {
|
||||
seunjeonPager.setCurrentPageNumber(0);
|
||||
});
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonJsp).renderWith(data -> {
|
||||
searchPaging(data, form);
|
||||
});
|
||||
}
|
||||
|
||||
@Execute
|
||||
public HtmlResponse search(final SearchForm form) {
|
||||
validate(form, messages -> {}, () -> asDictIndexHtml());
|
||||
copyBeanToBean(form, seunjeonPager, op -> op.exclude(Constants.PAGER_CONVERSION_RULE));
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonJsp).renderWith(data -> {
|
||||
searchPaging(data, form);
|
||||
});
|
||||
}
|
||||
|
||||
@Execute
|
||||
public HtmlResponse reset(final SearchForm form) {
|
||||
validate(form, messages -> {}, () -> asDictIndexHtml());
|
||||
seunjeonPager.clear();
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonJsp).renderWith(data -> {
|
||||
searchPaging(data, form);
|
||||
});
|
||||
}
|
||||
|
||||
protected void searchPaging(final RenderData data, final SearchForm form) {
|
||||
// page navi
|
||||
RenderDataUtil.register(data, "seunjeonItemItems", seunjeonService.getSeunjeonList(form.dictId, seunjeonPager));
|
||||
|
||||
// restore from pager
|
||||
BeanUtil.copyBeanToBean(seunjeonPager, form, op -> {
|
||||
op.exclude(Constants.PAGER_CONVERSION_RULE);
|
||||
});
|
||||
}
|
||||
|
||||
// ===================================================================================
|
||||
// Edit Execute
|
||||
// ============
|
||||
// -----------------------------------------------------
|
||||
// Entry Page
|
||||
// ----------
|
||||
@Execute
|
||||
public HtmlResponse createnew(final String dictId) {
|
||||
saveToken();
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonEditJsp).useForm(CreateForm.class, op -> {
|
||||
op.setup(form -> {
|
||||
form.initialize();
|
||||
form.crudMode = CrudMode.CREATE;
|
||||
form.dictId = dictId;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@Execute
|
||||
public HtmlResponse edit(final EditForm form) {
|
||||
validate(form, messages -> {}, () -> asListHtml(form.dictId));
|
||||
seunjeonService
|
||||
.getSeunjeonItem(form.dictId, form.id)
|
||||
.ifPresent(entity -> {
|
||||
form.inputs = entity.getInputsValue();
|
||||
form.outputs = entity.getOutputsValue();
|
||||
})
|
||||
.orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, form.getDisplayId()),
|
||||
() -> asListHtml(form.dictId));
|
||||
});
|
||||
saveToken();
|
||||
if (form.crudMode.intValue() == CrudMode.EDIT) {
|
||||
// back
|
||||
form.crudMode = CrudMode.DETAILS;
|
||||
return asDetailsHtml();
|
||||
} else {
|
||||
form.crudMode = CrudMode.EDIT;
|
||||
return asEditHtml();
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Details
|
||||
// -------
|
||||
@Execute
|
||||
public HtmlResponse details(final String dictId, final int crudMode, final long id) {
|
||||
verifyCrudMode(crudMode, CrudMode.DETAILS, dictId);
|
||||
saveToken();
|
||||
return asDetailsHtml().useForm(
|
||||
EditForm.class,
|
||||
op -> {
|
||||
op.setup(form -> {
|
||||
seunjeonService
|
||||
.getSeunjeonItem(dictId, id)
|
||||
.ifPresent(entity -> {
|
||||
form.inputs = entity.getInputsValue();
|
||||
form.outputs = entity.getOutputsValue();
|
||||
})
|
||||
.orElse(() -> {
|
||||
throwValidationError(
|
||||
messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, dictId + ":" + id),
|
||||
() -> asListHtml(dictId));
|
||||
});
|
||||
form.id = id;
|
||||
form.crudMode = crudMode;
|
||||
form.dictId = dictId;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Download
|
||||
// -------
|
||||
@Execute
|
||||
public HtmlResponse downloadpage(final String dictId) {
|
||||
saveToken();
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonDownloadJsp).useForm(DownloadForm.class, op -> {
|
||||
op.setup(form -> {
|
||||
form.dictId = dictId;
|
||||
});
|
||||
}).renderWith(data -> {
|
||||
seunjeonService.getSeunjeonFile(dictId).ifPresent(file -> {
|
||||
RenderDataUtil.register(data, "path", file.getPath());
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsFailedToDownloadSynonymFile(GLOBAL), () -> asDictIndexHtml());
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@Execute
|
||||
public ActionResponse download(final DownloadForm form) {
|
||||
validate(form, messages -> {}, () -> downloadpage(form.dictId));
|
||||
verifyTokenKeep(() -> downloadpage(form.dictId));
|
||||
return seunjeonService.getSeunjeonFile(form.dictId).map(file -> {
|
||||
return asStream(new File(file.getPath()).getName()).contentTypeOctetStream().stream(out -> {
|
||||
try (InputStream inputStream = file.getInputStream()) {
|
||||
out.write(inputStream);
|
||||
}
|
||||
});
|
||||
}).orElseGet(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsFailedToDownloadSynonymFile(GLOBAL), () -> downloadpage(form.dictId));
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Upload
|
||||
// -------
|
||||
@Execute
|
||||
public HtmlResponse uploadpage(final String dictId) {
|
||||
saveToken();
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonUploadJsp).useForm(UploadForm.class, op -> {
|
||||
op.setup(form -> {
|
||||
form.dictId = dictId;
|
||||
});
|
||||
}).renderWith(data -> {
|
||||
seunjeonService.getSeunjeonFile(dictId).ifPresent(file -> {
|
||||
RenderDataUtil.register(data, "path", file.getPath());
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsFailedToDownloadSynonymFile(GLOBAL), () -> asDictIndexHtml());
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@Execute
|
||||
public HtmlResponse upload(final UploadForm form) {
|
||||
validate(form, messages -> {}, () -> uploadpage(form.dictId));
|
||||
verifyToken(() -> uploadpage(form.dictId));
|
||||
return seunjeonService.getSeunjeonFile(form.dictId).map(file -> {
|
||||
try (InputStream inputStream = form.seunjeonFile.getInputStream()) {
|
||||
file.update(inputStream);
|
||||
} catch (final IOException e) {
|
||||
throwValidationError(messages -> messages.addErrorsFailedToUploadSynonymFile(GLOBAL), () -> {
|
||||
return redirectWith(getClass(), moreUrl("uploadpage/" + form.dictId));
|
||||
});
|
||||
}
|
||||
saveInfo(messages -> messages.addSuccessUploadSynonymFile(GLOBAL));
|
||||
return redirectWith(getClass(), moreUrl("uploadpage/" + form.dictId));
|
||||
}).orElseGet(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsFailedToUploadSynonymFile(GLOBAL), () -> uploadpage(form.dictId));
|
||||
return null;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Actually Crud
|
||||
// -------------
|
||||
@Execute
|
||||
public HtmlResponse create(final CreateForm form) {
|
||||
verifyCrudMode(form.crudMode, CrudMode.CREATE, form.dictId);
|
||||
validate(form, messages -> {}, () -> asEditHtml());
|
||||
verifyToken(() -> asEditHtml());
|
||||
createSeunjeonItem(form, () -> asEditHtml()).ifPresent(entity -> {
|
||||
seunjeonService.store(form.dictId, entity);
|
||||
saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudFailedToCreateInstance(GLOBAL), () -> asEditHtml());
|
||||
});
|
||||
return redirectWith(getClass(), moreUrl("list/1").params("dictId", form.dictId));
|
||||
}
|
||||
|
||||
@Execute
|
||||
public HtmlResponse update(final EditForm form) {
|
||||
verifyCrudMode(form.crudMode, CrudMode.EDIT, form.dictId);
|
||||
validate(form, messages -> {}, () -> asEditHtml());
|
||||
verifyToken(() -> asEditHtml());
|
||||
createSeunjeonItem(form, () -> asEditHtml()).ifPresent(entity -> {
|
||||
seunjeonService.store(form.dictId, entity);
|
||||
saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, form.getDisplayId()), () -> asEditHtml());
|
||||
});
|
||||
return redirectWith(getClass(), moreUrl("list/1").params("dictId", form.dictId));
|
||||
}
|
||||
|
||||
@Execute
|
||||
public HtmlResponse delete(final EditForm form) {
|
||||
verifyCrudMode(form.crudMode, CrudMode.DETAILS, form.dictId);
|
||||
verifyToken(() -> asDetailsHtml());
|
||||
validate(form, messages -> {}, () -> asDetailsHtml());
|
||||
seunjeonService
|
||||
.getSeunjeonItem(form.dictId, form.id)
|
||||
.ifPresent(entity -> {
|
||||
seunjeonService.delete(form.dictId, entity);
|
||||
saveInfo(messages -> messages.addSuccessCrudDeleteCrudTable(GLOBAL));
|
||||
})
|
||||
.orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, form.getDisplayId()),
|
||||
() -> asDetailsHtml());
|
||||
});
|
||||
return redirectWith(getClass(), moreUrl("list/1").params("dictId", form.dictId));
|
||||
}
|
||||
|
||||
//===================================================================================
|
||||
// Assist Logic
|
||||
// ============
|
||||
|
||||
private OptionalEntity<SeunjeonItem> getEntity(final CreateForm form) {
|
||||
switch (form.crudMode) {
|
||||
case CrudMode.CREATE:
|
||||
final SeunjeonItem entity = new SeunjeonItem(0, StringUtil.EMPTY_STRINGS, StringUtil.EMPTY_STRINGS);
|
||||
return OptionalEntity.of(entity);
|
||||
case CrudMode.EDIT:
|
||||
if (form instanceof EditForm) {
|
||||
return seunjeonService.getSeunjeonItem(form.dictId, ((EditForm) form).id);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return OptionalEntity.empty();
|
||||
}
|
||||
|
||||
protected OptionalEntity<SeunjeonItem> createSeunjeonItem(final CreateForm form, final VaErrorHook hook) {
|
||||
return getEntity(form).map(entity -> {
|
||||
final String[] newInputs = splitLine(form.inputs);
|
||||
validateSeunjeonString(newInputs, "inputs", hook);
|
||||
entity.setNewInputs(newInputs);
|
||||
final String[] newOutputs = splitLine(form.outputs);
|
||||
validateSeunjeonString(newOutputs, "outputs", hook);
|
||||
entity.setNewOutputs(newOutputs);
|
||||
return entity;
|
||||
});
|
||||
}
|
||||
|
||||
// ===================================================================================
|
||||
// Small Helper
|
||||
// ============
|
||||
protected void verifyCrudMode(final int crudMode, final int expectedMode, final String dictId) {
|
||||
if (crudMode != expectedMode) {
|
||||
throwValidationError(messages -> {
|
||||
messages.addErrorsCrudInvalidMode(GLOBAL, String.valueOf(expectedMode), String.valueOf(crudMode));
|
||||
}, () -> asListHtml(dictId));
|
||||
}
|
||||
}
|
||||
|
||||
private void validateSeunjeonString(final String[] values, final String propertyName, final VaErrorHook hook) {
|
||||
if (values.length == 0) {
|
||||
return;
|
||||
}
|
||||
for (final String value : values) {
|
||||
if (value.indexOf(',') >= 0) {
|
||||
throwValidationError(messages -> {
|
||||
messages.addErrorsInvalidStrIsIncluded(propertyName, value, ",");
|
||||
}, hook);
|
||||
}
|
||||
if (value.indexOf("=>") >= 0) {
|
||||
throwValidationError(messages -> {
|
||||
messages.addErrorsInvalidStrIsIncluded(propertyName, value, "=>");
|
||||
}, hook);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String[] splitLine(final String value) {
|
||||
if (StringUtil.isBlank(value)) {
|
||||
return StringUtil.EMPTY_STRINGS;
|
||||
}
|
||||
final String[] values = value.split("[\r\n]");
|
||||
final List<String> list = new ArrayList<>(values.length);
|
||||
for (final String line : values) {
|
||||
if (StringUtil.isNotBlank(line)) {
|
||||
list.add(line.trim());
|
||||
}
|
||||
}
|
||||
return list.toArray(new String[list.size()]);
|
||||
}
|
||||
|
||||
// ===================================================================================
|
||||
// JSP
|
||||
// =========
|
||||
|
||||
protected HtmlResponse asDictIndexHtml() {
|
||||
return redirect(AdminDictAction.class);
|
||||
}
|
||||
|
||||
private HtmlResponse asListHtml(final String dictId) {
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonJsp).renderWith(data -> {
|
||||
RenderDataUtil.register(data, "seunjeonItemItems", seunjeonService.getSeunjeonList(dictId, seunjeonPager));
|
||||
}).useForm(SearchForm.class, setup -> {
|
||||
setup.setup(form -> {
|
||||
copyBeanToBean(seunjeonPager, form, op -> op.include("id"));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private HtmlResponse asEditHtml() {
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonEditJsp);
|
||||
}
|
||||
|
||||
private HtmlResponse asDetailsHtml() {
|
||||
return asHtml(path_AdminDictSeunjeon_AdminDictSeunjeonDetailsJsp);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright 2012-2016 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.app.web.admin.dict.seunjeon;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
import org.codelibs.fess.app.web.CrudMode;
|
||||
import org.lastaflute.web.validation.Required;
|
||||
import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
|
||||
|
||||
/**
|
||||
* @author nocode
|
||||
*/
|
||||
public class CreateForm implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Required
|
||||
public String dictId;
|
||||
|
||||
@ValidateTypeFailure
|
||||
public Integer crudMode;
|
||||
|
||||
@Required
|
||||
@Size(max = 1000)
|
||||
public String inputs;
|
||||
|
||||
@Required
|
||||
@Size(max = 1000)
|
||||
public String outputs;
|
||||
|
||||
public void initialize() {
|
||||
crudMode = CrudMode.CREATE;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
* Copyright 2012-2016 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.app.web.admin.dict.seunjeon;
|
||||
|
||||
import org.lastaflute.web.validation.Required;
|
||||
|
||||
public class DownloadForm {
|
||||
@Required
|
||||
public String dictId;
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright 2012-2016 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.app.web.admin.dict.seunjeon;
|
||||
|
||||
import org.lastaflute.web.validation.Required;
|
||||
import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
|
||||
|
||||
/**
|
||||
* @author nocode
|
||||
*/
|
||||
public class EditForm extends CreateForm {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Required
|
||||
@ValidateTypeFailure
|
||||
public Long id;
|
||||
|
||||
public String getDisplayId() {
|
||||
return dictId + ":" + id;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Copyright 2012-2016 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.app.web.admin.dict.seunjeon;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.lastaflute.web.validation.Required;
|
||||
|
||||
/**
|
||||
* @author nocode
|
||||
*/
|
||||
public class SearchForm implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Required
|
||||
public String dictId;
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
* Copyright 2012-2016 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.app.web.admin.dict.seunjeon;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.lastaflute.web.ruts.multipart.MultipartFormFile;
|
||||
import org.lastaflute.web.validation.Required;
|
||||
|
||||
/**
|
||||
* @author nocode
|
||||
*/
|
||||
public class UploadForm implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Required
|
||||
public String dictId;
|
||||
|
||||
@Required
|
||||
public MultipartFormFile seunjeonFile;
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package org.codelibs.fess.dict.seunjeon;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import org.codelibs.fess.dict.DictionaryCreator;
|
||||
import org.codelibs.fess.dict.DictionaryFile;
|
||||
import org.codelibs.fess.dict.DictionaryItem;
|
||||
|
||||
public class SeunjeonCreator extends DictionaryCreator {
|
||||
|
||||
public SeunjeonCreator() {
|
||||
super("seunjeon.*\\.txt");
|
||||
}
|
||||
|
||||
public SeunjeonCreator(final String pattern) {
|
||||
super(pattern);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DictionaryFile<? extends DictionaryItem> newDictionaryFile(final String id, final String path, final Date timestamp) {
|
||||
return new SeunjeonFile(id, path, timestamp).manager(dictionaryManager);
|
||||
}
|
||||
|
||||
}
|
349
src/main/java/org/codelibs/fess/dict/seunjeon/SeunjeonFile.java
Normal file
349
src/main/java/org/codelibs/fess/dict/seunjeon/SeunjeonFile.java
Normal file
|
@ -0,0 +1,349 @@
|
|||
package org.codelibs.fess.dict.seunjeon;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.Closeable;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.dict.DictionaryException;
|
||||
import org.codelibs.fess.dict.DictionaryFile;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
|
||||
public class SeunjeonFile extends DictionaryFile<SeunjeonItem> {
|
||||
private static final String SEUNJEON = "seunjeon";
|
||||
|
||||
List<SeunjeonItem> seunjeonItemList;
|
||||
|
||||
public SeunjeonFile(final String id, final String path, final Date timestamp) {
|
||||
super(id, path, timestamp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return SEUNJEON;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPath() {
|
||||
return path;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized OptionalEntity<SeunjeonItem> get(final long id) {
|
||||
if (seunjeonItemList == null) {
|
||||
reload(null, null);
|
||||
}
|
||||
|
||||
for (final SeunjeonItem SeunjeonItem : seunjeonItemList) {
|
||||
if (id == SeunjeonItem.getId()) {
|
||||
return OptionalEntity.of(SeunjeonItem);
|
||||
}
|
||||
}
|
||||
return OptionalEntity.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized PagingList<SeunjeonItem> selectList(final int offset, final int size) {
|
||||
if (seunjeonItemList == null) {
|
||||
reload(null, null);
|
||||
}
|
||||
|
||||
if (offset >= seunjeonItemList.size() || offset < 0) {
|
||||
return new PagingList<SeunjeonItem>(Collections.<SeunjeonItem> emptyList(), offset, size, seunjeonItemList.size());
|
||||
}
|
||||
|
||||
int toIndex = offset + size;
|
||||
if (toIndex > seunjeonItemList.size()) {
|
||||
toIndex = seunjeonItemList.size();
|
||||
}
|
||||
|
||||
return new PagingList<SeunjeonItem>(seunjeonItemList.subList(offset, toIndex), offset, size, seunjeonItemList.size());
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void insert(final SeunjeonItem item) {
|
||||
try (SynonymUpdater updater = new SynonymUpdater(item)) {
|
||||
reload(updater, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void update(final SeunjeonItem item) {
|
||||
try (SynonymUpdater updater = new SynonymUpdater(item)) {
|
||||
reload(updater, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void delete(final SeunjeonItem item) {
|
||||
final SeunjeonItem SeunjeonItem = item;
|
||||
SeunjeonItem.setNewInputs(StringUtil.EMPTY_STRINGS);
|
||||
SeunjeonItem.setNewOutputs(StringUtil.EMPTY_STRINGS);
|
||||
try (SynonymUpdater updater = new SynonymUpdater(item)) {
|
||||
reload(updater, null);
|
||||
}
|
||||
}
|
||||
|
||||
protected void reload(final SynonymUpdater updater, final InputStream in) {
|
||||
final List<SeunjeonItem> itemList = new ArrayList<SeunjeonItem>();
|
||||
try (BufferedReader reader =
|
||||
new BufferedReader(new InputStreamReader(in != null ? in : dictionaryManager.getContentInputStream(this), Constants.UTF_8))) {
|
||||
long id = 0;
|
||||
String line = null;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
if (line.length() == 0 || line.charAt(0) == '#') {
|
||||
if (updater != null) {
|
||||
updater.write(line);
|
||||
}
|
||||
continue; // ignore empty lines and comments
|
||||
}
|
||||
|
||||
String inputs[];
|
||||
String outputs[];
|
||||
|
||||
final List<String> sides = split(line, "=>");
|
||||
if (sides.size() > 1) { // explicit mapping
|
||||
if (sides.size() != 2) {
|
||||
throw new DictionaryException("more than one explicit mapping specified on the same line");
|
||||
}
|
||||
final List<String> inputStrings = split(sides.get(0), ",");
|
||||
inputs = new String[inputStrings.size()];
|
||||
for (int i = 0; i < inputs.length; i++) {
|
||||
inputs[i] = unescape(inputStrings.get(i)).trim();
|
||||
}
|
||||
|
||||
final List<String> outputStrings = split(sides.get(1), ",");
|
||||
outputs = new String[outputStrings.size()];
|
||||
for (int i = 0; i < outputs.length; i++) {
|
||||
outputs[i] = unescape(outputStrings.get(i)).trim();
|
||||
}
|
||||
|
||||
if (inputs.length > 0 && outputs.length > 0) {
|
||||
id++;
|
||||
final SeunjeonItem item = new SeunjeonItem(id, inputs, outputs);
|
||||
if (updater != null) {
|
||||
final SeunjeonItem newItem = updater.write(item);
|
||||
if (newItem != null) {
|
||||
itemList.add(newItem);
|
||||
} else {
|
||||
id--;
|
||||
}
|
||||
} else {
|
||||
itemList.add(item);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
final List<String> inputStrings = split(line, ",");
|
||||
inputs = new String[inputStrings.size()];
|
||||
for (int i = 0; i < inputs.length; i++) {
|
||||
inputs[i] = unescape(inputStrings.get(i)).trim();
|
||||
}
|
||||
|
||||
if (inputs.length > 0) {
|
||||
id++;
|
||||
final SeunjeonItem item = new SeunjeonItem(id, inputs, inputs);
|
||||
if (updater != null) {
|
||||
final SeunjeonItem newItem = updater.write(item);
|
||||
if (newItem != null) {
|
||||
itemList.add(newItem);
|
||||
} else {
|
||||
id--;
|
||||
}
|
||||
} else {
|
||||
itemList.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (updater != null) {
|
||||
final SeunjeonItem item = updater.commit();
|
||||
if (item != null) {
|
||||
itemList.add(item);
|
||||
}
|
||||
}
|
||||
seunjeonItemList = itemList;
|
||||
} catch (final IOException e) {
|
||||
throw new DictionaryException("Failed to parse " + path, e);
|
||||
}
|
||||
}
|
||||
|
||||
private static List<String> split(final String s, final String separator) {
|
||||
final List<String> list = new ArrayList<String>(2);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int pos = 0;
|
||||
final int end = s.length();
|
||||
while (pos < end) {
|
||||
if (s.startsWith(separator, pos)) {
|
||||
if (sb.length() > 0) {
|
||||
list.add(sb.toString());
|
||||
sb = new StringBuilder();
|
||||
}
|
||||
pos += separator.length();
|
||||
continue;
|
||||
}
|
||||
|
||||
char ch = s.charAt(pos++);
|
||||
if (ch == '\\') {
|
||||
sb.append(ch);
|
||||
if (pos >= end) {
|
||||
break; // ERROR, or let it go?
|
||||
}
|
||||
ch = s.charAt(pos++);
|
||||
}
|
||||
|
||||
sb.append(ch);
|
||||
}
|
||||
|
||||
if (sb.length() > 0) {
|
||||
list.add(sb.toString());
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private String unescape(final String s) {
|
||||
if (s.indexOf('\\') >= 0) {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < s.length(); i++) {
|
||||
final char ch = s.charAt(i);
|
||||
if (ch == '\\' && i < s.length() - 1) {
|
||||
sb.append(s.charAt(++i));
|
||||
} else {
|
||||
sb.append(ch);
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
public String getSimpleName() {
|
||||
return new File(path).getName();
|
||||
}
|
||||
|
||||
public InputStream getInputStream() throws IOException {
|
||||
return new BufferedInputStream(dictionaryManager.getContentInputStream(this));
|
||||
}
|
||||
|
||||
public synchronized void update(final InputStream in) throws IOException {
|
||||
try (SynonymUpdater updater = new SynonymUpdater(null)) {
|
||||
reload(updater, in);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SynonymFile [path=" + path + ", seunjeonItemList=" + seunjeonItemList + ", id=" + id + "]";
|
||||
}
|
||||
|
||||
protected class SynonymUpdater implements Closeable {
|
||||
|
||||
protected boolean isCommit = false;
|
||||
|
||||
protected File newFile;
|
||||
|
||||
protected Writer writer;
|
||||
|
||||
protected SeunjeonItem item;
|
||||
|
||||
protected SynonymUpdater(final SeunjeonItem newItem) {
|
||||
try {
|
||||
newFile = File.createTempFile(SEUNJEON, ".txt");
|
||||
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(newFile), Constants.UTF_8));
|
||||
} catch (final IOException e) {
|
||||
if (newFile != null) {
|
||||
newFile.delete();
|
||||
}
|
||||
throw new DictionaryException("Failed to write a userDict file.", e);
|
||||
}
|
||||
item = newItem;
|
||||
}
|
||||
|
||||
public SeunjeonItem write(final SeunjeonItem oldItem) {
|
||||
try {
|
||||
if (item != null && item.getId() == oldItem.getId() && item.isUpdated()) {
|
||||
if (item.equals(oldItem)) {
|
||||
try {
|
||||
if (!item.isDeleted()) {
|
||||
// update
|
||||
writer.write(item.toLineString());
|
||||
writer.write(Constants.LINE_SEPARATOR);
|
||||
return new SeunjeonItem(item.getId(), item.getNewInputs(), item.getNewOutputs());
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} finally {
|
||||
item.setNewInputs(null);
|
||||
item.setNewOutputs(null);
|
||||
}
|
||||
} else {
|
||||
throw new DictionaryException("Seunjeon file was updated: old=" + oldItem + " : new=" + item);
|
||||
}
|
||||
} else {
|
||||
writer.write(oldItem.toLineString());
|
||||
writer.write(Constants.LINE_SEPARATOR);
|
||||
return oldItem;
|
||||
}
|
||||
} catch (final IOException e) {
|
||||
throw new DictionaryException("Failed to write: " + oldItem + " -> " + item, e);
|
||||
}
|
||||
}
|
||||
|
||||
public void write(final String line) {
|
||||
try {
|
||||
writer.write(line);
|
||||
writer.write(Constants.LINE_SEPARATOR);
|
||||
} catch (final IOException e) {
|
||||
throw new DictionaryException("Failed to write: " + line, e);
|
||||
}
|
||||
}
|
||||
|
||||
public SeunjeonItem commit() {
|
||||
isCommit = true;
|
||||
if (item != null && item.isUpdated()) {
|
||||
try {
|
||||
writer.write(item.toLineString());
|
||||
writer.write(Constants.LINE_SEPARATOR);
|
||||
return item;
|
||||
} catch (final IOException e) {
|
||||
throw new DictionaryException("Failed to write: " + item, e);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
try {
|
||||
writer.flush();
|
||||
} catch (final IOException e) {
|
||||
// ignore
|
||||
}
|
||||
IOUtils.closeQuietly(writer);
|
||||
|
||||
if (isCommit) {
|
||||
try {
|
||||
dictionaryManager.store(SeunjeonFile.this, newFile);
|
||||
} finally {
|
||||
newFile.delete();
|
||||
}
|
||||
} else {
|
||||
newFile.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
150
src/main/java/org/codelibs/fess/dict/seunjeon/SeunjeonItem.java
Normal file
150
src/main/java/org/codelibs/fess/dict/seunjeon/SeunjeonItem.java
Normal file
|
@ -0,0 +1,150 @@
|
|||
package org.codelibs.fess.dict.seunjeon;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.dict.DictionaryItem;
|
||||
|
||||
public class SeunjeonItem extends DictionaryItem {
|
||||
private final String[] inputs;
|
||||
|
||||
private final String[] outputs;
|
||||
|
||||
private String[] newInputs;
|
||||
|
||||
private String[] newOutputs;
|
||||
|
||||
public SeunjeonItem(final long id, final String[] inputs, final String[] outputs) {
|
||||
this.id = id;
|
||||
this.inputs = inputs;
|
||||
this.outputs = outputs;
|
||||
Arrays.sort(inputs);
|
||||
if (inputs != outputs) {
|
||||
Arrays.sort(outputs);
|
||||
}
|
||||
|
||||
if (id == 0) {
|
||||
// create
|
||||
newInputs = inputs;
|
||||
newOutputs = outputs;
|
||||
}
|
||||
}
|
||||
|
||||
public String[] getNewInputs() {
|
||||
return newInputs;
|
||||
}
|
||||
|
||||
public void setNewInputs(final String[] newInputs) {
|
||||
this.newInputs = newInputs;
|
||||
}
|
||||
|
||||
public String[] getNewOutputs() {
|
||||
return newOutputs;
|
||||
}
|
||||
|
||||
public void setNewOutputs(final String[] newOutputs) {
|
||||
this.newOutputs = newOutputs;
|
||||
}
|
||||
|
||||
public String[] getInputs() {
|
||||
return inputs;
|
||||
}
|
||||
|
||||
public String getInputsValue() {
|
||||
if (inputs == null) {
|
||||
return StringUtil.EMPTY;
|
||||
}
|
||||
return String.join("\n", inputs);
|
||||
}
|
||||
|
||||
public String[] getOutputs() {
|
||||
return outputs;
|
||||
}
|
||||
|
||||
public String getOutputsValue() {
|
||||
if (outputs == null) {
|
||||
return StringUtil.EMPTY;
|
||||
}
|
||||
return String.join("\n", outputs);
|
||||
}
|
||||
|
||||
public boolean isUpdated() {
|
||||
return newInputs != null && newOutputs != null;
|
||||
}
|
||||
|
||||
public boolean isDeleted() {
|
||||
return isUpdated() && newInputs.length == 0;
|
||||
}
|
||||
|
||||
public void sort() {
|
||||
if (inputs != null) {
|
||||
Arrays.sort(inputs);
|
||||
}
|
||||
if (outputs != null) {
|
||||
Arrays.sort(outputs);
|
||||
}
|
||||
if (newInputs != null) {
|
||||
Arrays.sort(newInputs);
|
||||
}
|
||||
if (newOutputs != null) {
|
||||
Arrays.sort(newOutputs);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + Arrays.hashCode(inputs);
|
||||
result = prime * result + Arrays.hashCode(outputs);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
final SeunjeonItem other = (SeunjeonItem) obj;
|
||||
sort();
|
||||
other.sort();
|
||||
if (!Arrays.equals(inputs, other.inputs)) {
|
||||
return false;
|
||||
}
|
||||
if (!Arrays.equals(outputs, other.outputs)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SynonymItem [id=" + id + ", inputs=" + Arrays.toString(inputs) + ", outputs=" + Arrays.toString(outputs) + ", newInputs="
|
||||
+ Arrays.toString(newInputs) + ", newOutputs=" + Arrays.toString(newOutputs) + "]";
|
||||
}
|
||||
|
||||
public String toLineString() {
|
||||
if (isUpdated()) {
|
||||
if (Arrays.equals(newInputs, newOutputs)) {
|
||||
return StringUtils.join(newInputs, ",");
|
||||
} else {
|
||||
return StringUtils.join(newInputs, ",") + "=>" + StringUtils.join(newOutputs, ",");
|
||||
}
|
||||
} else {
|
||||
if (Arrays.equals(inputs, outputs)) {
|
||||
return StringUtils.join(inputs, ",");
|
||||
} else {
|
||||
return StringUtils.join(inputs, ",") + "=>" + StringUtils.join(outputs, ",");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -107,6 +107,21 @@ public interface FessHtmlPath {
|
|||
/** The path of the HTML: /admin/dict/synonym/admin_dict_synonym_upload.jsp */
|
||||
HtmlNext path_AdminDictSynonym_AdminDictSynonymUploadJsp = new HtmlNext("/admin/dict/synonym/admin_dict_synonym_upload.jsp");
|
||||
|
||||
/** The path of the HTML: /admin/dict/seunjeon/admin_dict_seunjeon.jsp */
|
||||
HtmlNext path_AdminDictSeunjeon_AdminDictSeunjeonJsp = new HtmlNext("/admin/dict/seunjeon/admin_dict_seunjeon.jsp");
|
||||
|
||||
/** The path of the HTML: /admin/dict/synonym/admin_dict_seunjeon_details.jsp */
|
||||
HtmlNext path_AdminDictSeunjeon_AdminDictSeunjeonDetailsJsp = new HtmlNext("/admin/dict/seunjeon/admin_dict_seunjeon_details.jsp");
|
||||
|
||||
/** The path of the HTML: /admin/dict/synonym/admin_dict_seunjeon_download.jsp */
|
||||
HtmlNext path_AdminDictSeunjeon_AdminDictSeunjeonDownloadJsp = new HtmlNext("/admin/dict/seunjeon/admin_dict_seunjeon_download.jsp");
|
||||
|
||||
/** The path of the HTML: /admin/dict/synonym/admin_dict_seunjeon_edit.jsp */
|
||||
HtmlNext path_AdminDictSeunjeon_AdminDictSeunjeonEditJsp = new HtmlNext("/admin/dict/seunjeon/admin_dict_seunjeon_edit.jsp");
|
||||
|
||||
/** The path of the HTML: /admin/dict/synonym/admin_dict_seunjeon_upload.jsp */
|
||||
HtmlNext path_AdminDictSeunjeon_AdminDictSeunjeonUploadJsp = new HtmlNext("/admin/dict/seunjeon/admin_dict_seunjeon_upload.jsp");
|
||||
|
||||
/** The path of the HTML: /admin/duplicatehost/admin_duplicatehost.jsp */
|
||||
HtmlNext path_AdminDuplicatehost_AdminDuplicatehostJsp = new HtmlNext("/admin/duplicatehost/admin_duplicatehost.jsp");
|
||||
|
||||
|
|
|
@ -595,6 +595,9 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
|
|||
/** The key of the configuration. e.g. synonym */
|
||||
String ONLINE_HELP_NAME_DICT_SYNONYM = "online.help.name.dict.synonym";
|
||||
|
||||
/** The key of the configuration. e.g. seunjeon */
|
||||
String ONLINE_HELP_NAME_DICT_SEUNJEON = "online.help.name.dict.seunjeon";
|
||||
|
||||
/** The key of the configuration. e.g. dict */
|
||||
String ONLINE_HELP_NAME_DICT = "online.help.name.dict";
|
||||
|
||||
|
@ -2759,6 +2762,13 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
|
|||
*/
|
||||
String getOnlineHelpNameDictSynonym();
|
||||
|
||||
/**
|
||||
* Get the value for the key 'online.help.name.dict.seunjeon'. <br>
|
||||
* The value is, e.g. seunjeon <br>
|
||||
* @return The value of found property. (NotNull: if not found, exception but basically no way)
|
||||
*/
|
||||
String getOnlineHelpNameDictSeunjeon();
|
||||
|
||||
/**
|
||||
* Get the value for the key 'online.help.name.dict'. <br>
|
||||
* The value is, e.g. dict <br>
|
||||
|
@ -4565,7 +4575,11 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
|
|||
public String getOnlineHelpNameDictSynonym() {
|
||||
return get(FessConfig.ONLINE_HELP_NAME_DICT_SYNONYM);
|
||||
}
|
||||
|
||||
|
||||
public String getOnlineHelpNameDictSeunjeon() {
|
||||
return get(FessConfig.ONLINE_HELP_NAME_DICT_SEUNJEON);
|
||||
}
|
||||
|
||||
public String getOnlineHelpNameDict() {
|
||||
return get(FessConfig.ONLINE_HELP_NAME_DICT);
|
||||
}
|
||||
|
|
|
@ -22,6 +22,10 @@
|
|||
<arg>"fess"</arg>
|
||||
<arg>"ja/kuromoji.txt"</arg>
|
||||
</postConstruct>
|
||||
<postConstruct name="addConfigFile">
|
||||
<arg>"fess"</arg>
|
||||
<arg>"ko/seunjeon.txt"</arg>
|
||||
</postConstruct>
|
||||
<!-- fess index -->
|
||||
<postConstruct name="addIndexConfig">
|
||||
<arg>"fess/doc"</arg>
|
||||
|
|
|
@ -342,6 +342,7 @@ online.help.name.reqheader=reqheader
|
|||
online.help.name.dict.synonym=synonym
|
||||
online.help.name.dict=dict
|
||||
online.help.name.dict.kuromoji=kuromoji
|
||||
online.help.name.dict.seunjeon=seunjeon
|
||||
online.help.name.webconfig=webconfig
|
||||
online.help.name.searchlist=searchlist
|
||||
online.help.name.log=log
|
||||
|
|
|
@ -16,7 +16,12 @@
|
|||
<component name="synonymCreator"
|
||||
class="org.codelibs.fess.dict.synonym.SynonymCreator">
|
||||
</component>
|
||||
<component name="userDictCreator"
|
||||
class="org.codelibs.fess.dict.seunjeon.SeunjeonCreator">
|
||||
</component>
|
||||
<!--
|
||||
<component name="userDictCreator"
|
||||
class="org.codelibs.fess.dict.kuromoji.KuromojiCreator">
|
||||
</component>
|
||||
-->
|
||||
</components>
|
||||
|
|
|
@ -105,6 +105,10 @@
|
|||
"discard_punctuation": false,
|
||||
"reload_interval":"1m"
|
||||
},
|
||||
"seunjeon_default_tokenizer": {
|
||||
"type": "seunjeon_tokenizer",
|
||||
"user_dict_path": "${fess.dictionary.path}ko/seunjeon.txt"
|
||||
},
|
||||
"unigram_synonym_tokenizer": {
|
||||
"type": "ngram_synonym",
|
||||
"n": "1",
|
||||
|
@ -145,6 +149,10 @@
|
|||
"possessive_stemmer_en_filter"
|
||||
]
|
||||
},
|
||||
"korean_analyzer": {
|
||||
"type": "custom",
|
||||
"tokenizer":"seunjeon_default_tokenizer"
|
||||
},
|
||||
"empty_analyzer": {
|
||||
"type": "custom",
|
||||
"tokenizer": "standard",
|
||||
|
|
|
@ -210,7 +210,7 @@
|
|||
"match": "*_ko",
|
||||
"mapping": {
|
||||
"type": "string",
|
||||
"analyzer": "empty_analyzer"
|
||||
"analyzer": "korean_analyzer"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -449,7 +449,7 @@
|
|||
"content": {
|
||||
"type": "langstring",
|
||||
"lang_field": "lang",
|
||||
"analyzer": "standard_analyzer",
|
||||
"analyzer": "korean_analyzer",
|
||||
"term_vector": "with_positions_offsets"
|
||||
},
|
||||
"content_length": {
|
||||
|
@ -520,7 +520,7 @@
|
|||
"title": {
|
||||
"type": "langstring",
|
||||
"lang_field": "lang",
|
||||
"analyzer": "standard_analyzer",
|
||||
"analyzer": "korean_analyzer",
|
||||
"term_vector": "with_positions_offsets"
|
||||
},
|
||||
"url": {
|
||||
|
|
3
src/main/resources/fess_indices/fess/ko/seunjeon.txt
Normal file
3
src/main/resources/fess_indices/fess/ko/seunjeon.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
덕후
|
||||
버카충
|
||||
낄끼빠빠
|
|
@ -575,6 +575,20 @@ labels.dict_synonym_target=Target
|
|||
labels.dict_synonym_button_download=Download
|
||||
labels.dict_synonym_button_upload=Upload
|
||||
labels.dict_synonym_file=Synonym File
|
||||
labels.dict_seunjeon_configuration = Seunjeon List
|
||||
labels.dict_seunjeon_title = Seunjeon List
|
||||
labels.dict_seunjeon_list_link = List
|
||||
labels.dict_seunjeon_link_create = Create New
|
||||
labels.dict_seunjeon_link_edit = Edit
|
||||
labels.dict_seunjeon_link_delete = Delete
|
||||
labels.dict_seunjeon_link_details = Details
|
||||
labels.dict_seunjeon_link_download = Download
|
||||
labels.dict_seunjeon_link_upload = Upload
|
||||
labels.dict_seunjeon_source = Source
|
||||
labels.dict_seunjeon_target = Target
|
||||
labels.dict_seunjeon_button_download = Download
|
||||
labels.dict_seunjeon_button_upload = Upload
|
||||
labels.dict_seunjeon_file = Seunjeon File
|
||||
labels.dict_kuromoji_configuration=Kuromoji List
|
||||
labels.dict_kuromoji_title=Kuromoji List
|
||||
labels.dict_kuromoji_list_link=List
|
||||
|
|
|
@ -571,6 +571,20 @@ labels.dict_synonym_target=\u5909\u63db\u5f8c
|
|||
labels.dict_synonym_button_download=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
|
||||
labels.dict_synonym_button_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
|
||||
labels.dict_synonym_file=\u540c\u7fa9\u8a9e\u30d5\u30a1\u30a4\u30eb
|
||||
labels.dict_seunjeon_configuration = Seunjeon\u4e00\u89a7
|
||||
labels.dict_seunjeon_title = Seunjeon\u4e00\u89a7
|
||||
labels.dict_seunjeon_list_link = \u4e00\u89a7
|
||||
labels.dict_seunjeon_link_create = \u65b0\u898f\u4f5c\u6210
|
||||
labels.dict_seunjeon_link_edit = \u7de8\u96c6
|
||||
labels.dict_seunjeon_link_delete = \u524a\u9664
|
||||
labels.dict_seunjeon_link_details = \u8a73\u7d30
|
||||
labels.dict_seunjeon_link_download = \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
|
||||
labels.dict_seunjeon_link_upload = \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
|
||||
labels.dict_seunjeon_source = \u5909\u63db\u5143
|
||||
labels.dict_seunjeon_target = \u5909\u63db\u5f8c
|
||||
labels.dict_seunjeon_button_download = \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
|
||||
labels.dict_seunjeon_button_upload = \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
|
||||
labels.dict_seunjeon_file = Seunjeon\u30d5\u30a1\u30a4\u30eb
|
||||
labels.dict_kuromoji_configuration=Kuromoji\u4e00\u89a7
|
||||
labels.dict_kuromoji_title=Kuromoji\u4e00\u89a7
|
||||
labels.dict_kuromoji_list_link=\u4e00\u89a7
|
||||
|
|
767
src/main/resources/fess_label_ko.properties
Normal file
767
src/main/resources/fess_label_ko.properties
Normal file
|
@ -0,0 +1,767 @@
|
|||
labels.authRealm = \uc601\uc5ed
|
||||
labels.available = \uc0c1\ud0dc
|
||||
labels.createdBy = \uc791\uc131\uc790
|
||||
labels.createdTime = \ub9cc\ub4e0 \ub0a0\uc9dc
|
||||
labels.depth = \uae4a\uc774
|
||||
labels.excludedPaths = \ud06c\ub864\ub9c1\uc5d0\uc11c \uc81c\uc678 \uacbd\ub85c
|
||||
labels.excludedUrls = \ud06c\ub864\ub9c1\uc5d0\uc11c \uc81c\uc678 \ud560 URL
|
||||
labels.excludedDocPaths = \uac80\uc0c9\uc5d0\uc11c \uc81c\uc678 \uacbd\ub85c
|
||||
labels.excludedDocUrls = \uac80\uc0c9\uc5d0\uc11c \uc81c\uc678 \ud560 URL
|
||||
labels.hostname = \ud638\uc2a4\ud2b8 \uc774\ub984
|
||||
labels.id = ID
|
||||
labels.includedPaths = \ud06c\ub864\ub9c1 \uacbd\ub85c
|
||||
labels.includedUrls = \ud06c\ub864\ub9c1\ud558\ub294 URL
|
||||
labels.includedDocPaths = \uac80\uc0c9 \ub300\uc0c1\uc73c\ub85c\ud558\ub294 \uacbd\ub85c
|
||||
labels.includedDocUrls = \uac80\uc0c9 \ub300\uc0c1\uc774\ub418\ub294 URL
|
||||
labels.maxAccessCount = \ucd5c\ub300 \uc811\uc18d \uc218
|
||||
labels.name = \uc774\ub984
|
||||
labels.numOfThread = \uc2a4\ub808\ub4dc \uc218
|
||||
labels.duplicateHostName = \uc911\ubcf5 \uc774\ub984
|
||||
labels.pageNumber = \ud398\uc774\uc9c0 \ubc88\ud638
|
||||
labels.password = \ube44\ubc00\ubc88\ud638
|
||||
labels.paths = \uacbd\ub85c
|
||||
labels.port = \ud3ec\ud2b8
|
||||
labels.regex \u200b\u200b= \uc815\uaddc \ud45c\ud604
|
||||
labels.regularName = \uc815\uaddc \uc774\ub984
|
||||
labels.replacement = \ub300\uccb4
|
||||
labels.sessionId = \uc138\uc158 ID
|
||||
labels.sortOrder = \uc21c\uc11c
|
||||
labels.updatedBy = \uc5c5\ub370\uc774\ud2b8\ub4e4
|
||||
labels.updatedTime = \uc5c5\ub370\uc774\ud2b8 \uc2dc\uac04
|
||||
labels.urls = URL
|
||||
labels.userAgent = \uc0ac\uc6a9\uc790 \uc5d0\uc774\uc804\ud2b8
|
||||
labels.username = \uc0ac\uc6a9\uc790 \uc774\ub984
|
||||
labels.value = \uac12
|
||||
labels.versionNo = \ubc84\uc804 \ubc88\ud638
|
||||
labels.cronExpression = \uc77c\uc815
|
||||
labels.dayForCleanup = \uc9c0\uc815\uc77c \uc774\uc804 \ubb38\uc11c \uc0ad\uc81c
|
||||
labels.crawlingThreadCount = \ub3d9\uc2dc \ud06c\ub864\ub9c1 \uc218
|
||||
labels.boost = \ubd80\uc2a4\ud2b8 \uac12
|
||||
labels.crawlingConfigName = \uc774\ub984
|
||||
labels.crawlingConfigPath = \ud0d0\uc0c9 \uacbd\ub85c
|
||||
labels.processType = \ucc98\ub9ac\uc758 \uc885\ub958
|
||||
labels.parameters = \ub9e4\uac1c \ubcc0\uc218
|
||||
labels.designFile = \uc5c5\ub85c\ub4dc \ud30c\uc77c
|
||||
labels.appendQueryParameter = \uac80\uc0c9 \ub9e4\uac1c \ubcc0\uc218 \ucd94\uac00
|
||||
labels.configId = \uc124\uc815 ID
|
||||
labels.configParameter = \uad6c\uc131 \ub9e4\uac1c \ubcc0\uc218
|
||||
labels.content = \ucf58\ud150\uce20
|
||||
labels.csvFileEncoding = CSV \uc778\ucf54\ub529
|
||||
labels.defaultLabelValue = \uae30\ubcf8 \ub77c\ubca8
|
||||
labels.designFileName = \ud30c\uc77c \uc774\ub984
|
||||
labels.incrementalCrawling = \ub9c8\uc9c0\ub9c9 \uc218\uc815\uc77c \ud655\uc778
|
||||
labels.errorCount = \uc624\ub958 \ud69f\uc218
|
||||
labels.errorLog = \uc624\ub958 \ub85c\uadf8
|
||||
labels.errorName = \uc624\ub958 \uc774\ub984
|
||||
labels.expiredTime = \uc720\ud6a8 \uae30\uac04
|
||||
labels.failureCountThreshold = \uc7a5\uc560 \uc218
|
||||
labels.fileConfigName = \ud30c\uc77c \ud06c\ub864\ub9c1 \uc124\uc815 \uc774\ub984
|
||||
labels.fileName = \ud30c\uc77c \uc774\ub984
|
||||
labels.handlerName = \ud578\ub4e4\ub7ec \uc774\ub984
|
||||
labels.handlerParameter = \ub9e4\uac1c \ubcc0\uc218
|
||||
labels.handlerScript = \uc2a4\ud06c\ub9bd\ud2b8
|
||||
labels.popularWord = \uc778\uae30 \uac80\uc0c9\uc5b4
|
||||
labels.ignoreFailureType = \ubb34\uc2dc \ub41c \uc7a5\uc560 \uc720\ud615
|
||||
labels.lastAccessTime = \ub9c8\uc9c0\ub9c9 \uc561\uc138\uc2a4 \uc2dc\uac04
|
||||
labels.notificationTo = \ud1b5\uc9c0 \ucc98
|
||||
labels.num = \uc218
|
||||
labels.pn = \ud398\uc774\uc9c0 \ubc88\ud638
|
||||
labels.protocolScheme = \uacc4\ud68d
|
||||
labels.purgeByBots = Bots \uc0ad\uc81c
|
||||
labels.purgeSearchLogDay = \uac80\uc0c9 \ub85c\uadf8 \uc0ad\uc81c
|
||||
labels.query = \ucffc\ub9ac
|
||||
labels.queryId = \ucffc\ub9ac ID
|
||||
labels.rt = rt
|
||||
labels.searchLog = \uac80\uc0c9 \ub85c\uadf8
|
||||
labels.sort = \uc815\ub82c
|
||||
labels.start = \uc2dc\uc791 \uc704\uce58
|
||||
labels.loginRequired = \ub85c\uadf8\uc778\uc774 \ud544\uc694
|
||||
labels.threadName = \uc2a4\ub808\ub4dc \uc774\ub984
|
||||
labels.url = URL
|
||||
labels.userFavorite = \uc88b\uc544 \ub85c\uadf8
|
||||
labels.userInfo = \uc774\uc6a9\uc790 \uc815\ubcf4
|
||||
labels.webApiJson = JSON \uc751\ub2f5
|
||||
labels.webConfigName = \uc6f9 \ud06c\ub864\ub9c1 \uc124\uc815 \uc774\ub984
|
||||
labels.allLanguages\u200b\u200b = \ubaa8\ub4e0 \uc5b8\uc5b4
|
||||
labels.dictId = \uc0ac\uc804 ID
|
||||
labels.docId = \ubb38\uc11c ID
|
||||
labels.endTime = \uc885\ub8cc \uc2dc\uac04
|
||||
labels.hq = hq
|
||||
labels.inputs = \uc6d0\ubcf8
|
||||
labels.jobLogging = \ub85c\uae45
|
||||
labels.jobName = \uc774\ub984
|
||||
labels.jobStatus = \uc0c1\ud0dc
|
||||
labels.labelTypeIds = \ub77c\ubca8
|
||||
labels.lang = \uc5b8\uc5b4
|
||||
labels.outputs = \ub300\uc0c1
|
||||
labels.pos = \ud488\uc0ac
|
||||
labels.purgeJobLogDay = \uc774\uc804 \uc791\uc5c5 \ub85c\uadf8 \uc0ad\uc81c
|
||||
labels.purgeUserInfoDay = \uc774\uc804\uc758 \uc774\uc6a9\uc790 \ub85c\uadf8\ub97c \uc0ad\uc81c
|
||||
labels.reading = \uc77d\uae30
|
||||
labels.roleTypeIds = \ub864 ID
|
||||
labels.scriptData = \uc2a4\ud06c\ub9bd\ud2b8
|
||||
labels.scriptResult = \uacb0\uacfc
|
||||
labels.scriptType = \uc2e4\ud589 \ubc29\ubc95
|
||||
labels.segmentation = \ubd84\ud560
|
||||
labels.startTime = \uc2dc\uc791 \uc2dc\uac04
|
||||
labels.target = \ub300\uc0c1
|
||||
labels.token = \ud1a0\ud070
|
||||
labels.synonymFile = \ub3d9\uc758\uc5b4 \ud30c\uc77c
|
||||
labels.elevateWordFile = \ucd94\uac00 \uc6cc\ub4dc \ud30c\uc77c
|
||||
labels.badWordFile = \uc81c\uc678 \uc6cc\ub4dc \ud30c\uc77c
|
||||
labels.boostExpr = \ubd80\uc2a4\ud2b8 \uac12 \uc2dd
|
||||
labels.confirmPassword = \ud655\uc778
|
||||
labels.crawler = \ud06c\ub864\ub7ec
|
||||
labels.crudMode = \ubaa8\ub4dc
|
||||
labels.errorCountMax = \ucd5c\ub300 \uc624\ub958 \uc218
|
||||
labels.errorCountMin = \ucd5c\uc18c \uc624\ub958 \uc218
|
||||
labels.facet = \uce21\uba74
|
||||
labels.geo = \uc9c0\uc624
|
||||
labels.groups = \uadf8\ub8f9
|
||||
labels.hash = \ud574\uc2dc
|
||||
labels.kuromojiFile = Kuromoji \ud30c\uc77c
|
||||
labels.maxSize = \ucd5c\ub300 \ud06c\uae30
|
||||
labels.order = \uc21c\uc11c
|
||||
labels.purgeSuggestSearchLogDay = \uc774\uc804 \uc11c\uc81c\uc2a4\ud2b8 \uc815\ubcf4\ub97c \uc0ad\uc81c
|
||||
labels.q = \ucffc\ub9ac
|
||||
labels.roles = \ub864
|
||||
labels.suggestSearchLog = \uc11c\uc81c\uc2a4\ud2b8 \uc6a9 \uac80\uc0c9 \ub85c\uadf8
|
||||
labels.suggestWord = \uc11c\uc81c\uc2a4\ud2b8 \uc6cc\ub4dc
|
||||
labels.targetLabel = \ub300\uc0c1 \ub808\uc774\ube14
|
||||
labels.targetRole = \ub300\uc0c1\uc758 \uc5ed\ud560
|
||||
labels.term = \uac80\uc0c9\uc5b4
|
||||
labels.searchParams = \uac80\uc0c9 \ub9e4\uac1c \ubcc0\uc218
|
||||
labels.fields = \ud544\ub4dc
|
||||
labels.ex_q = \ud655\uc7a5 \ucffc\ub9ac
|
||||
labels.oldPassword = \ud604\uc7ac \ube44\ubc00\ubc88\ud638
|
||||
labels.newPassword = \uc0c8 \uc554\ud638
|
||||
labels.confirmNewPassword = \uc0c8\ub85c\uc6b4 \ube44\ubc00\ubc88\ud638 (\ud655\uc778)
|
||||
labels.menu_system = \uc2dc\uc2a4\ud15c
|
||||
labels.menu_wizard = \ub9c8\ubc95\uc0ac
|
||||
labels.menu_crawl_config = \uc77c\ubc18
|
||||
labels.menu_scheduler_config = \uc2a4\ucf00\uc904\ub7ec
|
||||
labels.menu_dashboard_config = \ub300\uc2dc \ubcf4\ub4dc
|
||||
labels.menu_design = \ud398\uc774\uc9c0 \ub514\uc790\uc778
|
||||
labels.menu_dict = \uc0ac\uc804
|
||||
labels.menu_data = \ubc31\uc5c5 / \ubcf5\uc6d0
|
||||
labels.menu_crawl = \ud06c\ub864\ub7ec
|
||||
labels.menu_web = \uc6f9
|
||||
labels.menu_file_system = \ud30c\uc77c \uc2dc\uc2a4\ud15c
|
||||
labels.menu_data_store = \ub370\uc774\ud130 \uc800\uc7a5\uc18c
|
||||
labels.menu_label_type = \ub77c\ubca8
|
||||
labels.menu_key_match = \ud0a4 \ub9e4\uce58
|
||||
labels.menu_boost_document_rule = \ubb38\uc11c \ubd80\uc2a4\ud2b8
|
||||
labels.menu_path_mapping = \uacbd\ub85c \ub9e4\ud551
|
||||
labels.menu_web_authentication = \uc6f9 \uc778\uc99d
|
||||
labels.menu_file_authentication = \ud30c\uc77c \uc778\uc99d
|
||||
labels.menu_request_header = \uc694\uccad \ud5e4\ub354
|
||||
labels.menu_duplicate_host = \uc911\ubcf5 \ud638\uc2a4\ud2b8
|
||||
labels.menu_role_type = \ub864
|
||||
labels.menu_user = \uc0ac\uc6a9\uc790
|
||||
labels.menu_role = \ub864
|
||||
labels.menu_group = \uadf8\ub8f9
|
||||
labels.menu_suggest = \uc11c\uc81c\uc2a4\ud2b8
|
||||
labels.menu_elevate_word = \ucd94\uac00 \ub2e8\uc5b4
|
||||
labels.menu_bad_word = \uc81c\uc678 \ub2e8\uc5b4
|
||||
labels.menu_system_log = \uc2dc\uc2a4\ud15c \uc815\ubcf4
|
||||
labels.menu_system_info = \uc124\uc815 \uc815\ubcf4
|
||||
labels.menu_crawling_info = \ud06c\ub864\ub9c1 \uc815\ubcf4
|
||||
labels.menu_log = \ub85c\uadf8 \ud30c\uc77c
|
||||
labels.menu_jobLog = \uc791\uc5c5 \ub85c\uadf8
|
||||
labels.menu_failure_url = \uc7a5\uc560 URL
|
||||
labels.menu_search_list = \uac80\uc0c9
|
||||
labels.menu_backup = \ubc31\uc5c5
|
||||
labels.sidebar.placeholder_search = \uac80\uc0c9 ...
|
||||
labels.footer.copyright = Copyright (C) 2009-2016 <a href="https://github.com/codelibs"> CodeLibs Project </a> <span class = "br-phone"> </span> All Rights Reserved.
|
||||
labels.search = \uac80\uc0c9
|
||||
labels.search_result_status = <b> {0} </b> \uacb0\uacfc <span class = "br-phone"> </span> <b> {1} </b> \uac1c \uc911 <b> {2} < / b> - <b> {3} </b>\uac74
|
||||
labels.search_result_time = ({0} \ucd08)
|
||||
labels.prev_page = \uc774\uc804
|
||||
labels.next_page = \ub2e4\uc74c
|
||||
labels.did_not_match = <b> {0} </b>\uc5d0 \uc77c\uce58\ud558\ub294 \uc815\ubcf4\ub97c \ucc3e\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
|
||||
labels.search_title = Fess
|
||||
labels.search_popular_word_word = \uc778\uae30 \uac80\uc0c9\uc5b4 :
|
||||
labels.search_result_select_sort = - \uc815\ub82c -
|
||||
labels.search_result_select_num = - \ud45c\uc2dc \uac74\uc218 -
|
||||
labels.search_result_sort_score_desc = \uc810\uc218 \uc21c
|
||||
labels.search_result_sort_created_asc = \ub0a0\uc9dc (\uc624\ub984\ucc28\uc21c)
|
||||
labels.search_result_sort_created_desc = \ub0a0\uc9dc (\ub0b4\ub9bc\ucc28\uc21c)
|
||||
labels.search_result_sort_content_length_asc = \ud06c\uae30 (\uc624\ub984\ucc28\uc21c)
|
||||
labels.search_result_sort_content_length_desc = \ud06c\uae30 (\ub0b4\ub9bc\ucc28\uc21c)
|
||||
labels.search_result_sort_last_modified_asc = \ub9c8\uc9c0\ub9c9 \uc77c\uc790 (\uc624\ub984\ucc28\uc21c)
|
||||
labels.search_result_sort_last_modified_desc = \ub9c8\uc9c0\ub9c9 \uc77c\uc790 (\ub0b4\ub9bc\ucc28\uc21c)
|
||||
labels.search_result_sort_click_count_asc = \ud074\ub9ad \uc218 (\uc624\ub984\ucc28\uc21c)
|
||||
labels.search_result_sort_click_count_desc = \ud074\ub9ad \uc218 (\ub0b4\ub9bc\ucc28\uc21c)
|
||||
labels.search_result_sort_favorite_count_asc = \uc990\uaca8 \ucc3e\uae30 \uc218 (\uc624\ub984\ucc28\uc21c)
|
||||
labels.search_result_sort_favorite_count_desc = \uc990\uaca8 \ucc3e\uae30 \uc218 (\ub0b4\ub9bc\ucc28\uc21c)
|
||||
labels.search_result_sort_multiple = \uc5ec\ub7ec
|
||||
labels.search_result_size = {0} \ubc14\uc774\ud2b8
|
||||
labels.search_result_created = \ub4f1\ub85d \uc2dc\uac04 :
|
||||
labels.search_result_last_modified = \ucd5c\uc885 \uc5c5\ub370\uc774\ud2b8 :
|
||||
labels.search_result_favorite = Like
|
||||
labels.search_result_favorited = Liked
|
||||
labels.search_click_count = \ud074\ub9ad \uc218 ({0})
|
||||
labels.search_result_more = \ub354 ..
|
||||
labels.search_result_cache = \uce90\uc2dc
|
||||
labels.facet_label_title = \ub77c\ubca8
|
||||
labels.facet_timestamp_title = \uae30\uac04
|
||||
labels.facet_timestamp_1day = 24 \uc2dc\uac04 \uc774\ub0b4
|
||||
labels.facet_timestamp_1week = 1 \uc8fc\uc77c \uc774\ub0b4
|
||||
labels.facet_timestamp_1month = 1 \uac1c\uc6d4 \uc774\ub0b4
|
||||
labels.facet_timestamp_1year = 1 \ub144 \uc774\ub0b4
|
||||
labels.facet_contentLength_title = \ud06c\uae30
|
||||
labels.facet_contentLength_10k = & nbsp; - 10KB
|
||||
labels.facet_contentLength_10kto100k = 10KB - 100KB
|
||||
labels.facet_contentLength_100kto500k = 100KB - 500KB
|
||||
labels.facet_contentLength_500kto1m = 500KB - 1MB
|
||||
labels.facet_contentLength_1m = 1MB - & nbsp;
|
||||
labels.facet_filetype_title = \ud30c\uc77c \ud615\uc2dd
|
||||
labels.facet_filetype_html = HTML
|
||||
labels.facet_filetype_word = Word
|
||||
labels.facet_filetype_excel = Excel
|
||||
labels.facet_filetype_powerpoint = PowerPoint
|
||||
labels.facet_filetype_pdf = PDF
|
||||
labels.facet_filetype_others = \uae30\ud0c0
|
||||
labels.facet_label_reset = \uc7ac\uc124\uc815
|
||||
labels.searchoptions_all = \ubaa8\ub4e0
|
||||
labels.searchoptions_score = \uc810\uc218
|
||||
labels.searchoptions_menu_sort = \uc815\ub82c
|
||||
labels.searchoptions_menu_num = \uac74\uc218
|
||||
labels.searchoptions_num = {0} \uac1c
|
||||
labels.searchoptions_menu_lang = \uae30\ubcf8 \uc5b8\uc5b4
|
||||
labels.searchoptions_menu_labels = \ub77c\ubca8
|
||||
labels.error_title = \uc624\ub958
|
||||
labels.system_error_title = \uc2dc\uc2a4\ud15c \uc624\ub958
|
||||
labels.contact_site_admin = \uc0ac\uc774\ud2b8 \uad00\ub9ac\uc790\uc5d0\uac8c \ubb38\uc758\ud558\uc2ed\uc2dc\uc624.
|
||||
labels.request_error_title = \uc694\uccad \ud615\uc2dd\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
labels.bad_request = URL\uc5d0 \ub300\ud55c \uc694\uccad\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
labels.page_not_found_title = \ud398\uc774\uc9c0\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
labels.check_url = URL\uc744 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.
|
||||
labels.user_name = \uc0ac\uc6a9\uc790 \uc774\ub984
|
||||
labels.login = \ub85c\uadf8\uc778
|
||||
labels.login.placeholder_username = \uc0ac\uc6a9\uc790 \uc774\ub984
|
||||
labels.login.placeholder_password = \ube44\ubc00\ubc88\ud638
|
||||
labels.login.title = \ub85c\uadf8\uc778
|
||||
labels.index_label = \ub77c\ubca8
|
||||
labels.index_lang = \uae30\ubcf8 \uc5b8\uc5b4
|
||||
labels.index_sort = \uc815\ub82c
|
||||
labels.index_num = \ud45c\uc2dc \uac74\uc218
|
||||
labels.logout_title = \ub85c\uadf8 \uc544\uc6c3
|
||||
labels.logout = \ub85c\uadf8 \uc544\uc6c3
|
||||
labels.do_you_want_to_logout = \ub85c\uadf8 \uc544\uc6c3 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||
labels.logout_button = \ub85c\uadf8 \uc544\uc6c3
|
||||
labels.profile = \uc554\ud638 \ubcc0\uacbd
|
||||
labels.profile_button = \uc124\uc815
|
||||
labels.profile.title = \uc124\uc815
|
||||
labels.profile.update = \uc5c5\ub370\uc774\ud2b8
|
||||
labels.profile.back = \ub3cc\uc544 \uac00\uae30
|
||||
labels.profile.placeholder_old_password = \ud604\uc7ac \ube44\ubc00\ubc88\ud638
|
||||
labels.profile.placeholder_new_password = \uc0c8 \uc554\ud638
|
||||
labels.profile.placeholder_confirm_new_password = \uc0c8 \uc554\ud638 \ud655\uc778
|
||||
labels.top.search = \uac80\uc0c9
|
||||
labels.index_title = Fess
|
||||
labels.index_form_search_btn = \uac80\uc0c9
|
||||
labels.index_osdd_title = \uac80\uc0c9
|
||||
labels.index_form_option_btn = \uc635\uc158
|
||||
labels.index_help = \ub3c4\uc6c0\ub9d0
|
||||
labels.search_options = \uac80\uc0c9 \uc635\uc158
|
||||
labels.search_options_close = \ub2eb\uae30
|
||||
labels.search_options_clear = \ud074\ub9ac\uc5b4
|
||||
labels.search_cache_msg =\uc774 \ud398\uc774\uc9c0\ub294 {0} \uce90\uc2dc\uc785\ub2c8\ub2e4. {1}\uc5d0 \uc874\uc7ac\ud558\uace0 \uc788\ub358 \ud398\uc774\uc9c0\uc758 \uc2a4\ub0c5 \uc0f7\uc785\ub2c8\ub2e4.
|
||||
labels.search_unknown = \uc54c
|
||||
labels.footer_back_to_top = \ub9e8\uc704\ub85c
|
||||
labels.header_brand_name = Fess
|
||||
labels.header_form_option_btn = \uc635\uc158
|
||||
labels.file_crawling_configuration = \ud30c\uc77c \ud06c\ub864\ub9c1
|
||||
labels.file_crawling_title_details = \ud30c\uc77c \ud06c\ub864\ub9c1 \uc124\uc815
|
||||
labels.included_pa\u200b\u200bths = \ud06c\ub864\ub9c1 \uacbd\ub85c
|
||||
labels.excluded_pa\u200b\u200bths = \ud06c\ub864\ub9c1\uc5d0\uc11c \uc81c\uc678 \uacbd\ub85c
|
||||
labels.included_doc_paths = \uac80\uc0c9 \ub300\uc0c1\uc73c\ub85c\ud558\ub294 \uacbd\ub85c
|
||||
labels.excluded_doc_paths = \uac80\uc0c9\uc5d0\uc11c \uc81c\uc678 \uacbd\ub85c
|
||||
labels.config_parameter = \uad6c\uc131 \ub9e4\uac1c \ubcc0\uc218
|
||||
labels.max_access_count = \ucd5c\ub300 \uc811\uc18d \uc218
|
||||
labels.number_of_thread = \uc2a4\ub808\ub4dc \uc218
|
||||
labels.interval_time = \uac04\uaca9
|
||||
labels.millisec = \ubc00\ub9ac \ucd08
|
||||
labels.role_type = \ub864
|
||||
labels.label_type = \ub77c\ubca8
|
||||
labels.file_crawling_button_create = \uc791\uc131
|
||||
labels.file_crawling_button_create_job = \uc0c8 \uc791\uc5c5 \ub9cc\ub4e4\uae30
|
||||
labels.web_crawling_configuration = \uc6f9 \ud06c\ub864\ub9c1
|
||||
labels.web_crawling_title_details = \uc6f9 \ud06c\ub864\ub9c1 \uc124\uc815
|
||||
labels.included_urls = \ud06c\ub864\ub9c1\ud558\ub294 URL
|
||||
labels.excluded_urls = \ud06c\ub864\ub9c1\uc5d0\uc11c \uc81c\uc678 \ud560 URL
|
||||
labels.included_doc_urls = \uac80\uc0c9 \ub300\uc0c1\uc774\ub418\ub294 URL
|
||||
labels.excluded_doc_urls = \uac80\uc0c9\uc5d0\uc11c \uc81c\uc678 \ud560 URL
|
||||
labels.user_agent = \uc0ac\uc6a9\uc790 \uc5d0\uc774\uc804\ud2b8
|
||||
labels.web_crawling_button_create = \uc791\uc131
|
||||
labels.web_crawling_button_create_job = \uc0c8 \uc791\uc5c5 \ub9cc\ub4e4\uae30
|
||||
labels.crawler_configuration = \uc77c\ubc18 \uc124\uc815
|
||||
labels.crawler_title_edit = \uc77c\ubc18 \uc124\uc815
|
||||
labels.schedule = \uc77c\uc815
|
||||
labels.enabled = \uc720\ud6a8
|
||||
labels.day_for_cleanup = \uc774\uc804 \ubb38\uc11c\ub97c \uc0ad\uc81c
|
||||
labels.day = \uc77c
|
||||
labels.crawl_button_update = \uc5c5\ub370\uc774\ud2b8
|
||||
labels.none = \uc5c6\uc74c
|
||||
labels.crawling_thread_count = \ub3d9\uc2dc \ud06c\ub864\ub7ec \uc124\uc815
|
||||
labels.incremental_crawling = \ub9c8\uc9c0\ub9c9 \uc218\uc815\uc77c \ud655\uc778
|
||||
labels.search_log_enabled = \uac80\uc0c9 \ub85c\uadf8
|
||||
labels.user_info_enabled = \uc0ac\uc6a9\uc790 \ub85c\uadf8
|
||||
labels.user_favorite_enabled = \uc88b\uc544 \ub85c\uadf8
|
||||
labels.web_api_json_enabled = JSON \uc751\ub2f5
|
||||
labels.default_label_value = \uae30\ubcf8 \ub808\uc774\ube14 \uac12
|
||||
labels.default_sort_value = \uae30\ubcf8 \uc815\ub82c \uac12
|
||||
labels.append_query_param_enabled = \uac80\uc0c9 \ub9e4\uac1c \ubcc0\uc218 \ucd94\uac00
|
||||
labels.login_required = \ub85c\uadf8\uc778\uc774 \ud544\uc694
|
||||
labels.ignore_failure_type = \uc81c\uc678 \uc624\ub958\uc758 \uc885\ub958
|
||||
labels.failure_count_threshold = \uc7a5\uc560 \uc784\uacc4 \uac12
|
||||
labels.popular_word_word_enabled = \uc778\uae30 \uac80\uc0c9\uc5b4 \uc751\ub2f5
|
||||
labels.supported_search_web = \uc6f9
|
||||
labels.supported_search_none = \uc774\uc6a9 \ubd88\uac00
|
||||
labels.purge_search_log_day = \uc774\uc804\uc758 \uac80\uc0c9 \uae30\ub85d\uc744 \uc0ad\uc81c
|
||||
labels.purge_job_log_day = \uc774\uc804 \uc791\uc5c5 \ub85c\uadf8\ub97c \uc0ad\uc81c
|
||||
labels.purge_user_info_day = \uc774\uc804 \uc0ac\uc6a9\uc790 \ub85c\uadf8\ub97c \uc0ad\uc81c
|
||||
labels.purge_by_bots = \ub85c\uadf8\ub97c \uc0ad\uc81c\ud558\ub294 \ubd07 \uc774\ub984
|
||||
labels.csv_file_encoding = CSV \ud30c\uc77c\uc758 \uc778\ucf54\ub529
|
||||
labels.notification_to = \uc774\uba54\uc77c \uc54c\ub9bc
|
||||
labels.pathmap_configuration = \uacbd\ub85c \ub9e4\ud551
|
||||
labels.pathmap_title_details = \uacbd\ub85c \ub9e4\ud551
|
||||
labels.disabled = \ubb34\ud6a8
|
||||
labels.pathmap_pt_crawling = \ud06c\ub864\ub9c1
|
||||
labels.pathmap_pt_displaying = \ud45c\uc2dc
|
||||
labels.pathmap_pt_both = \ud0d0\uc0c9 / \ud45c\uc2dc
|
||||
labels.regular_name = \uc815\uaddc \uc774\ub984
|
||||
labels.duplicate_name = \uc911\ubcf5 \uc774\ub984
|
||||
labels.duplicate_host_configuration = \uc911\ubcf5 \ud638\uc2a4\ud2b8
|
||||
labels.duplicate_host_title_details = \uc911\ubcf5 \ud638\uc2a4\ud2b8
|
||||
labels.dashboard_title_configuration = \uc2dc\uc2a4\ud15c \uad6c\uc131
|
||||
labels.suggest_search_log_enabled = \uac80\uc0c9\uc5b4\ub85c \uc790\ub3d9 \uc644\uc131
|
||||
labels.suggest_documents_enabled = \ubb38\uc11c\uc5d0\uc11c \uc790\ub3d9 \uc644\uc131
|
||||
labels.purge_suggest_search_log_day = \uc774\uc804 \uc11c\uc81c\uc2a4\ud2b8 \uc815\ubcf4\ub97c \uc0ad\uc81c
|
||||
labels.crawling_info_title = \ud06c\ub864\ub9c1 \uc815\ubcf4
|
||||
labels.crawling_info_title_confirm = \ud06c\ub864\ub9c1 \uc815\ubcf4
|
||||
labels.crawling_info_button_back = \ub3cc\uc544 \uac00\uae30
|
||||
labels.crawling_info_button_delete = \uc0ad\uc81c
|
||||
labels.crawling_info_configuration = \ud06c\ub864\ub9c1 \uc815\ubcf4
|
||||
labels.crawling_info_search = \uac80\uc0c9
|
||||
labels.crawling_info_reset = \uc7ac\uc124\uc815
|
||||
labels.crawling_info_link_top = \ud06c\ub864\ub9c1 \uc815\ubcf4
|
||||
labels.crawling_info_link_details = \uc0c1\uc138
|
||||
labels.crawling_info_session_id_search = \uc138\uc158 ID
|
||||
labels.crawling_info_session_id = \uc138\uc158 ID
|
||||
labels.crawling_info_created_time = \uc791\uc131
|
||||
labels.crawling_info_delete_all_link = \uc0ad\uc81c
|
||||
labels.crawling_info_delete_all_confirmation = \uc815\ub9d0 \ubaa8\ub4e0 \uac83\uc744 \uc0ad\uc81c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||
labels.crawling_info_delete_all_cancel = \ucde8\uc18c
|
||||
labels.crawling_info_CrawlerStartTime = \ud06c\ub864\ub7ec\uc758 \uc2dc\uc791 \uc2dc\uac04
|
||||
labels.crawling_info_CrawlerEndTime = \ud06c\ub864\ub7ec \uc885\ub8cc \uc2dc\uac04
|
||||
labels.crawling_info_CrawlerExecTime = \ud06c\ub864\ub7ec \uc2e4\ud589 \uc2dc\uac04
|
||||
labels.crawling_info_CrawlerStatus = \ud06c\ub864\ub7ec \uc0c1\ud0dc
|
||||
labels.crawling_info_WebFsCrawlExecTime = \ud06c\ub864\ub9c1 \uc2e4\ud589 \uc2dc\uac04 (\uc6f9 / \ud30c\uc77c)
|
||||
labels.crawling_info_WebFsCrawlStartTime = \ud06c\ub864\ub9c1 \uc2dc\uc791 \uc2dc\uac04 (\uc6f9 / \ud30c\uc77c)
|
||||
labels.crawling_info_WebFsCrawlEndTime = \ud06c\ub864\ub9c1 \uc885\ub8cc \uc2dc\uac04 (\uc6f9 / \ud30c\uc77c)
|
||||
labels.crawling_info_WebFsIndexExecTime = \uc9c0\uc218 \uc5f0\ub3d9\uc758 \uc2e4\ud589 \uc2dc\uac04 (\uc6f9 / \ud30c\uc77c)
|
||||
labels.crawling_info_WebFsIndexSize = \uc778\ub371\uc2a4\uc758 \ud06c\uae30 (\uc6f9 / \ud30c\uc77c)
|
||||
labels.crawling_info_DataCrawlExecTime = \ud06c\ub864\ub9c1 \uc2e4\ud589 \uc2dc\uac04 (\ub370\uc774\ud130 \uc800\uc7a5\uc18c)
|
||||
labels.crawling_info_DataCrawlStartTime = \ud06c\ub864\ub9c1 \uc2dc\uc791 \uc2dc\uac04 (\ub370\uc774\ud130 \uc800\uc7a5\uc18c)
|
||||
labels.crawling_info_DataCrawlEndTime = \ud06c\ub864\ub9c1 \uc885\ub8cc \uc2dc\uac04 (\ub370\uc774\ud130 \uc800\uc7a5\uc18c)
|
||||
labels.crawling_info_DataIndexExecTime = \uc9c0\uc218 \uc5f0\ub3d9\uc758 \uc2e4\ud589 \uc2dc\uac04 (\ub370\uc774\ud130 \uc800\uc7a5\uc18c)
|
||||
labels.crawling_info_DataIndexSize = \uc778\ub371\uc2a4\uc758 \ud06c\uae30 (\ub370\uc774\ud130 \uc800\uc7a5\uc18c)
|
||||
labels.webauth_configuration = \uc6f9 \uc778\uc99d
|
||||
labels.webauth_list_hostname = \ud638\uc2a4\ud2b8 \uc774\ub984
|
||||
labels.webauth_list_web_crawling_config = \uc124\uc815 \uc774\ub984
|
||||
labels.webauth_any = \uc784\uc758
|
||||
labels.webauth_create_web_config = \uc0c8\ub85c\uc6b4 \uc6f9 \uc124\uc815 \ub9cc\ub4e4\uae30
|
||||
labels.webauth_title_details = \uc6f9 \uc778\uc99d
|
||||
labels.webauth_hostname = \ud638\uc2a4\ud2b8 \uc774\ub984
|
||||
labels.webauth_port = \ud3ec\ud2b8
|
||||
labels.webauth_realm = \uc601\uc5ed
|
||||
labels.webauth_scheme = \uacc4\ud68d
|
||||
labels.webauth_username = \uc0ac\uc6a9\uc790 \uc774\ub984
|
||||
labels.webauth_password = \ube44\ubc00\ubc88\ud638
|
||||
labels.webauth_parameters = \ub9e4\uac1c \ubcc0\uc218
|
||||
labels.webauth_web_crawling_config = \uc6f9 \uc124\uc815
|
||||
labels.webauth_scheme_basic = Basic
|
||||
labels.webauth_scheme_digest = Digest
|
||||
labels.webauth_scheme_ntlm = NTLM
|
||||
labels.log_configuration = \ub85c\uadf8 \ud30c\uc77c
|
||||
labels.log_file_name = \ud30c\uc77c \uc774\ub984
|
||||
labels.log_file_date = \ud0c0\uc784 \uc2a4\ud0ec\ud504
|
||||
labels.labeltype_configuration = \ub77c\ubca8
|
||||
labels.labeltype_title_details = \ub77c\ubca8
|
||||
labels.labeltype_name = \uc774\ub984
|
||||
labels.labeltype_value = \uac12
|
||||
labels.labeltype_included_pa\u200b\u200bths = \ub300\uc0c1\uc73c\ub85c\ud558\ub294 \uacbd\ub85c
|
||||
labels.labeltype_excluded_pa\u200b\u200bths = \uc81c\uc678 \uacbd\ub85c
|
||||
labels.roletype_configuration = \ub864
|
||||
labels.roletype_title_details = \ub864
|
||||
labels.roletype_name = \uc774\ub984
|
||||
labels.roletype_value = \uac12
|
||||
labels.reqheader_configuration = \uc694\uccad \ud5e4\ub354
|
||||
labels.reqheader_list_name = \uc774\ub984
|
||||
labels.reqheader_list_web_crawling_config = \uc124\uc815 \uc774\ub984
|
||||
labels.reqheader_create_web_config = \uc0c8\ub85c\uc6b4 \uc6f9 \uc124\uc815 \ub9cc\ub4e4\uae30
|
||||
labels.reqheader_title_details = \uc694\uccad \ud5e4\ub354
|
||||
labels.reqheader_name = \uc774\ub984
|
||||
labels.reqheader_value = \uac12
|
||||
labels.reqheader_web_crawling_config = \uc6f9 \uc124\uc815
|
||||
labels.key_match_configuration = \ud0a4 \ub9e4\uce58
|
||||
labels.key_match_list_term = \uac80\uc0c9\uc5b4
|
||||
labels.key_match_list_query = \ucffc\ub9ac
|
||||
labels.key_match_term = \uac80\uc0c9\uc5b4
|
||||
labels.key_match_query = \ucffc\ub9ac
|
||||
labels.key_match_size = \ud06c\uae30
|
||||
labels.key_match_boost = \ubd80\uc2a4\ud2b8 \uac12
|
||||
labels.key_match_title_details = \ud0a4 \ub9e4\uce58
|
||||
labels.design_configuration = \ud398\uc774\uc9c0 \ub514\uc790\uc778
|
||||
labels.design_title_file_upload = \uc5c5\ub85c\ub4dc \ud30c\uc77c
|
||||
labels.design_title_file = \ud30c\uc77c \uad00\ub9ac\uc790
|
||||
labels.design_file = \ud30c\uc77c \uc5c5\ub85c\ub4dc
|
||||
labels.design_file_name = \ud30c\uc77c \uc774\ub984 (\uc635\uc158)
|
||||
labels.design_button_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.design_file_title_edit = \ud398\uc774\uc9c0 \ud30c\uc77c\ubcf4\uae30
|
||||
labels.design_edit_button = \ud3b8\uc9d1
|
||||
labels.design_download_button = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.design_delete_button = \uc0ad\uc81c
|
||||
labels.design_use_default_button = \uae30\ubcf8 \uc0ac\uc6a9
|
||||
labels.design_file_index = \ud1b1 \ud398\uc774\uc9c0
|
||||
labels.design_file_footer = \uae00
|
||||
labels.design_file_search = \uac80\uc0c9 \uacb0\uacfc \ud398\uc774\uc9c0 (\ud504\ub808\uc784)
|
||||
labels.design_file_searchResults = \uac80\uc0c9 \uacb0\uacfc \ud398\uc774\uc9c0 (\ucee8\ud150\uce20)
|
||||
labels.design_file_searchNoResult = \uac80\uc0c9 \uacb0\uacfc \ud398\uc774\uc9c0 (\uacb0\uacfc \uc5c6\uc74c)
|
||||
labels.design_file_help = \ub3c4\uc6c0\ub9d0 \ud398\uc774\uc9c0 (\ucee8\ud150\uce20)
|
||||
labels.design_file_header = \ud5e4\ub354
|
||||
labels.design_file_error = \uac80\uc0c9 \uc624\ub958 \ud398\uc774\uc9c0
|
||||
labels.design_file_cache = \uce90\uc2dc \ud398\uc774\uc9c0
|
||||
labels.design_file_errorHeader = \uc624\ub958 \ud398\uc774\uc9c0 (\ud5e4\ub354)
|
||||
labels.design_file_errorFooter = \uc624\ub958 \ud398\uc774\uc9c0 (\ubcf4\ud589\uc790)
|
||||
labels.design_file_errorNotFound = \uc624\ub958 \ud398\uc774\uc9c0 (\uc5c6\uc74c)
|
||||
labels.design_file_errorSystem = \uc624\ub958 \ud398\uc774\uc9c0 (\uc2dc\uc2a4\ud15c \uc624\ub958)
|
||||
labels.design_file_errorRedirect = \uc624\ub958 \ud398\uc774\uc9c0 (\ub9ac\ub514\ub809\uc158)
|
||||
labels.design_file_errorBadRequest = \uc624\ub958 \ud398\uc774\uc9c0 (BadRequest)
|
||||
labels.design_file_login = \ub85c\uadf8\uc778 \ud398\uc774\uc9c0
|
||||
labels.design_file_profile = \uc124\uc815 \ud398\uc774\uc9c0
|
||||
labels.design_title_edit_content = \ud398\uc774\uc9c0 \ud3b8\uc9d1 \ud30c\uc77c\ubcf4\uae30
|
||||
labels.design_button_update = \uc5c5\ub370\uc774\ud2b8
|
||||
labels.design_button_back = \ub3cc\uc544 \uac00\uae30
|
||||
labels.data_crawling_configuration = \ub370\uc774\ud130 \uc800\uc7a5\uc18c \ud06c\ub864\ub9c1
|
||||
labels.data_crawling_title_details = \ub370\uc774\ud130 \uc800\uc7a5\uc18c\uc758 \ud06c\ub864\ub9c1 \uc124\uc815
|
||||
labels.handler_name = \ud578\ub4e4\ub7ec \uc774\ub984
|
||||
labels.handler_parameter = \ub9e4\uac1c \ubcc0\uc218
|
||||
labels.handler_script = \uc2a4\ud06c\ub9bd\ud2b8
|
||||
labels.data_crawling_button_create = \uc791\uc131
|
||||
labels.data_crawling_button_create_job = \uc0c8 \uc791\uc5c5 \ub9cc\ub4e4\uae30
|
||||
labels.wizard_title_configuration = \uad6c\uc131 \ub9c8\ubc95\uc0ac
|
||||
labels.wizard_start_title = \ube60\ub978 \uc124\uce58
|
||||
labels.wizard_start_desc = \uad6c\uc131 \ub9c8\ubc95\uc0ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc27d\uac8c \ud0d0\uc0c9 \uc124\uc815\uc744 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
|
||||
labels.wizard_start_button = \uc124\uc815 \uc2dc\uc791
|
||||
labels.wizard_button_cancel = \ucde8\uc18c
|
||||
labels.wizard_crawling_config_title = \ud06c\ub864\ub9c1 \uc124\uc815
|
||||
labels.wizard_crawling_setting_title = \ud06c\ub864\ub9c1 \uc124\uc815
|
||||
labels.wizard_crawling_config_name = \uc774\ub984
|
||||
labels.wizard_crawling_config_path = \ud0d0\uc0c9 \uacbd\ub85c
|
||||
labels.wizard_button_register_again = \uc5f0\uc18d \uc791\uc131
|
||||
labels.wizard_button_register_next = \uc791\uc131
|
||||
labels.wizard_start_crawling_title = \ud06c\ub864\ub9c1 \uc2dc\uc791
|
||||
labels.wizard_start_crawler_title = \ud06c\ub864\ub7ec
|
||||
labels.wizard_start_crawling_desc = "\ud0d0\uc0c9 \uc2dc\uc791"\ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \uc774\uc81c \ud06c\ub864\ub9c1\uc744 \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
|
||||
labels.wizard_button_start_crawling = \ud06c\ub864\ub9c1 \uc2dc\uc791
|
||||
labels.wizard_button_finish = \uac74\ub108 \ub6f0\uae30
|
||||
labels.search_list_configuration = \uac80\uc0c9
|
||||
labels.search_list_button_delete = \uc0ad\uc81c
|
||||
labels.search_list_delete_confirmation = \uc815\ub9d0\ub85c \uc0ad\uc81c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||
labels.search_list_button_delete_all =\uc774 \ucffc\ub9ac\uc5d0\uc11c \ubaa8\ub450 \uc0ad\uc81c
|
||||
labels.search_list_delete_all_confirmation = \uc815\ub9d0\uc774 \ucffc\ub9ac\uc5d0\uc11c \ubaa8\ub450 \uc0ad\uc81c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||
labels.search_list_button_cancel = \ucde8\uc18c
|
||||
labels.failure_url_configuration = \uc7a5\uc560 URL
|
||||
labels.failure_url_search_url = URL
|
||||
labels.failure_url_search_error_count = \uc624\ub958 \ud69f\uc218
|
||||
labels.failure_url_search_error_name = \uc885\ub958
|
||||
labels.failure_url_url = URL
|
||||
labels.failure_url_last_access_time = \ub9c8\uc9c0\ub9c9 \uc561\uc138\uc2a4 \uc2dc\uac04
|
||||
labels.failure_url_link_list = \ubaa9\ub85d
|
||||
labels.failure_url_link_details = \uc0c1\uc138
|
||||
labels.failure_url_link_delete = \uc0ad\uc81c
|
||||
labels.failure_url_delete_all_link = \uc0ad\uc81c
|
||||
labels.failure_url_delete_all_confirmation = \uc815\ub9d0 \ubaa8\ub4e0 \uac83\uc744 \uc0ad\uc81c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||
labels.failure_url_delete_all_cancel = \ucde8\uc18c
|
||||
labels.failure_url_error_count = \uc624\ub958 \ud69f\uc218
|
||||
labels.failure_url_title_details = \uc7a5\uc560 \uace0\uae09 URL
|
||||
labels.failure_url_id = ID
|
||||
labels.failure_url_thread_name = \uc2a4\ub808\ub4dc \uc774\ub984
|
||||
labels.failure_url_error_name = \uc885\ub958
|
||||
labels.failure_url_error_log = \ub85c\uadf8
|
||||
labels.failure_url_web_config_name = \uc6f9 \ud06c\ub864\ub9c1 \uc124\uc815
|
||||
labels.failure_url_file_config_name = \ud30c\uc77c \ud06c\ub864\ub9c1 \uc124\uc815
|
||||
labels.system_info_configuration = \uc2dc\uc2a4\ud15c \uc815\ubcf4
|
||||
labels.system_info_env_title = \ud658\uacbd \ubcc0\uc218\uc758 \uc18d\uc131
|
||||
labels.system_info_prop_title = \uc2dc\uc2a4\ud15c \uc18d\uc131
|
||||
labels.system_info_fess_prop_title = \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc758 \uc18d\uc131
|
||||
labels.system_info_bug_report_title = \ubc84\uadf8 \ubcf4\uace0\uc11c\uc758 \uc18d\uc131
|
||||
labels.system_info_system_properties_does_not_exist = system.properties\ub294 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uae30\ubcf8\uac12\uc774 \uc801\uc6a9\ub429\ub2c8\ub2e4.
|
||||
labels.file_auth_configuration = \ud30c\uc77c \uc778\uc99d
|
||||
labels.file_auth_list_hostname = \ud638\uc2a4\ud2b8 \uc774\ub984
|
||||
labels.file_auth_list_file_crawling_config = \uc124\uc815 \uc774\ub984
|
||||
labels.file_auth_any = \uc784\uc758
|
||||
labels.file_auth_create_file_config = \uc0c8\ub85c\uc6b4 \ud30c\uc77c \ud06c\ub864\ub9c1 \uc124\uc815 \ub9cc\ub4e4\uae30
|
||||
labels.file_auth_title_details = \ud30c\uc77c \uc778\uc99d
|
||||
labels.file_auth_hostname = \ud638\uc2a4\ud2b8 \uc774\ub984
|
||||
labels.file_auth_port = \ud3ec\ud2b8
|
||||
labels.file_auth_scheme = \uacc4\ud68d
|
||||
labels.file_auth_username = \uc0ac\uc6a9\uc790 \uc774\ub984
|
||||
labels.file_auth_password = \ube44\ubc00\ubc88\ud638
|
||||
labels.file_auth_parameters = \ub9e4\uac1c \ubcc0\uc218
|
||||
labels.file_auth_file_crawling_config = \ud30c\uc77c \ud06c\ub864\ub9c1 \uc124\uc815
|
||||
labels.file_auth_scheme_samba = Samba
|
||||
labels.pagination_page_guide_msg = {0} / {1} ({2} \uac1c)
|
||||
labels.list_could_not_find_cr\u200b\u200bud_table = \ub4f1\ub85d\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
labels.scheduledjob_configuration = \uc791\uc5c5 \uc2a4\ucf00\uc904\ub7ec
|
||||
labels.scheduledjob_title_details = \uc791\uc5c5
|
||||
labels.scheduledjob_name = \uc774\ub984
|
||||
labels.scheduledjob_target = \ub300\uc0c1
|
||||
labels.scheduledjob_status = \uc0c1\ud0dc
|
||||
labels.scheduledjob_cronExpression = \uc77c\uc815
|
||||
labels.scheduledjob_scriptType = \uc2e4\ud589 \ubc29\ubc95
|
||||
labels.scheduledjob_scriptData = \uc2a4\ud06c\ub9bd\ud2b8
|
||||
labels.scheduledjob_jobLogging = \ub85c\uae45
|
||||
labels.scheduledjob_crawler = \ud06c\ub864\ub7ec \ucc44\uc6a9
|
||||
labels.scheduledjob_running = \uc2e4\ud589 \uc911
|
||||
labels.scheduledjob_active = \uc720\ud6a8
|
||||
labels.scheduledjob_nojob = \ubb34\ud6a8
|
||||
labels.scheduledjob_button_start = \uc9c0\uae08 \uc2dc\uc791
|
||||
labels.scheduledjob_button_stop = \uc815\uc9c0
|
||||
labels.joblog_button_back = \ub3cc\uc544 \uac00\uae30
|
||||
labels.joblog_button_delete = \uc0ad\uc81c
|
||||
labels.joblog_configuration = \uc791\uc5c5 \ub85c\uadf8
|
||||
labels.joblog_endTime = \uc885\ub8cc \uc2dc\uac04
|
||||
labels.joblog_jobName = \uc774\ub984
|
||||
labels.joblog_jobStatus = \uc0c1\ud0dc
|
||||
labels.joblog_status_ok = OK
|
||||
labels.joblog_status_fail = \uc2e4\ud328
|
||||
labels.joblog_status_running = \uc2e4\ud589 \uc911
|
||||
labels.joblog_link_details = \uc0c1\uc138
|
||||
labels.joblog_link_list = \ubaa9\ub85d
|
||||
labels.joblog_scriptData = \uc2a4\ud06c\ub9bd\ud2b8
|
||||
labels.joblog_scriptResult = \uacb0\uacfc
|
||||
labels.joblog_scriptType = \uc2e4\ud589 \ubc29\ubc95
|
||||
labels.joblog_startTime = \uc2dc\uc791 \uc2dc\uac04
|
||||
labels.joblog_target = \ub300\uc0c1
|
||||
labels.joblog_title_details = \uc791\uc5c5 \ub85c\uadf8 \uc138\ubd80 \uc0ac\ud56d
|
||||
labels.joblog_delete_all_link = \uc0ad\uc81c
|
||||
labels.joblog_delete_all_confirmation = \uc815\ub9d0 \ubaa8\ub4e0 \uac83\uc744 \uc0ad\uc81c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||
labels.joblog_delete_all_cancel = \ucde8\uc18c
|
||||
labels.dict_configuration = \uc0ac\uc804 \ubaa9\ub85d
|
||||
labels.dict_list_title = \uc0ac\uc804 \ubaa9\ub85d
|
||||
labels.dict_list_link = \uc0ac\uc804
|
||||
labels.dictionary_name = \uc774\ub984
|
||||
labels.dictionary_type = \uc885\ub958
|
||||
labels.dict_synonym_configuration = \ub3d9\uc758\uc5b4 \ubaa9\ub85d
|
||||
labels.dict_synonym_title = \ub3d9\uc758\uc5b4 \ubaa9\ub85d
|
||||
labels.dict_synonym_list_link = \ubaa9\ub85d
|
||||
labels.dict_synonym_link_create = \uc0c8\ub85c \ub9cc\ub4e4\uae30
|
||||
labels.dict_synonym_link_edit = \ud3b8\uc9d1
|
||||
labels.dict_synonym_link_delete = \uc0ad\uc81c
|
||||
labels.dict_synonym_link_details = \uc0c1\uc138
|
||||
labels.dict_synonym_link_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.dict_synonym_link_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.dict_synonym_source = \uc6d0\ubcf8
|
||||
labels.dict_synonym_target = \ubcc0\ud658 \ud6c4
|
||||
labels.dict_synonym_button_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.dict_synonym_button_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.dict_synonym_file = \ub3d9\uc758\uc5b4 \ud30c\uc77c
|
||||
labels.dict_seunjeon_configuration = Seunjeon \ubaa9\ub85d
|
||||
labels.dict_seunjeon_title = Seunjeon \ubaa9\ub85d
|
||||
labels.dict_seunjeon_list_link = \ubaa9\ub85d
|
||||
labels.dict_seunjeon_link_create = \uc0c8\ub85c \ub9cc\ub4e4\uae30
|
||||
labels.dict_seunjeon_link_edit = \ud3b8\uc9d1
|
||||
labels.dict_seunjeon_link_delete = \uc0ad\uc81c
|
||||
labels.dict_seunjeon_link_details = \uc0c1\uc138
|
||||
labels.dict_seunjeon_link_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.dict_seunjeon_link_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.dict_seunjeon_source = \uc6d0\ubcf8
|
||||
labels.dict_seunjeon_target = \ubcc0\ud658 \ud6c4
|
||||
labels.dict_seunjeon_button_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.dict_seunjeon_button_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.dict_seunjeon_file = Seunjeon \ud30c\uc77c
|
||||
labels.dict_kuromoji_configuration = Kuromoji \ubaa9\ub85d
|
||||
labels.dict_kuromoji_title = Kuromoji \ubaa9\ub85d
|
||||
labels.dict_kuromoji_list_link = \ubaa9\ub85d
|
||||
labels.dict_kuromoji_link_create = \uc0c8\ub85c \ub9cc\ub4e4\uae30
|
||||
labels.dict_kuromoji_link_edit = \ud3b8\uc9d1
|
||||
labels.dict_kuromoji_link_delete = \uc0ad\uc81c
|
||||
labels.dict_kuromoji_link_details = \uc0c1\uc138
|
||||
labels.dict_kuromoji_link_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.dict_kuromoji_link_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.dict_kuromoji_token = \ud1a0\ud070
|
||||
labels.dict_kuromoji_segmentation = \ubd84\ud560
|
||||
labels.dict_kuromoji_reading = \uc77d\uae30
|
||||
labels.dict_kuromoji_pos = \ud488\uc0ac
|
||||
labels.dict_kuromoji_button_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.dict_kuromoji_button_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.dict_kuromoji_file = Kuromoji \ud30c\uc77c
|
||||
labels.boost_document_rule_configuration = \ubb38\uc11c \ubd80\uc2a4\ud2b8
|
||||
labels.boost_document_rule_title_details = \ubb38\uc11c \ubd80\uc2a4\ud2b8
|
||||
labels.boost_document_rule_list_url_expr = \uc0c1\ud0dc
|
||||
labels.boost_document_rule_url_expr = \uc0c1\ud0dc
|
||||
labels.boost_document_rule_boost_expr = \ubd80\uc2a4\ud2b8 \uac12 \uc2dd
|
||||
labels.boost_document_rule_sort_order = \uc815\ub82c \uc21c\uc11c
|
||||
labels.elevate_word_configuration = \ucd94\uac00 \ub2e8\uc5b4
|
||||
labels.elevate_word_title_details = \ucd94\uac00 \ub2e8\uc5b4
|
||||
labels.elevate_word_link_list = \ubaa9\ub85d
|
||||
labels.elevate_word_link_create = \uc0c8\ub85c \ub9cc\ub4e4\uae30
|
||||
labels.elevate_word_link_edit = \ud3b8\uc9d1
|
||||
labels.elevate_word_link_delete = \uc0ad\uc81c
|
||||
labels.elevate_word_link_details = \uc0c1\uc138
|
||||
labels.elevate_word_link_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.elevate_word_link_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.elevate_word_button_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.elevate_word_button_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.elevate_word_list_suggest_word = \ub2e8\uc5b4
|
||||
labels.elevate_word_suggest_word = \ub2e8\uc5b4
|
||||
labels.elevate_word_reading = \uc77d\uae30
|
||||
labels.elevate_word_target_role = \ub864
|
||||
labels.elevate_word_boost = \ubd80\uc2a4\ud2b8 \uac12
|
||||
labels.elevate_word_file = \ucd94\uac00 \uc6cc\ub4dc \ud30c\uc77c
|
||||
labels.bad_word_configuration = \uc81c\uc678 \ub2e8\uc5b4
|
||||
labels.bad_word_title_details = \uc81c\uc678 \ub2e8\uc5b4
|
||||
labels.bad_word_link_list = \ubaa9\ub85d
|
||||
labels.bad_word_link_create = \uc0c8\ub85c \ub9cc\ub4e4\uae30
|
||||
labels.bad_word_link_edit = \ud3b8\uc9d1
|
||||
labels.bad_word_link_delete = \uc0ad\uc81c
|
||||
labels.bad_word_link_details = \uc0c1\uc138
|
||||
labels.bad_word_link_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.bad_word_link_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.bad_word_button_download = \ub2e4\uc6b4\ub85c\ub4dc
|
||||
labels.bad_word_button_upload = \uc5c5\ub85c\ub4dc
|
||||
labels.bad_word_list_suggest_word = \uc81c\uc678 \ub2e8\uc5b4
|
||||
labels.bad_word_suggest_word = \uc81c\uc678 \ub2e8\uc5b4
|
||||
labels.bad_word_file = \uc81c\uc678 \uc6cc\ub4dc \ud30c\uc77c
|
||||
labels.user_configuration = \uc0ac\uc6a9\uc790
|
||||
labels.user_list_name = \uc774\ub984
|
||||
labels.user_password = \ube44\ubc00\ubc88\ud638
|
||||
labels.user_confirm_password = \ube44\ubc00\ubc88\ud638 (\ud655\uc778)
|
||||
labels.user_title_details = \uc0ac\uc6a9\uc790
|
||||
labels.role_configuration = \ub864
|
||||
labels.role_list_name = \uc774\ub984
|
||||
labels.role_name = \uc774\ub984
|
||||
labels.role_title_details = \ub864
|
||||
labels.role_button_create_crawler_role = \uc0c8\ub85c\uc6b4 \ud06c\ub864\ub7ec\uc704\ud55c \uc5ed\ud560 \ub9cc\ub4e4\uae30
|
||||
labels.group_configuration = \uadf8\ub8f9
|
||||
labels.group_list_name = \uc774\ub984
|
||||
labels.group_name = \uc774\ub984
|
||||
labels.group_title_details = \uadf8\ub8f9
|
||||
labels.crud_button_create = \uc791\uc131
|
||||
labels.crud_button_update = \uc5c5\ub370\uc774\ud2b8
|
||||
labels.crud_button_delete = \uc0ad\uc81c
|
||||
labels.crud_button_back = \ub3cc\uc544 \uac00\uae30
|
||||
labels.crud_button_edit = \ud3b8\uc9d1
|
||||
labels.crud_button_search = \uac80\uc0c9
|
||||
labels.crud_button_reset = \uc7ac\uc124\uc815
|
||||
labels.crud_button_cancel = \ucde8\uc18c
|
||||
labels.crud_link_create = \uc0c8\ub85c \ub9cc\ub4e4\uae30
|
||||
labels.crud_link_delete = \uc0ad\uc81c
|
||||
labels.crud_link_edit = \ud3b8\uc9d1
|
||||
labels.crud_link_details = \uc0c1\uc138
|
||||
labels.crud_link_list = \ubaa9\ub85d
|
||||
labels.crud_title_list = \ubaa9\ub85d
|
||||
labels.crud_title_create = \uc791\uc131
|
||||
labels.crud_title_edit = \ud3b8\uc9d1
|
||||
labels.crud_title_delete = \uc0ad\uc81c \ud655\uc778
|
||||
labels.crud_title_details = \uc0c1\uc138
|
||||
labels.crud_delete_confirmation = \uc815\ub9d0\ub85c \uc0ad\uc81c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||
labels.admin_brand_title = Fess
|
||||
labels.admin_dashboard_title = \ub300\uc2dc \ubcf4\ub4dc
|
||||
labels.admin_toggle_navi = \ud1a0\uae00 \ud0d0\uc0c9
|
||||
labels.general_menu_system = \uc2dc\uc2a4\ud15c
|
||||
labels.general_menu_crawler = \ud06c\ub864\ub7ec
|
||||
labels.general_menu_logging = \ub85c\uae45
|
||||
labels.general_menu_suggest = \uc11c\uc81c\uc2a4\ud2b8
|
||||
labels.general_menu_ldap = LDAP
|
||||
labels.general_menu_notification = \ud45c\uc2dc\ub4f1
|
||||
labels.ldapProviderUrl = LDAP URL
|
||||
labels.ldapSecurityPrincipal = Bind DN
|
||||
labels.ldapBaseDn = Base DN
|
||||
labels.ldap_provider_url = LDAP URL
|
||||
labels.ldap_security_principal = Bind DN
|
||||
labels.ldap_base_dn = Base DN
|
||||
labels.ldapAccountFilter = \uacc4\uc815 \ud544\ud130
|
||||
labels.ldap_account_filter = \uacc4\uc815 \ud544\ud130
|
||||
labels.notification_login = \ub85c\uadf8\uc778 \ud398\uc774\uc9c0
|
||||
labels.notification_search_top = \uac80\uc0c9 \ud648\ud398\uc774\uc9c0
|
||||
labels.send_testmail = \ud14c\uc2a4\ud2b8 \uba54\uc77c \ubcf4\ub0b4\uae30
|
||||
labels.backup_configuration = \ubc31\uc5c5
|
||||
labels.backup_name = \uc774\ub984
|
||||
labels.process_time_is_exceeded = \uac80\uc0c9 \ub300\uae30 \uc2dc\uac04\uc758 \uc0c1\ud55c\uc744 \ucd08\uacfc\ud588\uc2b5\ub2c8\ub2e4. \ud45c\uc2dc\ub41c \uacb0\uacfc\ub294 \uac80\uc0c9 \uacb0\uacfc\uc758 \uc77c\ubd80\uac00 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
|
||||
labels.user_given_name = \uc774\ub984 (\uc774\ub984)
|
||||
labels.givenName = \uc774\ub984 (\uc774\ub984)
|
||||
labels.user_surname = \uc774\ub984 (\uc131)
|
||||
labels.surame = \uc774\ub984 (\uc131)
|
||||
labels.user_mail = \uc774\uba54\uc77c \uc8fc\uc18c
|
||||
labels.mail = \uc774\uba54\uc77c \uc8fc\uc18c
|
||||
labels.user_employeeNumber = employeeNumber
|
||||
labels.employeeNumber = employeeNumber
|
||||
labels.user_telephoneNumber = telephoneNumber
|
||||
labels.telephoneNumber = telephoneNumber
|
||||
labels.user_homePhone = homePhone
|
||||
labels.homePhone = homePhone
|
||||
labels.user_homePostalAddress = homePostalAddress
|
||||
labels.homePostalAddress = homePostalAddress
|
||||
labels.user_labeledURI = labeledURI
|
||||
labels.labeledURI = labeledURI
|
||||
labels.user_roomNumber = roomNumber
|
||||
labels.roomNumber = roomNumber
|
||||
labels.user_description = description
|
||||
labels.description = description
|
||||
labels.user_title = title
|
||||
labels.title = title
|
||||
labels.user_pager = pager
|
||||
labels.pager = pager
|
||||
labels.user_street = street
|
||||
labels.street=street
|
||||
labels.user_postalCode=postalCode
|
||||
labels.postalCode=postalCode
|
||||
labels.user_physicalDeliveryOfficeName=physicalDeliveryOfficeName
|
||||
labels.physicalDeliveryOfficeName=physicalDeliveryOfficeName
|
||||
labels.user_destinationIndicator=destinationIndicator
|
||||
labels.destinationIndicator=destinationIndicator
|
||||
labels.user_internationaliSDNNumber=internationaliSDNNumber
|
||||
labels.internationaliSDNNumber=internationaliSDNNumber
|
||||
labels.user_state=state
|
||||
labels.state=state
|
||||
labels.user_employeeType=employeeType
|
||||
labels.employeeType=employeeType
|
||||
labels.user_facsimileTelephoneNumber=facsimileTelephoneNumber
|
||||
labels.facsimileTelephoneNumber=facsimileTelephoneNumber
|
||||
labels.user_postOfficeBox=postOfficeBox
|
||||
labels.postOfficeBox=postOfficeBox
|
||||
labels.user_initials=initials
|
||||
labels.initials=initials
|
||||
labels.user_carLicense=carLicense
|
||||
labels.carLicense=carLicense
|
||||
labels.user_mobile=mobile
|
||||
labels.mobile=mobile
|
||||
labels.user_postalAddress=postalAddress
|
||||
labels.postalAddress=postalAddress
|
||||
labels.user_city=city
|
||||
labels.city=city
|
||||
labels.user_teletexTerminalIdentifier=teletexTerminalIdentifier
|
||||
labels.teletexTerminalIdentifier=teletexTerminalIdentifier
|
||||
labels.user_x121Address=x121Address
|
||||
labels.x121Address=x121Address
|
||||
labels.user_businessCategory=businessCategory
|
||||
labels.businessCategory=businessCategory
|
||||
labels.user_registeredAddress=registeredAddress
|
||||
labels.registeredAddress=registeredAddress
|
||||
labels.user_displayName=displayName
|
||||
labels.displayName=displayName
|
||||
labels.user_preferredLanguage=preferredLanguage
|
||||
labels.preferredLanguage=preferredLanguage
|
||||
labels.user_departmentNumber=departmentNumber
|
||||
labels.departmentNumber=departmentNumber
|
||||
labels.user_uidNumber=uidNumber
|
||||
labels.uidNumber=uidNumber
|
||||
labels.user_gidNumber=gidNumber
|
||||
labels.gidNumber=gidNumber
|
||||
labels.user_homeDirectory=homeDirectory
|
||||
labels.homeDirectory=homeDirectory
|
147
src/main/resources/fess_message_ko.properties
Normal file
147
src/main/resources/fess_message_ko.properties
Normal file
|
@ -0,0 +1,147 @@
|
|||
# ========================================================================================
|
||||
# Framework Default
|
||||
# =================
|
||||
# ----------------------------------------------------------
|
||||
# Lasta Taglib
|
||||
# ------------
|
||||
errors.header = <ul class="has-error">
|
||||
errors.footer = </ul>
|
||||
errors.prefix = <li><i class="fa fa-exclamation-circle"></i>
|
||||
errors.suffix = </li>
|
||||
# ----------------------------------------------------------
|
||||
# Javax Validator
|
||||
# ---------------
|
||||
constraints.AssertFalse.message = {item}\uc740 false\ub85c\ud558\uc2ed\uc2dc\uc624.
|
||||
constraints.AssertTrue.message = {item}\uc740 true\ub85c\ud558\uc2ed\uc2dc\uc624.
|
||||
constraints.DecimalMax.message = {item}\ub294 {value}\ubcf4\ub2e4 \uc791\uc544\uc57c\ud569\ub2c8\ub2e4.
|
||||
constraints.DecimalMin.message = {item}\ub294 {value}\ubcf4\ub2e4 \ucee4\uc57c\ud569\ub2c8\ub2e4.
|
||||
constraints.Digits.message = {item}\uc740 \uc218\uce58\uc774\uc5b4\uc57c\ud569\ub2c8\ub2e4. (\uae30\ub300 \uac12 : <\uc218\uce58> <\uc218\uce58>)
|
||||
constraints.Future.message = {item}\uc740 \ubbf8\ub798 \uac00\uce58\uc5d0\ud574\uc57c\ud569\ub2c8\ub2e4.
|
||||
constraints.Max.message = {item}\ub294 {value} \ub2e4\uc74c\uc5d0\ud558\uc2ed\uc2dc\uc624.
|
||||
constraints.Min.message = {item}\ub294 {value} \uc774\uc0c1\uc73c\ub85c\ud558\uc2ed\uc2dc\uc624.
|
||||
constraints.NotNull.message = {item}\uc740 \ubbf8\uc785\ub825\uc785\ub2c8\ub2e4.
|
||||
constraints.Null.message = {item}\ub294 null\uac00 \uc544\ub2c8\uba74 \uc548\ub429\ub2c8\ub2e4.
|
||||
constraints.Past.message = {item}\uc740 \uacfc\uac70\uc758 \uac12\uc73c\ub85c\ud574\uc57c\ud569\ub2c8\ub2e4.
|
||||
constraints.Pattern.message = {item}\uac00 "{regexp}"\uc5d0 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
constraints.Size.message = {item}\uc758 \ud06c\uae30\ub294 {min}\uc5d0\uc11c {max}\uc758 \ubc94\uc704\ud569\ub2c8\ub2e4.
|
||||
# ------------------------------------------------- ---------
|
||||
# Hibernate Validator
|
||||
# -------------------
|
||||
constraints.CreditCardNumber.message = {item}\uc740 \uc798\ubabb\ub41c \uc2e0\uc6a9 \uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4.
|
||||
constraints.EAN.message = {item}\uc740 \uc798\ubabb\ub41c {type} \ubc14\ucf54\ub4dc\uc785\ub2c8\ub2e4.
|
||||
constraints.Email.message = {item}\uc740 \uc62c\ubc14\ub978 \uc774\uba54\uc77c \uc8fc\uc18c\uac00 \uc544\ub2d9\ub2c8\ub2e4.
|
||||
constraints.Length.message = {item}\uc758 \uae38\uc774\ub294 {min}\uc5d0\uc11c {max}\uc758 \ubc94\uc704\ud569\ub2c8\ub2e4.
|
||||
constraints.LuhnCheck.message = {value}\uc758 Luhn Modulo 11 \uccb4\ud06c\uc12c\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
constraints.Mod10Check.message = {value}\uc758 Modulo 10 \uccb4\ud06c\uc12c\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
constraints.Mod11Check.message = {value}\uc758 Modulo 11 \uccb4\ud06c\uc12c\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
constraints.ModCheck.message = {value}\uc758 {modType} \uccb4\ud06c\uc12c\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
constraints.NotBlank.message = {item}\uc740 \ubbf8\uc785\ub825\uc785\ub2c8\ub2e4.
|
||||
constraints.NotEmpty.message = {item}\uc740 \ubbf8\uc785\ub825\uc785\ub2c8\ub2e4.
|
||||
constraints.ParametersScriptAssert.message = \uc2a4\ud06c\ub9bd\ud2b8 \uc2dd "{script}"\uc774 true\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
constraints.Range.message = {item}\ub294 {min}\uc5d0\uc11c {max}\uc758 \ubc94\uc704\uc5d0 \uc788\uc5b4\uc57c\ud569\ub2c8\ub2e4.
|
||||
constraints.SafeHtml.message = {item}\uc740 \uc704\ud5d8\ud55c HTML \ucf58\ud150\uce20\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
|
||||
constraints.ScriptAssert.message = \uc2a4\ud06c\ub9bd\ud2b8 \uc2dd "{script}"\uc774 true\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
constraints.URL.message = {item}\uc740 \uc720\ud6a8\ud55c URL\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
constraints.Required.message = {item}\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.
|
||||
constraints.TypeInteger.message = {item}\uc740 \uc218\uce58\ub85c\ud558\uc2ed\uc2dc\uc624.
|
||||
constraints.TypeLong.message = {item}\uc740 \uc218\uce58\ub85c\ud558\uc2ed\uc2dc\uc624.
|
||||
constraints.TypeFloat.message = {item}\uc740 \uc218\uce58\ub85c\ud558\uc2ed\uc2dc\uc624.
|
||||
constraints.TypeDouble.message = {item}\uc740 \uc218\uce58\ub85c\ud558\uc2ed\uc2dc\uc624.
|
||||
constraints.TypeAny.message = {item}\ub294 {propertyType}\ub85c \ubcc0\ud658 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
constraints.UriType.message = {item}\uc5d0 \uc778\uc2dd \ud560 \uc218\uc5c6\ub294 URI\uac00 \uc788\uc2b5\ub2c8\ub2e4.
|
||||
constraints.CronExpression.message = {item}\uc740 \uc62c\ubc14\ub978 CRON \ud45c\uae30\ub294 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
|
||||
# ------------------------------------------------- ---------
|
||||
# Application Exception
|
||||
# ---------------------
|
||||
# / - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# five framework-embedded messages (do not change key names)
|
||||
# - - - - - - - - - - /
|
||||
errors.login.failure = \ub85c\uadf8\uc778\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.app.illegal.transition = \ubd80\uc815\ud55c \uc804\ud658\uc744 \uc704\ud574 \ub2e4\uc2dc \uc2e4\ud589\ud558\uc2ed\uc2dc\uc624.
|
||||
errors.app.db.already.deleted = \ub2e4\ub978 \ucc98\ub9ac\uc5d0\uc11c \uc81c\uac70\ub418\uc5b4\uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc791\uc5c5\uc744 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.
|
||||
errors.app.db.already.updated = \ub2e4\ub978 \ucc98\ub9ac\ub85c \uc5c5\ub370\uc774\ud2b8\ub418\uc5b4\uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc791\uc5c5\uc744 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.
|
||||
errors.app.db.already.exists = \ub370\uc774\ud130\uac00 \uc774\ubbf8 \uc874\uc7ac\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc791\uc5c5\uc744 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.
|
||||
errors.app.double.submit.request =\uc774 \uc694\uccad\ud558\uae30 \uc804\uc5d0 \ucc98\ub9ac\ub418\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc791\uc5c5\uc744 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.
|
||||
# _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ / _ /
|
||||
# you can define your messages here :
|
||||
# e.g.
|
||||
# errors.xxx = ...
|
||||
# info.xxx = ...
|
||||
# _ / _ / _ / _ / _ / _ / _ / _ / _ / _ /
|
||||
# ================================================= =======================================
|
||||
# Fess
|
||||
# ======
|
||||
errors.login_error = \uc0ac\uc6a9\uc790 \uc774\ub984 \ub610\ub294 \uc554\ud638\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.could_not_find_log_file = {0}\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_start_crawl_process = \ud06c\ub864\ub9c1 \ud504\ub85c\uc138\uc2a4\uc758 \uc2dc\uc791\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.invalid_design_jsp_file_name = \uc798\ubabb\ub41c JSP \ud30c\uc77c\uc785\ub2c8\ub2e4.
|
||||
errors.design_jsp_file_does_not_exist = JSP \ud30c\uc77c\uc740 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.design_file_name_is_not_found = \ud30c\uc77c \uc774\ub984\uc774 \uc9c0\uc815\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_write_design_image_file = \uc774\ubbf8\uc9c0 \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_update_jsp_file = JSP \ud30c\uc77c\uc758 \uc5c5\ub370\uc774\ud2b8\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.design_file_name_is_invalid = \ud30c\uc77c \uc774\ub984\uc774 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
|
||||
errors.design_file_is_unsupported_type =\uc774 \ud30c\uc77c \ud615\uc2dd\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_create_crawling_config_at_wizard = \ud06c\ub864\ub9c1 \uc124\uc815\uc758 \uc791\uc131\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.design_editor_disabled =\uc774 \uae30\ub2a5\uc740 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.not_found_on_file_system = \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc6d0\uc778 : {0}
|
||||
errors.could_not_open_on_system = {0}\uc744 \uc5f4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. <br> \ud30c\uc77c\uc774 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uacfc \uc5f0\uacb0\ub418\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.
|
||||
errors.result_size_exceeded = \ub354 \uc774\uc0c1 \uacb0\uacfc\ub97c \ud45c\uc2dc \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.target_file_does_not_exist = {0} \ud30c\uc77c\uc774 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_delete_file = {0} \ud30c\uc77c\uc758 \uc0ad\uc81c\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.docid_not_found = \ubb38\uc11c ID\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc6d0\uc778 : {0}
|
||||
errors.document_not_found = \ubb38\uc11c ID\uc758 URL\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc6d0\uc778 : {0}
|
||||
errors.not_load_from_server =\uc774 \uc11c\ubc84\uc5d0\uc11c\ub85c\ub4dc \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc6d0\uc778 : {0}
|
||||
errors.failed_to_start_job = \uc9c1\uc5c5 {0}\uc744 \uc2dc\uc791\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_stop_job = \uc9c1\uc5c5 {0} \uc911\uc9c0\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_download_synonym_file = \ub3d9\uc758\uc5b4 \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_upload_synonym_file = \ub3d9\uc758\uc5b4 \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_download_k\u200b\u200buromoji_file = Kuromoji \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_upload_k\u200b\u200buromoji_file = Kuromoji \ud30c\uc77c \uc5c5\ub85c\ub4dc\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_download_elevate_file = \ucd94\uac00 \uc6cc\ub4dc \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_upload_elevate_file = \ucd94\uac00 \uc6cc\ub4dc \ud30c\uc77c \uc5c5\ub85c\ub4dc\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_download_badword_file = \uc81c\uc678 \uc6cc\ub4dc \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_upload_badword_file = \uc81c\uc678 \uc6cc\ub4dc \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.invalid_str_is_included = {0}\uc5d0\uc11c {1}\uc740 \ubb34\ud6a8\uc785\ub2c8\ub2e4.
|
||||
errors.blank_password = \uc554\ud638\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.
|
||||
errors.invalid_confirm_password = \uc554\ud638 \ud655\uc778\uacfc \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.cannot_delete_doc_because_of_running = \ud06c\ub864\ub7ec\uac00 \uc2e4\ud589\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ubb38\uc11c\ub97c \uc81c\uac70 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_delete_doc_in_admin = \ubb38\uc11c\uc758 \uc0ad\uc81c\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_send_testmail = \ud14c\uc2a4\ud2b8 \uba54\uc77c\uc744 \ubcf4\ub0b4\ub294 \ub370 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.invalid_query_unknown = \uc9c0\uc815\ub41c \ucffc\ub9ac\uc5d0 \uc54c \uc218\uc5c6\ub294 \uc870\uac74\uc774 \uc788\uc2b5\ub2c8\ub2e4.
|
||||
errors.invalid_query_parse_error = \uc8fc\uc5b4\uc9c4 \ucffc\ub9ac\ub294 \ubb34\ud6a8\uc785\ub2c8\ub2e4.
|
||||
errors.invalid_query_sort_value = \uc9c0\uc815\ub41c \uc815\ub82c {0}\uc774 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
|
||||
errors.invalid_query_unsupported_sort_field = \uc9c0\uc815\ub41c \uc815\ub82c {0}\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.invalid_query_unsupported_sort_order = \uc9c0\uc815\ub41c \uc815\ub82c \uc21c\uc11c {0}\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.crud_invalid_mode = \ubaa8\ub4dc\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. ({0}\uc774 \uc544\ub2cc {1}\uc785\ub2c8\ub2e4)
|
||||
errors.crud_failed_to_create_instance = \uc0c8\ub85c\uc6b4 \ub370\uc774\ud130\uc758 \uc0dd\uc131\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
errors.crud_failed_to_create_crud_table = \uc0c8\ub85c\uc6b4 \ub370\uc774\ud130\uc758 \uc0dd\uc131\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. ({0})
|
||||
errors.crud_failed_to_update_crud_table = \ub370\uc774\ud130 \uc5c5\ub370\uc774\ud2b8\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. ({0})
|
||||
errors.crud_failed_to_delete_crud_table = \ub370\uc774\ud130\uc758 \uc0ad\uc81c\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. ({0})
|
||||
errors.crud_could_not_find_cr\u200b\u200bud_table = \ub370\uc774\ud130 {0}\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.could_not_find_backup_index = \ubc31\uc5c5 \uc778\ub371\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||
errors.no_user_for_changing_password = \ud604\uc7ac \uc554\ud638\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||
errors.failed_to_change_password = \uc554\ud638 \ubcc0\uacbd\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
|
||||
|
||||
success.update_crawler_params = \ub9e4\uac1c \ubcc0\uc218\ub97c \uac31\uc2e0\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.delete_doc_from_index = \uc778\ub371\uc2a4\uc5d0\uc11c \ubb38\uc11c\ub97c \uc0ad\uc81c\ud558\ub294 \uacfc\uc815\uc744 \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.crawling_info_delete_all = \uc138\uc158 \ub370\uc774\ud130\ub97c \uc0ad\uc81c\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.start_crawl_process = \ud06c\ub864\ub9c1 \ud504\ub85c\uc138\uc2a4 \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.upload_design_file = {0}\uc744 \uc5c5\ub370\uc774\ud2b8\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.update_design_jsp_file = {0}\uc744 \uc5c5\ub370\uc774\ud2b8\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.create_crawling_config_at_wizard = \ud06c\ub864\ub9c1 \uc124\uc815 {0}\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
|
||||
success.failure_url_delete_all = \uc7a5\uc560 URL\uc744 \uc0ad\uc81c\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.delete_file = {0} \ud30c\uc77c\uc744 \uc0ad\uc81c\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.job_started = \uc9c1\uc5c5 {0}\uc744 \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.job_stopped = \uc9c1\uc5c5 {0}\uc744 \uc911\uc9c0\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.upload_synonym_file = \ub3d9\uc758\uc5b4 \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.upload_k\u200b\u200buromoji_file = Kuromoji \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.upload_elevate_word = \ucd94\uac00 \uc6cc\ub4dc \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.upload_bad_word = \uc81c\uc678 \uc6cc\ub4dc \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.send_testmail = \ud14c\uc2a4\ud2b8 \uc774\uba54\uc77c\uc744 \ubcf4\ub0c8\uc2b5\ub2c8\ub2e4.
|
||||
success.job_log_delete_all = \uc791\uc5c5 \ub85c\uadf8\ub97c \uc0ad\uc81c\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.changed_pa\u200b\u200bssword = \uc554\ud638\ub97c \ubcc0\uacbd\ud588\uc2b5\ub2c8\ub2e4.
|
||||
|
||||
success.crud_create_crud_table = \ub370\uc774\ud130\ub97c \uc791\uc131\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.crud_update_crud_table = \ub370\uc774\ud130\ub97c \uc5c5\ub370\uc774\ud2b8\ud588\uc2b5\ub2c8\ub2e4.
|
||||
success.crud_delete_crud_table = \ub370\uc774\ud130\ub97c \uc0ad\uc81c\ud588\uc2b5\ub2c8\ub2e4.
|
|
@ -0,0 +1,156 @@
|
|||
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><la:message key="labels.admin_brand_title" /> | <la:message
|
||||
key="labels.dict_seunjeon_configuration" /></title>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/head.jsp"></jsp:include>
|
||||
</head>
|
||||
<body class="skin-blue sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<jsp:include page="/WEB-INF/view/common/admin/header.jsp"></jsp:include>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/sidebar.jsp">
|
||||
<jsp:param name="menuCategoryType" value="system" />
|
||||
<jsp:param name="menuType" value="dict" />
|
||||
</jsp:include>
|
||||
<div class="content-wrapper">
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
<la:message key="labels.dict_seunjeon_title" />
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><la:link href="list">
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link></li>
|
||||
<li><la:message key="labels.dict_seunjeon_list_link" /></li>
|
||||
</ol>
|
||||
</section>
|
||||
<section class="content">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</h3>
|
||||
<div class="btn-group pull-right">
|
||||
<la:link href="/admin/dict" styleClass="btn btn-default btn-xs">
|
||||
<i class="fa fa-book"></i>
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link>
|
||||
<la:link href="list/1?dictId=${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-th-list"></i>
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link>
|
||||
<la:link href="createnew/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-plus"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_create" />
|
||||
</la:link>
|
||||
<la:link href="downloadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-download"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_download" />
|
||||
</la:link>
|
||||
<la:link href="uploadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-upload"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_upload" />
|
||||
</la:link>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-header -->
|
||||
<div class="box-body">
|
||||
<%-- Message --%>
|
||||
<div>
|
||||
<la:info id="msg" message="true">
|
||||
<div class="alert alert-info">${msg}</div>
|
||||
</la:info>
|
||||
<la:errors />
|
||||
</div>
|
||||
<%-- List --%>
|
||||
<c:if test="${seunjeonPager.allRecordCount == 0}">
|
||||
<div class="row top10">
|
||||
<div class="col-sm-12">
|
||||
<i class="fa fa-info-circle text-light-blue"></i>
|
||||
<la:message key="labels.list_could_not_find_crud_table" />
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${seunjeonPager.allRecordCount > 0}">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<table class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><la:message key="labels.dict_seunjeon_source" /></th>
|
||||
<th><la:message key="labels.dict_seunjeon_target" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="data" varStatus="s"
|
||||
items="${seunjeonItemItems}">
|
||||
<tr
|
||||
data-href="${contextPath}/admin/dict/seunjeon/details/${f:u(dictId)}/4/${f:u(data.id)}">
|
||||
<td>${f:h(data.inputs)}</td>
|
||||
<td>${f:h(data.outputs)}</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<c:set var="pager" value="${seunjeonPager}" scope="request" />
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<la:message key="labels.pagination_page_guide_msg"
|
||||
arg0="${f:h(pager.currentPageNumber)}"
|
||||
arg1="${f:h(pager.allPageCount)}"
|
||||
arg2="${f:h(pager.allRecordCount)}" />
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<ul class="pagination pagination-sm no-margin pull-right">
|
||||
<c:if test="${pager.existPrePage}">
|
||||
<li class="prev"><la:link
|
||||
href="list/${pager.currentPageNumber - 1}?dictId=${f:u(dictId)}">
|
||||
<la:message key="labels.prev_page" />
|
||||
</la:link></li>
|
||||
</c:if>
|
||||
<c:if test="${!pager.existPrePage}">
|
||||
<li class="prev disabled"><a href="#"><la:message
|
||||
key="labels.prev_page" /></a></li>
|
||||
</c:if>
|
||||
<c:forEach var="p" varStatus="s"
|
||||
items="${pager.pageNumberList}">
|
||||
<li
|
||||
<c:if test="${p == pager.currentPageNumber}">class="active"</c:if>><la:link
|
||||
href="list/${p}?dictId=${f:u(dictId)}">${p}</la:link></li>
|
||||
</c:forEach>
|
||||
<c:if test="${pager.existNextPage}">
|
||||
<li class="next"><la:link
|
||||
href="list/${pager.currentPageNumber + 1}?dictId=${f:u(dictId)}">
|
||||
<la:message key="labels.next_page" />
|
||||
</la:link></li>
|
||||
</c:if>
|
||||
<c:if test="${!pager.existNextPage}">
|
||||
<li class="next disabled"><a href="#"><la:message
|
||||
key="labels.next_page" /></a></li>
|
||||
</c:if>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
</div>
|
||||
<!-- /.box -->
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,127 @@
|
|||
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><la:message key="labels.admin_brand_title" /> | <la:message
|
||||
key="labels.dict_seunjeon_configuration" /></title>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/head.jsp"></jsp:include>
|
||||
</head>
|
||||
<body class="skin-blue sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<jsp:include page="/WEB-INF/view/common/admin/header.jsp"></jsp:include>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/sidebar.jsp">
|
||||
<jsp:param name="menuCategoryType" value="system" />
|
||||
<jsp:param name="menuType" value="dict" />
|
||||
</jsp:include>
|
||||
<div class="content-wrapper">
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
<la:message key="labels.dict_seunjeon_title" />
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><la:link href="list">
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link></li>
|
||||
<li><la:link href="list/0/?dictId=${f:u(dictId)}">
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link></li>
|
||||
<li class="active"><la:message
|
||||
key="labels.dict_seunjeon_link_details" /></li>
|
||||
</ol>
|
||||
</section>
|
||||
<section class="content">
|
||||
<la:form action="/admin/dict/seunjeon/">
|
||||
<la:hidden property="crudMode" />
|
||||
<la:hidden property="dictId" />
|
||||
<c:if test="${crudMode==2 || crudMode==3 || crudMode==4}">
|
||||
<la:hidden property="id" />
|
||||
</c:if>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div
|
||||
class="box <c:if test="${crudMode == 1}">box-success</c:if><c:if test="${crudMode == 2}">box-warning</c:if><c:if test="${crudMode == 3}">box-danger</c:if><c:if test="${crudMode == 4}">box-primary</c:if>">
|
||||
<%-- Box Header --%>
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
<c:if test="${crudMode == 1}">
|
||||
<la:message key="labels.dict_seunjeon_link_create" />
|
||||
</c:if>
|
||||
<c:if test="${crudMode == 2}">
|
||||
<la:message key="labels.dict_seunjeon_link_edit" />
|
||||
</c:if>
|
||||
<c:if test="${crudMode == 3}">
|
||||
<la:message key="labels.dict_seunjeon_link_delete" />
|
||||
</c:if>
|
||||
<c:if test="${crudMode == 4}">
|
||||
<la:message key="labels.dict_seunjeon_link_details" />
|
||||
</c:if>
|
||||
</h3>
|
||||
<div class="btn-group pull-right">
|
||||
<la:link href="/admin/dict"
|
||||
styleClass="btn btn-default btn-xs">
|
||||
<i class="fa fa-book"></i>
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link>
|
||||
<la:link href="../list/1?dictId=${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-th-list"></i>
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link>
|
||||
<la:link href="../createnew/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-plus"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_create" />
|
||||
</la:link>
|
||||
<la:link href="../downloadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-download"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_download" />
|
||||
</la:link>
|
||||
<la:link href="../uploadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-upload"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_upload" />
|
||||
</la:link>
|
||||
</div>
|
||||
</div>
|
||||
<%-- Box Body --%>
|
||||
<div class="box-body">
|
||||
<%-- Message --%>
|
||||
<div>
|
||||
<la:info id="msg" message="true">
|
||||
<div class="alert alert-info">${msg}</div>
|
||||
</la:info>
|
||||
<la:errors />
|
||||
</div>
|
||||
<%-- Form Fields --%>
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th><la:message
|
||||
key="labels.dict_seunjeon_source" /></th>
|
||||
<td>${f:br(f:h(inputs))}<la:hidden property="inputs" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><la:message key="labels.dict_seunjeon_target" /></th>
|
||||
<td>${f:br(f:h(outputs))}<la:hidden property="outputs" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
<div class="box-footer">
|
||||
<jsp:include page="/WEB-INF/view/common/admin/crud/buttons.jsp"></jsp:include>
|
||||
</div>
|
||||
<!-- /.box-footer -->
|
||||
</div>
|
||||
<!-- /.box -->
|
||||
</div>
|
||||
</div>
|
||||
</la:form>
|
||||
</section>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,103 @@
|
|||
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><la:message key="labels.admin_brand_title" /> | <la:message
|
||||
key="labels.dict_seunjeon_configuration" /></title>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/head.jsp"></jsp:include>
|
||||
</head>
|
||||
<body class="skin-blue sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<jsp:include page="/WEB-INF/view/common/admin/header.jsp"></jsp:include>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/sidebar.jsp">
|
||||
<jsp:param name="menuCategoryType" value="system" />
|
||||
<jsp:param name="menuType" value="dict" />
|
||||
</jsp:include>
|
||||
<div class="content-wrapper">
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
<la:message key="labels.dict_seunjeon_title" />
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><la:link href="list">
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link></li>
|
||||
<li><la:link href="list/0/?dictId=${f:u(dictId)}">
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link></li>
|
||||
<li class="active"><la:message
|
||||
key="labels.dict_seunjeon_link_download" /></li>
|
||||
</ol>
|
||||
</section>
|
||||
<section class="content">
|
||||
<la:form action="/admin/dict/seunjeon/">
|
||||
<la:hidden property="dictId" />
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
<la:message key="labels.dict_seunjeon_link_download" />
|
||||
</h3>
|
||||
<div class="btn-group pull-right">
|
||||
<la:link href="/admin/dict"
|
||||
styleClass="btn btn-default btn-xs">
|
||||
<i class="fa fa-book"></i>
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link>
|
||||
<la:link href="../list/0/?dictId=${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-th-list"></i>
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link>
|
||||
<la:link href="../createnew/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-plus"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_create" />
|
||||
</la:link>
|
||||
<la:link href="../downloadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-download"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_download" />
|
||||
</la:link>
|
||||
<la:link href="../uploadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-upload"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_upload" />
|
||||
</la:link>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-header -->
|
||||
<div class="box-body">
|
||||
<%-- Message --%>
|
||||
<div>
|
||||
<la:info id="msg" message="true">
|
||||
<div class="alert alert-info">${msg}</div>
|
||||
</la:info>
|
||||
<la:errors />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name" class="col-sm-12 control-label">${f:h(path)}</label>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn btn-primary" name="download"
|
||||
value="<la:message key="labels.dict_seunjeon_button_download" />">
|
||||
<i class="fa fa-download"></i>
|
||||
<la:message key="labels.dict_seunjeon_button_download" />
|
||||
</button>
|
||||
</div>
|
||||
<!-- /.box-footer -->
|
||||
</div>
|
||||
<!-- /.box -->
|
||||
</div>
|
||||
</div>
|
||||
</la:form>
|
||||
</section>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,129 @@
|
|||
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><la:message key="labels.admin_brand_title" /> | <la:message
|
||||
key="labels.dict_seunjeon_configuration" /></title>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/head.jsp"></jsp:include>
|
||||
</head>
|
||||
<body class="skin-blue sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<jsp:include page="/WEB-INF/view/common/admin/header.jsp"></jsp:include>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/sidebar.jsp">
|
||||
<jsp:param name="menuCategoryType" value="system" />
|
||||
<jsp:param name="menuType" value="dict" />
|
||||
</jsp:include>
|
||||
<div class="content-wrapper">
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
<la:message key="labels.dict_seunjeon_title" />
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><la:link href="list">
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link></li>
|
||||
<li><la:link href="list/0/?dictId=${f:u(dictId)}">
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link></li>
|
||||
<c:if test="${crudMode == 1}">
|
||||
<li class="active"><la:message
|
||||
key="labels.dict_seunjeon_link_create" /></li>
|
||||
</c:if>
|
||||
<c:if test="${crudMode == 2}">
|
||||
<li class="active"><la:message
|
||||
key="labels.dict_seunjeon_link_edit" /></li>
|
||||
</c:if>
|
||||
</ol>
|
||||
</section>
|
||||
<section class="content">
|
||||
<la:form action="/admin/dict/seunjeon/" styleClass="form-horizontal">
|
||||
<la:hidden property="crudMode" />
|
||||
<la:hidden property="dictId" />
|
||||
<c:if test="${crudMode==2}">
|
||||
<la:hidden property="id" />
|
||||
</c:if>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div
|
||||
class="box <c:if test="${crudMode == 1}">box-success</c:if><c:if test="${crudMode == 2}">box-warning</c:if>">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
<c:if test="${crudMode == 1}">
|
||||
<la:message key="labels.dict_seunjeon_link_create" />
|
||||
</c:if>
|
||||
<c:if test="${crudMode == 2}">
|
||||
<la:message key="labels.dict_seunjeon_link_edit" />
|
||||
</c:if>
|
||||
</h3>
|
||||
<div class="btn-group pull-right">
|
||||
<la:link href="/admin/dict"
|
||||
styleClass="btn btn-default btn-xs">
|
||||
<i class="fa fa-book"></i>
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link>
|
||||
<la:link href="../list/1?dictId=${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-th-list"></i>
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link>
|
||||
<la:link href="../createnew/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-plus"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_create" />
|
||||
</la:link>
|
||||
<la:link href="../downloadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-download"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_download" />
|
||||
</la:link>
|
||||
<la:link href="../uploadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-upload"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_upload" />
|
||||
</la:link>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-header -->
|
||||
<div class="box-body">
|
||||
<div>
|
||||
<la:info id="msg" message="true">
|
||||
<div class="alert alert-info">${msg}</div>
|
||||
</la:info>
|
||||
<la:errors property="_global" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="term" class="col-sm-3 control-label"><la:message
|
||||
key="labels.dict_seunjeon_source" /></label>
|
||||
<div class="col-sm-9">
|
||||
<la:errors property="inputs" />
|
||||
<la:textarea property="inputs" rows="5"
|
||||
styleClass="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="outputs" class="col-sm-3 control-label"><la:message
|
||||
key="labels.dict_seunjeon_target" /></label>
|
||||
<div class="col-sm-9">
|
||||
<la:errors property="outputs" />
|
||||
<la:textarea property="outputs" rows="5"
|
||||
styleClass="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
<div class="box-footer">
|
||||
<jsp:include page="/WEB-INF/view/common/admin/crud/buttons.jsp"></jsp:include>
|
||||
</div>
|
||||
<!-- /.box-footer -->
|
||||
</div>
|
||||
<!-- /.box -->
|
||||
</div>
|
||||
</div>
|
||||
</la:form>
|
||||
</section>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,107 @@
|
|||
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><la:message key="labels.admin_brand_title" /> | <la:message
|
||||
key="labels.dict_seunjeon_configuration" /></title>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/head.jsp"></jsp:include>
|
||||
</head>
|
||||
<body class="skin-blue sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<jsp:include page="/WEB-INF/view/common/admin/header.jsp"></jsp:include>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/sidebar.jsp">
|
||||
<jsp:param name="menuCategoryType" value="system" />
|
||||
<jsp:param name="menuType" value="dict" />
|
||||
</jsp:include>
|
||||
<div class="content-wrapper">
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
<la:message key="labels.dict_seunjeon_title" />
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><la:link href="list">
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link></li>
|
||||
<li><la:link href="list/0/?dictId=${f:u(dictId)}">
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link></li>
|
||||
<li class="active"><la:message
|
||||
key="labels.dict_seunjeon_link_upload" /></li>
|
||||
</ol>
|
||||
</section>
|
||||
<section class="content">
|
||||
<la:form action="/admin/dict/seunjeon/upload" enctype="multipart/form-data">
|
||||
<la:hidden property="dictId" />
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
<la:message key="labels.dict_seunjeon_link_upload" />
|
||||
</h3>
|
||||
<div class="btn-group pull-right">
|
||||
<la:link href="/admin/dict"
|
||||
styleClass="btn btn-default btn-xs">
|
||||
<i class="fa fa-book"></i>
|
||||
<la:message key="labels.dict_list_link" />
|
||||
</la:link>
|
||||
<la:link href="../list/0/?dictId=${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-th-list"></i>
|
||||
<la:message key="labels.dict_seunjeon_list_link" />
|
||||
</la:link>
|
||||
<la:link href="../createnew/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-plus"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_create" />
|
||||
</la:link>
|
||||
<la:link href="../downloadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-primary btn-xs">
|
||||
<i class="fa fa-download"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_download" />
|
||||
</la:link>
|
||||
<la:link href="../uploadpage/${f:u(dictId)}"
|
||||
styleClass="btn btn-success btn-xs">
|
||||
<i class="fa fa-upload"></i>
|
||||
<la:message key="labels.dict_seunjeon_link_upload" />
|
||||
</la:link>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-header -->
|
||||
<div class="box-body">
|
||||
<%-- Message --%>
|
||||
<div>
|
||||
<la:info id="msg" message="true">
|
||||
<div class="alert alert-info">${msg}</div>
|
||||
</la:info>
|
||||
<la:errors />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name" class="col-sm-3 control-label"><la:message
|
||||
key="labels.dict_seunjeon_file" /></label>
|
||||
<div class="col-sm-9">
|
||||
<input type="file" name="seunjeonFile" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn btn-success"
|
||||
value="<la:message key="labels.dict_seunjeon_button_upload" />">
|
||||
<i class="fa fa-upload"></i>
|
||||
<la:message key="labels.dict_seunjeon_button_upload" />
|
||||
</button>
|
||||
</div>
|
||||
<!-- /.box-footer -->
|
||||
</div>
|
||||
<!-- /.box -->
|
||||
</div>
|
||||
</div>
|
||||
</la:form>
|
||||
</section>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
|
||||
</div>
|
||||
<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Reference in a new issue