All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.liferay.gradle.plugins.lang.builder.BuildLangTask Maven / Gradle / Ivy

Go to download

The Lang Builder Gradle plugin lets you run the Liferay Lang Builder tool to sort and translate the language keys in your project.

There is a newer version: 2.2.2
Show newest version
/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.gradle.plugins.lang.builder;

import com.liferay.gradle.util.FileUtil;
import com.liferay.gradle.util.GradleUtil;
import com.liferay.gradle.util.Validator;
import com.liferay.lang.builder.LangBuilderArgs;

import java.io.File;

import java.util.ArrayList;
import java.util.List;

import org.gradle.api.logging.Logger;
import org.gradle.api.logging.Logging;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.InputFile;
import org.gradle.api.tasks.JavaExec;
import org.gradle.api.tasks.Optional;

/**
 * @author Andrea Di Giorgi
 */
public class BuildLangTask extends JavaExec {

	public BuildLangTask() {
		setMain("com.liferay.lang.builder.LangBuilder");
	}

	@Override
	public void exec() {
		setArgs(getCompleteArgs());

		super.exec();
	}

	@Input
	public File getLangDir() {
		return GradleUtil.toFile(getProject(), _langDir);
	}

	@Input
	public String getLangFileName() {
		return GradleUtil.toString(_langFileName);
	}

	@InputFile
	@Optional
	public File getPortalLanguagePropertiesFile() {
		return GradleUtil.toFile(getProject(), _portalLanguagePropertiesFile);
	}

	@Input
	@Optional
	public String getTranslateClientId() {
		return GradleUtil.toString(_translateClientId);
	}

	@Input
	@Optional
	public String getTranslateClientSecret() {
		return GradleUtil.toString(_translateClientSecret);
	}

	@Input
	public boolean isPlugin() {
		return _plugin;
	}

	@Input
	public boolean isTranslate() {
		return _translate;
	}

	public void setLangDir(Object langDir) {
		_langDir = langDir;
	}

	public void setLangFileName(Object langFileName) {
		_langFileName = langFileName;
	}

	public void setPlugin(boolean plugin) {
		_plugin = plugin;
	}

	public void setPortalLanguagePropertiesFile(
		Object portalLanguagePropertiesFile) {

		_portalLanguagePropertiesFile = portalLanguagePropertiesFile;
	}

	public void setTranslate(boolean translate) {
		_translate = translate;
	}

	public void setTranslateClientId(Object translateClientId) {
		_translateClientId = translateClientId;
	}

	public void setTranslateClientSecret(Object translateClientSecret) {
		_translateClientSecret = translateClientSecret;
	}

	protected List getCompleteArgs() {
		List args = new ArrayList<>(getArgs());

		args.add(
			"lang.dir=" + FileUtil.relativize(getLangDir(), getWorkingDir()));
		args.add("lang.file=" + getLangFileName());
		args.add("lang.plugin=" + isPlugin());

		File portalLanguagePropertiesFile = getPortalLanguagePropertiesFile();

		if (portalLanguagePropertiesFile != null) {
			args.add(
				"lang.portal.language.properties.file=" +
					FileUtil.relativize(
						getPortalLanguagePropertiesFile(), getWorkingDir()));
		}

		boolean translate = isTranslate();

		if (translate) {
			String translateClientId = getTranslateClientId();
			String translateClientSecret = getTranslateClientSecret();

			if (Validator.isNull(translateClientId) ||
				Validator.isNull(translateClientSecret)) {

				if (_logger.isWarnEnabled()) {
					_logger.warn(
						"Translation is disabled because credentials are not " +
							"specified");
				}

				translate = false;
			}
			else {
				args.add("lang.translate.client.id=" + translateClientId);
				args.add(
					"lang.translate.client.secret=" + translateClientSecret);
			}
		}

		args.add("lang.translate=" + translate);

		return args;
	}

	private static final Logger _logger = Logging.getLogger(
		BuildLangTask.class);

	private Object _langDir;
	private Object _langFileName = LangBuilderArgs.LANG_FILE_NAME;
	private boolean _plugin = LangBuilderArgs.PLUGIN;
	private Object _portalLanguagePropertiesFile;
	private boolean _translate = LangBuilderArgs.TRANSLATE;
	private Object _translateClientId;
	private Object _translateClientSecret;

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy