Internationalisation
Perhaps this query ought to go into the i18n forum but I was wondering what others do in the internationalization of their applications, in particular J2EE-based. One problem I keep running into is the placement of text on the generated HTML pages. For example, if a sentence fragment is some 30 chars. in english, in french it may be upto 30-50% greater in length, leading to format problems.
thanks, domo arrigato, merci, danke, shukria
V.I Ulyanov,
thanks for your suggestion. we have implemented a system with a custom tag handler + XML file with the appropriate text. We still run into the sentence length fragment problem even when one of the attributes of a tag is length and formatting should based on this length.
spasibo.
Similar Messages
-
Internationalisation in WD ABAP
hi,
i am new in Wd ABAP, i need to use internationalisation with OTR texts.
plz suggest and also give some dummy program if possible.Hi Pankaj,
Check this standard program.
WDR_TEST_MISC
also check this document.
http://help.sap.com/saphelp_nw04s/helpdata/en/0a/784941bb75f623e10000000a155106/frameset.htm -
Problems with Internationalisation
Hi All,
We have built an enterprise class, web based, J2EE application built on Orion Application Server, Apache Struts and Oracle (no surprises here :) ) database. The application is internationalised to cater to various European languages and the internationalisation is achieved through standard methods like usage of Resource Bundles etc. The problem that we face (and this happens only when we run the application on Solaris - not on Windows) is that after an hour or so, all the internationalised characters are replaced by a ?. This happens only after some time and a restart of the application server removes the problem. I would really appreciate if somebody could shed some light on this rather weird problem.- maybe we are screwing up somewhere. One place I suspect is that the charset in the jsp (or rather the HTML) is set to ISO 8859-1 which should be UTF8 - However we are displaying Spanish, German, French and Italian so shouldn't the default char set take care? The funniest part is that we do not face the same problem on NT
Thanks in advance for the help.
Regards
SaumitraThanks for your reponse - I have isolated the problem to this:
I have a table which contains spanish / german data (which means special characters like umlauts, accents etc). When I read the data using JDBC calls and display it through a scriptlet, it all looks fine. When I do the display using any of struts tags (e.g. logic:iterate ) it works fine for a while. After a couple of hours (don't know how many hours it takes to reproduce this problem) , all the special characters like umlauts get replaced by a ?. Further, this problem happens only on Solaris and I could not replicate this problem on Windows NT.
My setup is:
Orion J2EE sever 1.0.2.2.1
Apache Struts 1.0
Solaris 5.8 running on SPARC machines
JDK 1.3.0 (Full Version)
I would really appreciate any help on this.
Thanks in advance -
Internationalised Example Help Needed
My goal here is to put together an easily understandable example of an Internationalised stand-alone java application.
To start, I would like to create a stand-alone java application that performs the following tasks:
1. Has a pulldown that allows a user to select a language (English, Arabic, Korean, Greek, etc.) When the language is selected, I want to change the properties of a JTextFild so that when a user types in the JTextField, the characters that come out in the JTextField are in the language that was selected in the pulldown. I know how to create the pulldown, but how do I change the properties of the TextField dynamically?
2. I have a JButton that, when pressed, stores the language selected AND the characters in the JTextField into a Sybase Database. It also adds the same info to a JList that displays a list of text strings (in the language that they were entered) with their selected language (in English). My questions here are:
- How should I store the text in the database (Hex or Unicode?)
- Is it possible to have a JList display different languages on different lines within the list?
- Is there a generic font that can display ALL types of languages?
Any help (especially code samples) would be greatly appreciated. I have read the tutorials on this site, but I didn't see anything that would help.What do you mean when you say "the characters that come out in the JTextField are in the language that was selected in the pulldown"? The characters that are displayed in the field depend on the characters that the user inputs. There are no properties to change.
2. I have a JButton that, when pressed, stores the
language selected AND the characters in the
JTextField into a Sybase Database. It also adds the
same info to a JList that displays a list of text
strings (in the language that they were entered) with
their selected language (in English). My questions
here are:
- How should I store the text in the database (Hex
Hex or Unicode?)I don't know Sybase, so there may be implementation-specific issues, but for the DBs that I know, it would only make sense to configure the DB to store eveything in Unicode. If you store hex values, the DB will not be able to perform locale-dependent collation, etc.
>
- Is it possible to have a JList display different
ent languages on different lines within the list?
Yes, why not? As long as everything is in Unicode, you can display anything you want anywhere you want (single characters alternating, for that matter)
- Is there a generic font that can display ALL
ALL types of languages?Well, there are Unicode fonts that support MOST languages, but I think there will always be edge cases with new character sets that have only recently been added to the Unicode standard.
Any help (especially code samples) would be greatly
appreciated. I have read the tutorials on this site,
but I didn't see anything that would help.In that case I recommend that you find some of the books on Java internationalization and study them. A simple Google search will also give you some helpful links. -
Internationalise iviews and menus
Translation worklist coordinator:
hi all,
i want to translate my iview names and menus to German.i did one sample eg. with one iview. proceeded in the following way:
1.Create a Worklist Translation
A2.dd content to translation worklist
3.Generate Translation data
Worklist Translation:
1.Translate worklist
2.Save and mark worklist as translated
Translation worklist coordinator:
1.Load Worklist into the Portal
But even after the last step my iview is displayed in english itslf in portal.have given this iview to a user also. do i have to do anyother step for internationalise my things?
thnks and regards
kukkuhi Jane,
thanks a lot!!! it worked for me. i selected the language for user as german and it worked!!!.have contributed points to u..
thanks a lot...
regards
kukku -
Hi experts,
I am using ResourceBundle for implementing internationalization concept.when i am deploying my application WebDynpro creates a default language property file in the package.
like "com.sap.internationalisation.wdp.ResourceInternationalisationComp"
Now i am creating a property file with german language by copying existing property file with language specific changes. and placing it in the same location where your default property file is placed.
Now i am changing browser language to german and putting it in first order.
when i deploy my application it is not picking german property file Instead it is taking default property file.
Is there any other setting need to be done..
Thanks in advanceHi Sushma,
Suppose if Your Application has One View named " XYZView ".
You Wants to Apply Internationalization to that Application in the German Language Follow the below Steps.
1.) Go to Navigator --> Your Application --> Expand it --> src --> packages --> your Package Path --> there you find " XYZView.wdview.xlf " file.
2.) It contains labels, table headers, ... etc.
3.) Suppose If You wants your Application to be Internationalized to German Language then Copy the above file ( " XYZView.wdview.xlf " ) and Paste it in the same Folder and rename it as ("XYZView.wdview_de.xlf").
4.) The file ("XYZView.wdview_de.xlf") contains all labels, table headers, ..... etc. in English it self.
5.) Now you Double Click on ("XYZView.wdview_de.xlf") & go to Resource Text Tab. Select One Entry --> Right Click on it --> Click Edit --> New Window Opens --> In that Window Replace English Word with Equivalent German Word for Text Input Field --> Press OK.
6.) Repeat Step 5 for all Entries in the file ("XYZView.wdview_de.xlf").
7.) Save the Application.
8.) Reload the Application.
9.) Now the Application is Internationalized for German Language.
10.) To Test the Application Change the Browser's Local Setting to German and Deploy the Application.
Now the Application Works in German Language.
If you have any more Doubts Reply with them back.
With Regards,
RooP KumaR. -
Hi,
This question has already been asked ( http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=article&group=weblogic.developer.interest.portal&item=5037&utag=
) but without any valid answer.
How can we localise the whole portal, including page names, portlet names ...,
specifying the preferred local programmatically (depending on the user profile
for instance).
By default, portal use the locale of the browser. It is easy to use another one
in the portlets, through the i18n tags.
however, I found nowhere how to change the default behaviour for the portlet or
page titles !!!
Looking in singlelevelmenu.jsp, the page titles are retrieved using getTitle()
method of the class com.bea.netuix.servlets.controls.page.PagePresentationContext.
Do this class manage internationalisation ? If yes, how can we change the preferred
locale programmatically.
I tried including i18n tag in this jsp, but it changed nothing.
Thanks,
ChristopheHi
I think it is better to use <i18> tag itself as when we change the locale object
it dynamically refer to the particular resource bundle.
"Pramit" <[email protected]> wrote:
>
Hi Mani
Thanks for the answer.
I went through Weblogic8.1 docs. They also refer to Message Catalogs.
So which
one do you think is the better approach <i18> oressage Catalogues
Thanks in advance
Pramit
"Manikandan" <[email protected]> wrote:
"Pramit Jain" <[email protected]> wrote:
Hi
I am doing business estimation for a pharmaceutical existing site to
migrate to
BEA Portal 8.1.
For that I need the Localisation strategies and best practises followed
for Internationalisation
in BEA portal 8.1.
It would be great if I can get some information on the same.
Thanks
PramitHi Pramit
For localization issues weblogic 8.1 provides <i18 /> tag, where u can
refer to
a particular locale and display the labels picking up from the resource
bundle.Refer
<i18> tag for more details.
Regards,
Mani -
Encoding in Java XSU internationalisation problem
I have SUN Solaris 2.7, JDK 1.2, Oracle 8.0.5, Oracle XSU 1.2. When I use KOI8-R text encoding and set this in XSU then I see only signs "?????", but if I set ISO-8859-1 then it's Ok. I could work with ISO-8859-1, but in Oracle it stores bad text. Only latinian words was stored successful.
A new user name?
I can think of ways round your problem but can you first provide a reference that indicates that byte 0x80 is the MS936 encoding for the Euro?
P.S. This is a forum and the vast majority of participants, including me, have no direct relationship with Oracle so getting definitive answers from Oracle via this forum is unlikely. If you think you have found a bug in 1.5 and/or 1.6, and I am not convinced you have, you need to report it via the bug database. If it is a bug then the response time for a fix is likely to be months rather than days.
P.P.S No I can't explain why it works in 1.7! -
I need to save Chinese Characters through java application to database.
USing Java InputMethod Framework i was able to type chinese in textarea.
I also changed database field type to nvarchar2 and tried saving.
The data got from the textfield or textarea using getText() method is in '????' format.And the data saved in database is in some other format.
When i retrievd the value from database, and tried to set text in text area,nothing was displayed. Is this not the right way to do?How should i solve the problem?I belive chinese characters are especially unplesant to handle because there is more than 256 of them (correct me if I'm wrong). If I were you I would do following steps:
1. Make sure your OS has proper chinese support. You should be able to display chinese windows titles, switch keyboard to chinese and have chinese font. If you have JEdit then beeing able to type chinese text in it will be good proof. There is chinese keyboard isn't it?
2. Get well prooven unicode codes for text you try to put in database. It can be done by editing document in JEdit and saving it with Unicode (16 bit) encoding. You can the open it in hex viewer and get codes for text;
3. When you get data from JTextField dump it to System.out character by character converting each of them to number ie. System.out.print(((int)my_string.charAt(i)) & 0xffff). Verify if it matches known codes. If it does, then input to Java works ok. If not, you may need to change system locale or do something about what I don't know at all. I don't know the byte order in unicode files so there would be better to dump codes in hex;
4. If typed text does not show correctly in JTextField but it has proper codes then problem is with font. Maybe you don't have chinese font which matches font familly used by JTextField. Reading about how Swing displays fonts will help here;
5. Once you have your Unicode data you have to make sure that your database can store it. Contact with database supplier if it supports either Unicode16 or UTF-8 encodings. If it does not, you are it troubles. If database is not unicode then it will make attempts to convert your texts to known selected code page. What is "nvarchar2" ? . Note, transfers to database goes through JDBC which may also do some unwanted conversions.
6. Transfer your text to database and read it back. Check again codes of characters to eliminate displaying problems.
If all above steps will not allow you to isolate problem feel free to ask again.
P.S.
If you are not tied to specific database there is a http:://www.mckoi.com/database -
JMenu and internationalisation (Locale ?)
Hello,
I have some menus that I wish to change based on the selected language
of the user. I have some text that is in IN18 Latin that should render
in my JMenu. The problem is that some accented letters of the alphabet are
not rendering properly. For example "Régions" renders in the menus as
"Régions".
My application is a web applet, so the end user has no access to the
start up of java at all, except for their system locale settings.
Should I be encoding my translations of menus as HTML(ish) Unicode strings?
Do I have the wrong Locale setup?
I did try the following:
Locale locale = Locale.getDefault();
Locale.setDefault(Locale.FRANCE);This did nothing to resolve the problem.
Is there a tutorial that shows the proper way of using international character sets
transparently without having to start the java application in a special way from the
command line?
Thanks for any pointers.
Peter
Edited by: pgw on Nov 3, 2008 1:06 PMWell, I'm reading data from the database via:
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));Which I just changed to:
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF8"));Now all is well.
I had tried to convert the actual string, but
String.getBytes(original, "UTF-8") appeared to be converting the ESC character to UTF ... (??)
Anyway it didn't work.
Specifying the format of the InputStreamReader appears to be the way to go.
Thanks for the leads. -
HI,
I am working on FPM( OIF ). I have made two main views in that. say view1 and view2.
Now how can i do the internationalization for the same.
I have to do the internationalization for the Aplication Title also.Hi
Check this [Link|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/c069b075-e48f-2c10-66ba-f57442c9076c].
Regards,
Surjith -
Reading Internationalised Bundles Outside of a Jar File
I have seen this question many times throughout this forum and other forums where a jar file is tryingto load a resource outside of the jar file. The answers are often scattered or partial solutions. This is an attempt to provide a complete solution.
Step 1)
In your manifest file add to the Class-Path attribute the current directory, ie . plus any other library files you require (seperated with spaces).
for example
Class-Path: . lib/log4j.jar
Step 2)
In your code, make sure that you are correctly requesting the resource. If you are requesting a resource from the directory where you are running your jar file from (i.e. the working directory), simply use ResourceBundle.getBundle("Resource"); or equivalent method.
If you bundle is within a directory, you must specify the directory when getting the Bundle as a dot seperated string, i.e.
ResourceBundle.getBundle("etc.i18n.Resource"); would look for the file <working-directory)/etc/i18n/Resource.properties.
I hope this may help people having problems with this excellent tool. Please feel free to add to this tutorial or amend any mistakes I may have made.
Good Luck
codemwnciI followed the instructions here and had every thing correct. I created the jar with ant using fearly standard build.xml. Things didn't still work out. Spent few hours wondering why things don't work.
Reason: the property-files were not included in indexing.
Basically there is two way around:
1) Add the property files to the index of the jar.
The problem here is that you cannot have new property-files without creating the index again.
2) Don't do the indexing for the jar.
In this case the jar is not so well optimazed, and in some case that may be a little problem. -
Internationalisation ServletFilter and UTF8 Character-Encoding
Hello to all
I use a non common but nice way to internationalize my web-application.
I use a ServletFilter to replace the text-keys. So static-resources stays static-resources that can be cached and don't need to be translated each time they are requested.
But there is a little problem to get it working with utf-8.
In my opinion there is only one way to read the response-content. I have to use a own HttpServletResponseWrapper like recommended under [http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets8.html#82361].
If I do so it is no more possible to use ServletQutputStream (wrapper.getOutputStream()) to write back the modified/internationalized content (e.g. with german umlauts/Umlaute) back to the response in the right encoding.
Writer out = new BufferedWriter(new OutputStreamWriter(wrapper.getOutputStream(), "UTF8"));Using PrintWriter for writing does not work. Because umlauts are send in the wrong encoding (iso-8859-1). With the network-sniffer Wireshark I've seen that � comes as FC that means as iso-8859-1 encoded character.
It obviously uses the plattforms default-encoding although the documentation does not mentions this explictly for the Constructor ([PrintWriter(java.io.Writer,boolean)|http://java.sun.com/j2se/1.4.2/docs/api/java/io/PrintWriter.html#PrintWriter(java.io.Writer,%20boolean)]).
So my questions:
1. Is there a way to get response-content without loosing option to call wrapper.getOutputStream().
or
2. can I set the encoding for my printwriter
or
3. can I encode the content before writing it to the printwriter and will this solve the problem
new String(Charset.forName("UTF8").encode(content).array(), "UTF8") did not work.
Here comes my code:
The Filter to tanslate the resources/response:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import de.modima.util.lang.Language;
public class TranslationFilter implements Filter
private static final Log log = LogFactory.getLog(TranslationFilter.class);
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
String lang = Language.setLanguage((HttpServletRequest) request);
CharResponseWrapper wrapper = new CharResponseWrapper((HttpServletResponse)response, "UTF8");
PrintWriter out = response.getWriter();
chain.doFilter(request, wrapper);
String content = wrapper.toString();
content = Language.translateContent(content, lang);
content += " ";
wrapper.setContentLength(content.length());
out.write(content);
out.flush();
out.close();
public void destroy(){}
public void init(FilterConfig filterconfig) throws ServletException{}
}The response-wrapper to get acces to the response content:
import java.io.CharArrayWriter;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class CharResponseWrapper extends TypedSevletResponse
private static final Log log = LogFactory.getLog(CharResponseWrapper.class);
private CharArrayWriter output;
public String toString()
return output.toString();
public CharResponseWrapper(HttpServletResponse response, String charsetName)
super(response, charsetName);
output = new CharArrayWriter();
public PrintWriter getWriter()
return new PrintWriter(output, true);
}The TypedResponse that takes care for setting the right http-header informations according to the given charset:
import java.nio.charset.Charset;
import java.util.StringTokenizer;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
public class TypedSevletResponse extends HttpServletResponseWrapper
private String type;
private String charsetName;
* @param response
* @param charsetName the java or non-java name of the charset like utf-8
public TypedSevletResponse(HttpServletResponse response, String charsetName)
super(response);
this.charsetName = charsetName;
public void setContentType(String type)
if (this.type==null && type!=null)
StringTokenizer st=new StringTokenizer(type,";");
type=st.hasMoreTokens()?st.nextToken():"text/html";
type+="; charset="+getCharset().name();
this.type=type;
getResponse().setContentType(this.type);
public String getContentType()
return type;
public String getCharacterEncoding()
try
return getCharset().name();
catch (Exception e)
return super.getCharacterEncoding();
protected Charset getCharset()
return Charset.forName(charsetName);
}Some informations about the enviroment:
OS: Linux Debian 2.6.18-5-amd64
Java: IBMJava2-amd64-142
Apserver: JBoss 3.2.3
Regards
Markus Liebschner
Edited by: MaLie on 30.04.2008 11:52
Edited by: MaLie on 30.04.2008 11:54 ... typo
Edited by: MaLie on 30.04.2008 12:04Hello cndvg
yes I did.
I found the solution in this forum at [Filter inconsistency Windows-Solaris?|http://forum.java.sun.com/thread.jspa?threadID=520067&messageID=2518948]
You have to use a own implementation of ServletOutputStream.
public class TypedServletOutputStream extends ServletOutputStream
CharArrayWriter buffer;
public TypedServletOutputStream(CharArrayWriter aCharArrayWriter)
super();
buffer = aCharArrayWriter;
public void write(int aInt)
buffer.write(aInt);
}Now the CharResponseWrapper looks like this.
public class CharResponseWrapper extends TypedSevletResponse
private static final Log log = LogFactory.getLog(CharResponseWrapper.class);
private CharArrayWriter output;
public String toString()
return output.toString();
public CharResponseWrapper(HttpServletResponse response, String charsetName)
super(response, charsetName);
output = new CharArrayWriter();
public PrintWriter getWriter() throws IOException
return new PrintWriter(output,true);
public ServletOutputStream getOutputStream()
return new TypedServletOutputStream(output);
}Regards
MaLie -
Streaming CSV via Apache/ Tomcat with Mod Proxy
I have Apache hooked up to Tomcat using mod_proxy and attempts to stream a CSV file from a Struts action via tomcat fails.
Using the tomcat port localhost:8080/testappp the streaming works fine but for some reason it does not work via the apache url
Build is Red Hat Enterprise Linux AS release 4 on Apache 2.0.52-25 and Tomcat 5.5
Below are pastes of the apache conf file and tomcat server.xml
Thanks
# httpd.conf
# Based upon the NCSA server configuration files originally by Rob McCool.
# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs-2.0/> for detailed information about
# the directives.
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
# The configuration directives are grouped into three basic sections:
# 1. Directives that control the operation of the Apache server process as a
# whole (the 'global environment').
# 2. Directives that define the parameters of the 'main' or 'default' server,
# which responds to requests that aren't handled by a virtual host.
# These directives also provide default values for the settings
# of all virtual hosts.
# 3. Settings for virtual hosts, which allow Web requests to be sent to
# different IP addresses or hostnames and have them handled by the
# same Apache server process.
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do not begin
# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
# with ServerRoot set to "/etc/httpd" will be interpreted by the
# server as "/etc/httpd/logs/foo.log".
### Section 1: Global Environment
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests it can handle or where it
# can find its configuration files.
# Don't give away too much information about all the subcomponents
# we are running. Comment out this line if you don't mind remote sites
# finding out what major optional modules you are running
ServerTokens OS
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
# NOTE! If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the LockFile documentation
# (available at <URL:http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile>);
# you will save yourself a lot of trouble.
# Do NOT add a slash at the end of the directory path.
ServerRoot "/etc/httpd"
# PidFile: The file in which the server should record its process
# identification number when it starts.
PidFile run/httpd.pid
# Timeout: The number of seconds before receives and sends time out.
Timeout 120
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
KeepAlive Off
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
MaxKeepAliveRequests 100
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
KeepAliveTimeout 15
## Server-Pool Size Regulation (MPM specific)
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#Listen 12.34.56.78:80
Listen 80
# Dynamic Shared Object (DSO) Support
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available before they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule auth_anon_module modules/mod_auth_anon.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule auth_ldap_module modules/mod_auth_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule imap_module modules/mod_imap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dav_svn_module /usr/lib/httpd/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/httpd/modules/mod_authz_svn.so
# Load config files from the config directory "/etc/httpd/conf.d".
Include conf.d/*.conf
# ExtendedStatus controls whether Apache will generate "full" status
# information (ExtendedStatus On) or just basic information (ExtendedStatus
# Off) when the "server-status" handler is called. The default is Off.
#ExtendedStatus On
### Section 2: 'Main' server configuration
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
# User/Group: The name (or #number) of the user/group to run httpd as.
# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
# . On HPUX you may not be able to use shared memory as nobody, and the
# suggested workaround is to create a user www and use that user.
# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
# when the value of (unsigned)Group is above 60000;
# don't use Group #-1 on these systems!
User apache
Group apache
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. [email protected]
ServerAdmin [Email]root@localhost[Email]
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work. See also the UseCanonicalName directive.
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
ServerName ext02:80
# UseCanonicalName: Determines how Apache constructs self-referencing
# URLs and the SERVER_NAME and SERVER_PORT variables.
# When set "Off", Apache will use the Hostname and Port supplied
# by the client. When set "On", Apache will use the value of the
# ServerName directive.
UseCanonicalName Off
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
DocumentRoot "/var/www/html"
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
# First, we configure the "default" to be a very restrictive set of
# features.
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
# This should be changed to whatever you set DocumentRoot to.
<Directory "/var/www/html">
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Note that "MultiViews" must be named explicitly --- "Options All"
# doesn't give it to you.
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
Options Indexes FollowSymLinks
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride None
# Controls who can get stuff from this server.
Order allow,deny
Allow from all
</Directory>
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
# The path to the end user account 'public_html' directory must be
# accessible to the webserver userid. This usually means that ~userid
# must have permissions of 711, ~userid/public_html must have permissions
# of 755, and documents contained therein must be world-readable.
# Otherwise, the client will only receive a "403 Forbidden" message.
# See also: http://httpd.apache.org/docs/misc/FAQ.html#forbidden
<IfModule mod_userdir.c>
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
UserDir disable
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
#UserDir public_html
</IfModule>
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
DirectoryIndex index.php index.html index.html.var
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
AccessFileName .htaccess
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
# TypesConfig describes where the mime.types file (or equivalent) is
# to be found.
TypesConfig /etc/mime.types
# DefaultType is the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value. If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
DefaultType text/plain
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type. The MIMEMagicFile
# directive tells the module where the hint definitions are located.
<IfModule mod_mime_magic.c>
# MIMEMagicFile /usr/share/magic.mime
MIMEMagicFile conf/magic
</IfModule>
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
HostnameLookups Off
# EnableMMAP: Control whether memory-mapping is used to deliver
# files (assuming that the underlying OS supports it).
# The default is on; turn this off if you serve from NFS-mounted
# filesystems. On some systems, turning it off (regardless of
# filesystem) can improve performance; for details, please see
# http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap
#EnableMMAP off
# EnableSendfile: Control whether the sendfile kernel support is
# used to deliver files (assuming that the OS supports it).
# The default is on; turn this off if you serve from NFS-mounted
# filesystems. Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
#EnableSendfile off
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you do define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
ErrorLog logs/error_log
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you do
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and not in this file.
#CustomLog logs/access_log common
# If you would like to have agent and referer logfiles, uncomment the
# following directives.
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
# For a single logfile with access, agent, and referer information
# (Combined Logfile Format), use the following directive:
CustomLog logs/access_log combined
# Optionally add a line containing the server version and virtual host
# name to server-generated pages (internal error documents, FTP directory
# listings, mod_status and mod_info output etc., but not CGI generated
# documents or custom error documents).
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
# Set to one of: On | Off | EMail
ServerSignature On
# Aliases: Add here as many aliases as you need (with no limit). The format is
# Alias fakename realname
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL. So "/icons" isn't aliased in this
# example, only "/icons/". If the fakename is slash-terminated, then the
# realname must also be slash terminated, and if the fakename omits the
# trailing slash, the realname must also omit it.
# We include the /icons/ alias for FancyIndexed directory listings. If you
# do not use FancyIndexing, you may comment this out.
Alias /icons/ "/var/www/icons/"
Alias /admin "/home/boss4/web/geoland/admin/"
Alias /bboard "/home/boss4/web/phpBB3/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/home/boss4/web/geoland/admin">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/home/boss4/web/phpBB3">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# WebDAV module configuration section.
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
# Redirect allows you to tell clients about documents which used to exist in
# your server's namespace, but do not anymore. This allows you to tell the
# clients where to look for the relocated document.
# Example:
# Redirect permanent /foo http://www.example.com/bar
# Directives controlling the display of server-generated directory listings.
# IndexOptions: Controls the appearance of server-generated directory
# listings.
IndexOptions FancyIndexing VersionSort NameWidth=*
# AddIcon* directives tell the server which icon to show for different
# files or filename extensions. These are only displayed for
# FancyIndexed directories.
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# DefaultIcon is which icon to show for files which do not have an icon
# explicitly set.
DefaultIcon /icons/unknown.gif
# AddDescription allows you to place a short description after a file in
# server-generated indexes. These are only displayed for FancyIndexed
# directories.
# Format: AddDescription "description" filename
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
# ReadmeName is the name of the README file the server will look for by
# default, and append to directory listings.
# HeaderName is the name of a file which should be prepended to
# directory indexes.
ReadmeName README.html
HeaderName HEADER.html
# IndexIgnore is a set of filenames which directory indexing should ignore
# and not include in the listing. Shell-style wildcarding is permitted.
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
# DefaultLanguage and AddLanguage allows you to specify the language of
# a document. You can then use content negotiation to give a browser a
# file in a language the user can understand.
# Specify a default language. This means that all data
# going out without a specific language tag (see below) will
# be marked with this one. You probably do NOT want to set
# this unless you are sure it is correct for all cases.
# * It is generally better to not mark a page as
# * being a certain language than marking it with the wrong
# * language!
# DefaultLanguage nl
# Note 1: The suffix does not have to be the same as the language
# keyword --- those with documents in Polish (whose net-standard
# language code is pl) may wish to use "AddLanguage pl .po" to
# avoid the ambiguity with the common suffix for perl scripts.
# Note 2: The example entries below illustrate that in some cases
# the two character 'Language' abbreviation is not identical to
# the two character 'Country' code for its country,
# E.g. 'Danmark/dk' versus 'Danish/da'.
# Note 3: In the case of 'ltz' we violate the RFC by using a three char
# specifier. There is 'work in progress' to fix this and get
# the reference data for rfc1766 cleaned up.
# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
# Norwegian (no) - Polish (pl) - Portugese (pt)
# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
# LanguagePriority allows you to give precedence to some languages
# in case of a tie during content negotiation.
# Just list the languages in decreasing order of preference. We have
# more or less alphabetized them here. You probably want to change this.
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
# ForceLanguagePriority allows you to serve a result page rather than
# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
# [in case no accepted languages matched the available variants]
ForceLanguagePriority Prefer Fallback
# Specify a default charset for all pages sent out. This is
# always a good idea and opens the door for future internationalisation
# of your web site, should you ever want it. Specifying it as
# a default does little harm; as the standard dictates that a page
# is in iso-8859-1 (latin1) unless specified otherwise i.e. you
# are merely stating the obvious. There are also some security
# reasons in browsers, related to javascript and URL parsing
# which encourage you to always set a default char set.
AddDefaultCharset UTF-8
# Commonly used filename extensions to character sets. You probably
# want to avoid clashes with the language extensions, unless you
# are good at carefully testing your setup after each change.
# See http://www.iana.org/assignments/character-sets for the
# official list of charset names and their respective RFCs.
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
# For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
# The set below does not map to a specific (iso) standard
# but works on a fairly wide range of browsers. Note that
# capitalization actually matters (it should not, but it
# does for some browsers).
# See http://www.iana.org/assignments/character-sets
# for a list of sorts. But browsers support few.
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#AddType application/x-tar .tgz
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
# Despite the name similarity, the following Add* directives have nothing
# to do with the FancyIndexing customization directives above.
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#AddHandler cgi-script .cgi
# For files that include their own HTTP headers:
#AddHandler send-as-is asis
# For server-parsed imagemap files:
AddHandler imap-file map
# For type maps (negotiated resources):
# (This is enabled by default to allow the Apache "It Worked" page
# to be distributed in multiple languages.)
AddHandler type-map var
# Filters allow you to process content before it is sent to the client.
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
# Action lets you define media types that will execute a script whenever
# a matching file is called. This eliminates the need for repeated URL
# pathnames for oft-used CGI file processors.
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
# Putting this all together, we can internationalize error responses.
# We use Alias to redirect any /error/HTTP_<error>.html.var response to
# our collection of by-error message multi-language collections. We use
# includes to substitute the appropriate text.
# You can modify the messages' appearance without changing any of the
# default HTTP_<error>.html.var files by adding the line:
# Alias /error/include/ "/your/include/path/"Please note: I AM USING:
JkOptions ForwardKeySize ForwardURICompat -ForwardDirectories
And that's what's supposed to fix this problem in the first place, right?? -
I have installed multiboot(arch linux x86_64)
http://aur.archlinux.org/packages.php?ID=33187&detail=1
but it doesn't start.
if I start, it shows
$multisystem
Error: USER:<name> is not admin!
I tried adding <name> to adm group by:
$usermod -a -G adm <name>
and it was successful
but the error still comes
$multisystem
Error: USER:<name> is not admin!
I also tried to edit gui_multisystem.sh following the instructions given in the link above and now it looks like this:
(But it didn't work) How can I make multiboot work
#! /bin/bash --posix
chemin="$(cd "$(dirname "$0")";pwd)/$(basename "$0")";
dossier="$(dirname "$chemin")"
export chemin dossier
cd "${dossier}"
###Pour exporter la librairie de gettext.
set -a
source gettext.sh
set +a
export TEXTDOMAIN=multisystem
export TEXTDOMAINDIR=${dossier}/locale
. gettext.sh
multisystem=$0
#stop si root!
if [ "$(id -u)" -ne "0"]; then
zenity --error --text "$(eval_gettext "Erreur: pas en root!")"
nohup "$dossier"/kill.sh&
exit 0
fi
#gtkrc perso
#bonne adresse pour les styles gtkrc ==> http://orford.org/gtk/
# Example pour modifier style des boutons nommés stylebt
#style "styleBorderless" {
# GtkButton::inner-border = {10, 0, 0, 10}
# xthickness = 0
# ythickness = 0
#widget "*stylebt" style "styleBorderless"
#Exemple pour changer police d'un widget nommé GtkEditFontMonospace
#style "styleGtkEditFontMonospace" {
# text[NORMAL] = "#ffffff"
# base[NORMAL] = "#000000"
# font_name = "monospace 16"
#widget "*GtkEditFontMonospace" style "styleGtkEditFontMonospace"
if [ -f "$HOME/.multisystem/gtkrc" ]; then
export GTK2_RC_FILES=$HOME/.multisystem/gtkrc:~/.gtkrc-2.0
fi
#Test les path et ajout à .profile de user si path existe et non present dans $PATH
#pour fonctionnement de which en user non sudo sur les bases Debian
function FCT_CHECKPATH()
[ ! -f "$HOME/.profile" ] && >"$HOME/.profile"
. $HOME/.profile
export PATH=$PATH
path_curents="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
path_actuels="$(echo $PATH | tr ":" "\n")"
path_add=""
I=$IFS; IFS=":"
for test_path in $path_curents; do
if [[ ! "$(grep "^${test_path}$" <<<"${path_actuels}")" ]]; then
path_add="${path_add}${test_path}:"
echo Ajouter PATH: ${test_path}
fi
done
IFS=$I
if [ "${path_add}" ]; then
echo "PATH=\"${path_add}\$PATH\"" | tee -a "$HOME/.profile"
export PATH="${path_add}$PATH"
fi
FCT_CHECKPATH
#Path gtkdialog
GTKDIALOG=gtkdialog
export GTKDIALOG
#Check version gtkdialog
function funcGTKDVGet() {
GTKVMINI="0.8.0"
GTKDV=( $($GTKDIALOG -v) )
GTKDV=${GTKDV[2]}
echo "Gtkdialog version: $GTKDV"
if [[ $GTKDV < $GTKVMINI ]]; then
GTKVADV="This application requires at least gtkdialog-$GTKVMINI,\nPlease updrade your version.\nWebsite: http://code.google.com/p/gtkdialog/"
echo -e "\033[1;47;31m $GTKVADV \033[0m"
zenity --info --text "$GTKVADV"&
exit 0
fi
funcGTKDVGet
#Créer dossier pref
if [ ! -d "$HOME/.multisystem/" ]; then
mkdir "$HOME/.multisystem/" 2>/dev/null
fi
#Mettre à jour les icones GTK ! à revoir ...
#http://developer.gimp.org/api/2.0/gtk/gtk-update-icon-cache.html
#gtk-update-icon-cache -t "$HOME"/.local/share/icons/hicolor/
#manque ==> index.theme voir ==> /usr/share/icons/hicolor/index.theme
#Caler lang si user n'a pas réglé dans gui de multisystem
if [ ! -f "$HOME/.multisystem/lang_sel.txt" ]; then
echo
>"$HOME/.multisystem/lang_sel.txt"
while read line
do
if [ "$(grep -i "$(echo $line | awk -F'|' '{print $3}'| sed "s/\..*//")" <<<"${LANG}")" ]; then
echo $line | awk -F'|' '{print $3}'| sed "s/\..*//"
echo $line >"$HOME/.multisystem/lang_sel.txt"
break
fi
done <<<"$(cat "${dossier}/lang_list.txt" | sed "/^$/d")"
#Si ne trouve pas de traduction passer en Anglais.
if [ ! "$(cat "$HOME/.multisystem/lang_sel.txt")" ]; then
echo "English|en|en_US.UTF-8" >"$HOME/.multisystem/lang_sel.txt"
fi
cat "$HOME/.multisystem/lang_sel.txt"
fi
#pour slitaz
if [ "$(which tazpkg 2>/dev/null)" ]; then
export LANG="$(awk -F\| '{print $3}' "$HOME/.multisystem/lang_sel.txt")"
else
declare -x LANGUAGE="$(awk -F\| '{print $3}' "$HOME/.multisystem/lang_sel.txt")"
fi
echo LANG:$LANG
echo LANGUAGE:$LANGUAGE
echo LANGSEL:$(cat "$HOME/.multisystem/lang_sel.txt")
#zenity --info --text "$(export)"
#locale -a
#cat /etc/default/locale
#/etc/environment or ~/.gtkrc
#sudo locale-gen --purge fr_FR.UTF-8
#locale-gen
#dpkg-reconfigure locales
#dpkg-reconfigure console-data
#dpkg-reconfigure console-setup
#id
#if [ ! "$(ps ax | grep -v grep | grep "hal-lock --interface org.freedesktop.Hal.Device.Volume --exclusive --run ${chemin}")" ]; then
#hal-lock --interface org.freedesktop.Hal.Device.Volume --exclusive --run "${chemin}"
#exit 0
#fi
#Thème
. ./theme.sh
#Gui logo
# font-family=\"purisa\" weight=\"bold\"
if [ "$(grep "fr_FR" <<<"${LANG}")" ]; then
export MOD_WAIT='<window title="MultiSystem-logo" window_position="1" decorated="false">
<vbox>
<text sensitive="false" use-markup="true" wrap="false" angle="10">
<variable>MESSAGES</variable>
<input>echo "\<b>\<span color=\"#EB2C00\" size=\"larger\">○ NOUVEAU !\nLa première clé USB MultiSystem du marché\nest disponible sur liveusb.info.\</span>\</b>" | sed "s%\\\%%g" | sed "s%\\\\n\\\\n\\\\n%%g"</input>
</text>
<pixmap>
<input file>./logo_pub.jpg</input>
</pixmap>
<pixmap>
<input file>./pixmaps/multisystem-wait.gif</input>
</pixmap>
</vbox>
</window>'
else
export MOD_WAIT='<window title="MultiSystem-logo" window_position="1" decorated="false">
<vbox>
<pixmap>
<input file>./logo.png</input>
</pixmap>
<pixmap>
<input file>./pixmaps/multisystem-wait.gif</input>
</pixmap>
</vbox>
</window>'
fi
#Lancer logo
gtkdialog --program=MOD_WAIT &
sleep .5
function FCT_DETECT_PROCESS()
#detect process
#zenity --info --text "$(pgrep -xlc multisystem) $(pgrep -xlc gui_multisystem)"
if [[ "$(pgrep -xlc multisystem)" -gt "1" || "$(pgrep -xlc gui_multisystem)" -gt "1" ]]; then
wmctrl -c "MultiSystem-logo"
#Activer fenetre
xdotool windowactivate $(wmctrl -l | grep 'MultiSystem' | awk '{print $1}')
exit 0
fi
FCT_DETECT_PROCESS
#Verif dépendances...
errorlist=()
for i in $(grep -v "^#" <<<"${testlist}" | xargs)
do
if [ ! "$(which $i 2>/dev/null)" ]; then
errorlist=(${errorlist[@]} $i)
fi
done
#Stop si
if [ "$(echo "${errorlist[@]}")" ]; then
echo -e "\033[1;47;31m $(eval_gettext 'Erreur il manque: ')${errorlist[@]} \033[0m"
cat /etc/group | grep ^users | grep $USER
exit 0
fi
#dpkg -L grub-pc
#mettre en place les icon pour lancement si pas installé!
mkdir -p "$HOME"/.local/share/icons/hicolor/48x48/apps/ 2>/dev/null
#comparer nombre icon et maj si diff
if [ "$?" -eq 0; then
cp -f "${dossier}/pixmaps/"* "$HOME"/.local/share/icons/hicolor/48x48/apps/
fi
#Vérifier que GParted n'est pas open!
if [ "$(ps aux | grep -v grep | grep 'hal-lock.*interface org.freedesktop.Hal.Device.Storage.*exclusive')" ]; then
zenity --error --text "$(eval_gettext "Erreur: un logiciel bloque l\'utilisation des disques, veuillez le fermer.")"
nohup "$dossier"/kill.sh&
exit 0
fi
#Vérifier que user est bien administrateur
if [ "$(cat /etc/group | grep ^users)" ]; then
echo
if [ ! "$(cat /etc/group | grep ^users | grep $USER)" ]; then
zenity --error --text "$(eval_gettext "Erreur:") USER:$USER is not admin!"
nohup "$dossier"/kill.sh&
exit 0
fi
fi
#Fermer logo
#zenity --info --text "logo3"
#wmctrl -c "MultiSystem-logo"
#Système de détection
source ./gui-detect.sh
sleep .1
#Thème (laisser en doublon ici !)
. ./theme.sh
#mettre en place autorun.inf/multisystem.bat/icon.ico
if [ ! -f "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/autorun.inf" ]; then
#echo -e '[AutoRun]\r\nShellexecute=multisystem.bat\r\nICON=icon.ico\r\nLabel=MultiSystem' | tee "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/autorun.inf"
echo -e '[AutoRun]\r\nICON=icon.ico\r\nLabel=MultiSystem\r\n\r\n[Content]\r\nMusicFiles=false\r\nPictureFiles=false\r\nVideoFiles=false' | tee "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/autorun.inf"
#copier .ico
cp -f "${dossier}/icon.ico" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/icon.ico"
fi
#par securité verifier multisystem.bat
#7295356a95fc3e312ec342f57b944662 .../multisystem.bat
#if [ "7295356a95fc3e312ec342f57b944662" != "$(md5sum "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem.bat" | awk '{print $1}')" ]; then
#zenity --info --text "$(eval_gettext "ATTENTION!\nle fichier multisystem.bat à été modifié, Virus?")"
#fi
#Vérifier les mise à jour! / uniquement si installé!
if [[ "${dossier}" == "/usr/local/share/multisystem" && "$(cat "$HOME/.multisystem/checkupdate")" = "true" ]]; then
wget -t1 -T1 http://liveusb.info/multisystem/version-multisystem.txt -O "/tmp/multisystem/version-multisystem.txt"
if [ "$(cat /tmp/multisystem/version-multisystem.txt 2>/dev/null)" ]; then
echo ok
if [ "$(cat /tmp/multisystem/version-multisystem.txt)" != "$(cat /usr/local/share/multisystem/version-multisystem.txt)" ]; then
zenity --info --text "$(eval_gettext "Une mise à jour de multisystem est disponible")"&
fi
fi
fi
#Avertissement si user supprime OS dans gui de multisystem
[ ! "$(cat "$HOME/.multisystem/check_rem" 2>/dev/null)" ] && echo "true" >"$HOME/.multisystem/check_rem"
check_rem="$(cat "$HOME/.multisystem/check_rem")"
#Activer icon dans menu gnome
if [ "$(gconftool-2 --get "/desktop/gnome/interface/menus_have_icons" 2>/dev/null)" = "false" ]; then
echo
if [ ! -f "$HOME/.multisystem/active_icon" ]; then
zenity --question --text="$(eval_gettext "Activer les icones dans les menus de gnome ?")"
if [ $? = "0" ]; then
echo ok >"$HOME/.multisystem/active_icon"
gconftool-2 --set "/desktop/gnome/interface/menus_have_icons" --type bool "true"
fi
fi
fi
#mettre à jour le menu du tree
#relever icone|iso|date
gtkdialog --program=MOD_WAIT &
sleep .1
./fonctions.sh
#wmctrl -c "MultiSystem-logo"
#Corriger bug 1.96 de mon grub.cfg
if [ "$(grub-install -v | grep 1.96)" ]; then
sed -i "s/linux16/linux/g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
sed -i "s/initrd16/initrd/g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
sed -i "s/--config-file=\/boot\/grub\/menu.lst//g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
sed -i "s/(\${root})//g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
sed -i "s/^set root=${root}/#set root=${root}/g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
sed -i "s/\#set root=(hd0,1)/set root=(hd0,1)/g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
fi
#Onglet À propos
>/tmp/multisystem/multisystem-about
while read line
do
echo "multisystem-$(echo ${line} | awk -F'|' '{print $2}')|$(eval_gettext 'Traducteur') $(echo ${line} | awk -F'|' '{print $1}'), $(echo ${line} | awk -F'|' '{print $4}')|$(echo ${line} | awk -F'|' '{print $5}')" >>/tmp/multisystem/multisystem-about
done <<<"$(cat "${dossier}/lang_list.txt" | sed "/^$/d")"
#check .deb
verify_update="$(dpkg -l "multisystem" | grep "^ii multisystem" 2>/dev/null | awk '{print $3}')"
#Si .deb est installé
if [ "${verify_update}" ]; then
echo "<span color='"'#4CB23F'"'>Version:${verify_update} $(cat ./version-multisystem.txt)</span>" >/tmp/multisystem/multisystem-inputversion
#Si .deb n'est pas installé
elif [ ! "${verify_update}" ]; then
echo "<span color='"'#4CB23F'"'>Version:$(cat ./version-multisystem.txt)</span>" >/tmp/multisystem/multisystem-inputversion
fi
#Onglet Non-Libre
#Créer dossier nonfree
mkdir -p "$HOME"/.multisystem/nonfree 2>/dev/null
#Check les files
>/tmp/multisystem/multisystem-nonfree
if [ -f "$HOME"/.multisystem/nonfree/plpbt.bin ]; then
echo 'gtk-ok|plpbt.bin' >>/tmp/multisystem/multisystem-nonfree
else
echo 'gtk-no|plpbt.bin' >>/tmp/multisystem/multisystem-nonfree
fi
if [ -f "$HOME"/.multisystem/nonfree/plpcfgbt ]; then
echo 'gtk-ok|plpcfgbt' >>/tmp/multisystem/multisystem-nonfree
else
echo 'gtk-no|plpcfgbt' >>/tmp/multisystem/multisystem-nonfree
fi
if [ -f "$HOME"/.multisystem/nonfree/NTDETECT.COM ]; then
echo 'gtk-ok|NTDETECT.COM' >>/tmp/multisystem/multisystem-nonfree
else
echo 'gtk-no|NTDETECT.COM' >>/tmp/multisystem/multisystem-nonfree
fi
if [ -f "$HOME"/.multisystem/nonfree/SETUPLDR.BIN ]; then
echo 'gtk-ok|SETUPLDR.BIN' >>/tmp/multisystem/multisystem-nonfree
else
echo 'gtk-no|SETUPLDR.BIN' >>/tmp/multisystem/multisystem-nonfree
fi
if [ -f "$HOME"/.multisystem/nonfree/RAMDISK.SY_ ]; then
echo 'gtk-ok|RAMDISK.SY_' >>/tmp/multisystem/multisystem-nonfree
else
echo 'gtk-no|RAMDISK.SY_' >>/tmp/multisystem/multisystem-nonfree
fi
if [ -f "$HOME"/.multisystem/nonfree/RAMDISK.SYS ]; then
echo 'gtk-ok|RAMDISK.SYS' >>/tmp/multisystem/multisystem-nonfree
else
echo 'gtk-no|RAMDISK.SYS' >>/tmp/multisystem/multisystem-nonfree
fi
if [ -f "$HOME"/.multisystem/nonfree/BOOTSECT.BIN ]; then
echo 'gtk-ok|BOOTSECT.BIN' >>/tmp/multisystem/multisystem-nonfree
else
echo 'gtk-no|BOOTSECT.BIN' >>/tmp/multisystem/multisystem-nonfree
fi
if [ -f "$HOME"/.multisystem/nonfree/firadisk.ima ]; then
echo 'gtk-ok|firadisk.ima' >>/tmp/multisystem/multisystem-nonfree
else
echo 'gtk-no|firadisk.ima' >>/tmp/multisystem/multisystem-nonfree
fi
#Détreminer éditeur text
if [ "$(which nautilus)" ]; then
navuse="nautilus"
elif [ "$(which dolphin)" ]; then
navuse="dolphin"
elif [ "$(which rox-filer)" ]; then
navuse="rox-filer"
elif [ "$(which thunar)" ]; then
navuse="thunar"
elif [ "$(which pcmanfm)" ]; then
navuse="pcmanfm"
fi
#forcer à true par defaut
echo 'true' >/tmp/multisystem/multisystem-update-bootloader
#Onglet par defaut
echo 0 >/tmp/multisystem/multisystem-inputtab1
echo 0 >/tmp/multisystem/multisystem-inputtab2
echo 0 >/tmp/multisystem/multisystem-inputtab3
#Bas de pages commun des onglets secondaires
function FCT_HOME()
echo '<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox spacing="0">
<button name="stylebt" height_request="30" image-position="0" relief="2" xalign="0" yalign="0">
<height>16</height>
<input file icon="multisystem-home"></input>
<label>'$(eval_gettext 'Retour Accueil')'</label>
<action>echo 0 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 0 > /tmp/multisystem/multisystem-inputtab2</action>
<action>refresh:tab1</action>
<action>refresh:tab2</action>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" height_request="30" image-position="0" relief="2" xalign="0" yalign="0">
<height>16</height>
<input file stock="gtk-quit"></input>
<label>'$(eval_gettext 'Quitter')'</label>
<action>wmctrl -c "MultiSystem-logo"</action>
<action>wmctrl -c "MultiSystem-logo2"</action>
<action>wmctrl -c "VBox"</action>
<action>exit:exit</action>
</button>
</hbox>'
#Onglet lister_lang
function FCT_lister_lang()
cat "$HOME/.multisystem/lang_sel.txt" | awk -F'|' '{print $1}'
cat "${dossier}/lang_list.txt" | sed "/^$/d" | awk -F'|' '{print $1}'
export -f FCT_lister_lang
export texte_annonce="MultiSystem recherche des traducteurs,\nMerci de nous contacter\nsi vous souhaitez participer\nContact:[email protected]\n\nMultiSystem looking for translators,\nThank you contact us\nif you want to participate\nContact:[email protected]"
#Onglet Télécharger des LiveCD
echo All | tee /tmp/multisystem/multisystem-output-list
function FCT_download_livecd()
listcat="$(cat /tmp/multisystem/multisystem-output-list 2>/dev/null)"
#Audio Utility Antivirus Gamer
if [ "$(grep -E "(Audio)|(Utility)|(Antivirus)|(Gamer)" <<<"${listcat}" 2>/dev/null)" ]; then
cat "${dossier}/list.txt" | sed "/^#/d" | sed "/^$/d" | grep -E "\|${listcat}\|"
elif [ "${listcat}" = "All" ]; then
cat "${dossier}/list.txt" | grep -v "^#" | sed "/^$/d"
elif [ "${listcat}" = "clear" ]; then
echo "||||"
elif [ "${listcat}" ]; then
cat "${dossier}/list.txt" | sed "/^#/d" | sed "/^$/d" | grep -iE "\|.*${listcat}.*\|.*\|.*\|"
fi
export -f FCT_download_livecd
#Onglet Mise à jour
function FCT_update()
$radio1 && xdg-open 'http://liveusb.info/dotclear/index.php?pages/Soutien'&
if [ "$radio3" == "true" ]; then
nohup ./update-sel.sh &
#maj partielle
elif [ "$radio4" == "true" ]; then
wget -nd http://liveusb.info/multisystem/os_support.sh -O /tmp/multisystem/os_support.sh 2>&1 \
| sed -u 's/\([ 0-9]\+K\)[ \.]*\([0-9]\+%\) \(.*\)/\2\n#Transfert : \1 (\2) à \3/' \
| zenity --progress --auto-kill --auto-close --width 400 --title "$(eval_gettext 'Téléchargement en cours...')"
if [ "$(diff /tmp/multisystem/os_support.sh ${dossier}/os_support.sh 2>/dev/null)" ]; then
#Remplacer...
echo
if [ "$(du -h "/tmp/multisystem/os_support.sh" 2>/dev/null | awk '{print $1}')" == "0" ]; then
zenity --error --text "$(eval_gettext 'Erreur de téléchargement')"
elif [ "$(grep FCT_RELOAD /tmp/multisystem/os_support.sh 2>/dev/null)" ]; then
cp -f /tmp/multisystem/os_support.sh "${dossier}/os_support.sh"
fi
else
zenity --info --title MultiSystem_Information --text="$(eval_gettext "Pas de mise à jour disponible,\nVous utilisez bien la dernière version du script.")"
fi
#Relancer gui
nohup "${dossier}/gui_multisystem.sh" &
sleep 1
exit 0
fi
export -f FCT_update
#Onglet Déboguer
echo "" >/tmp/multisystem/multisystem-test-usb
export message_debug="$(eval_gettext "Patience test en cours...")"
#test écriture sur disque
function FCT_debug_write()
#espace dispo dans clé usb
available="$(($(df -aB 1 $(cat /tmp/multisystem/multisystem-mountpoint-usb) | grep ^$(cat /tmp/multisystem/multisystem-selection-usb) | awk '{print $4}')/1024/1024))"
if [ "${available}" -lt "1024" ]; then
message_debug="$(eval_gettext "Erreur: pas suffisament de place libre pour effectuer ce test,") ${available} < 1024Mio"
echo "${message_debug}" >/tmp/multisystem/multisystem-test-usb
exit 0
fi
echo -e "\E[37;44m\033[1m ${message_debug} \033[0m"
dd if=/dev/zero bs=1024 count=1000000 of="$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file"
rm "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file"
echo -e "\E[37;44m\033[1m $(eval_gettext 'Attente, appuyez sur enter pour continuer.') \033[0m"
read
echo "" >/tmp/multisystem/multisystem-test-usb
#test lecture
function FCT_debug_read()
#dd if=/dev/zero bs=1024 count=1000000 of="$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file" >dev/null
#dd if="$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file" bs=64k | dd of=/dev/null
#rm "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file"
echo -e "\E[37;44m\033[1m $(eval_gettext 'Veuillez saisir votre mot de passe d\047administrateur') \033[0m"
sudo hdparm -Tt $(cat /tmp/multisystem/multisystem-selection-usb)
echo -e "\E[37;44m\033[1m $(eval_gettext 'Attente, appuyez sur enter pour continuer.') \033[0m"
read
#reparer
function FCT_debug_repair()
echo -e "\E[37;44m\033[1m $(eval_gettext 'Veuillez saisir votre mot de passe d\047administrateur') \033[0m"
#redimensionner
sudo umount -f $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1 2>/dev/null
sleep 2
sudo dosfsck -r -w -v $(cat /tmp/multisystem/multisystem-selection-usb)
calc_fatresize="$(sudo fatresize -i $(cat /tmp/multisystem/multisystem-selection-usb) -q | grep '^Max size' | awk '{print $3}')"
echo calc_fatresize:${calc_fatresize} $((${calc_fatresize}/1000/1000))M
sudo fatresize -p -s $((${calc_fatresize}/1000/1000))M $(cat /tmp/multisystem/multisystem-selection-usb)
gvfs-mount -d $(cat /tmp/multisystem/multisystem-selection-usb) 2>/dev/null
echo -e "\E[37;44m\033[1m $(eval_gettext 'Attente, appuyez sur enter pour continuer.') \033[0m"
read
export -f FCT_debug_write FCT_debug_read FCT_debug_repair
#Onglet N°5 Formater votre clé USB
export format_text="$(parted -s $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') unit MB print)"
echo -e "${format_text}" >/tmp/multisystem/multisystem-format-text
function FCT_format()
echo -e "\E[37;44m\033[1m $(eval_gettext 'Veuillez saisir votre mot de passe d\047administrateur') \033[0m"
sudo echo
#Démonter
sudo umount -f $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1 2>/dev/null
echo -e "\E[37;44m\033[1m $(eval_gettext 'Veuillez saisir votre mot de passe d\047administrateur') \033[0m"
#shred - Écrire par dessus un fichier pour en camoufler le contenu, et optionnellement l’effacer
#shred -n 1 -z -v $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')
dd if=/dev/zero of=$(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') bs=512 count=1
sudo parted -a cylinder -s $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') mklabel msdos
sudo parted -a cylinder -s $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') unit MB mkpart primary fat32 1 100%
sleep 2
sudo umount -f $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1 2>/dev/null
sudo mkdosfs -F32 -v -S512 -n multisystem $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1
sleep 2
sudo parted -s $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') set 1 boot on
#Vérifier/Réparer fat32
#sudo dosfsck -t -a -r -v $(cat /tmp/multisystem/multisystem-selection-usb)
sudo dosfsck -p -a -w -v $(cat /tmp/multisystem/multisystem-selection-usb)
sleep 2
sudo umount $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1 2>/dev/null
calc_fatresize="$(sudo fatresize -i $(cat /tmp/multisystem/multisystem-selection-usb) | grep '^Max size' | awk '{print $3}')"
#redimensionner
sudo fatresize -p -s ${calc_fatresize} $(cat /tmp/multisystem/multisystem-selection-usb)
echo -e "\E[37;44m\033[1m $(eval_gettext 'Formatage effectué,\nveuillez débrancher/rebrancher votre clé USB\navant de relancer multisystem.') \033[0m"
read
exit 0
export -f FCT_format
#Onglet N°6 Afficher/Masquer des fichiers/dossiers dans votre clé usb
function FCT_hidden_update_tree()
#Mettre en forme pour le tree
>/tmp/multisystem/multisystem-hidden
echo -e "$(stat -c %n "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/"* | awk '{print $0}')" | while read line
do
var="$(echo "$line" | sed "s|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/||")"
echo "var:${var}"
if [ "$(grep "^${var}$" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden")" ]; then
echo "multisystem-red|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/${var}" >>/tmp/multisystem/multisystem-hidden
else
echo "multisystem-green|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/${var}" >>/tmp/multisystem/multisystem-hidden
fi
done
FCT_hidden_update_tree
function FCT_hidden_showall()
stat -c %n "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/"* | awk '{print "multisystem-green|" $0}' >/tmp/multisystem/multisystem-hidden
echo "" >"$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
FCT_hidden_update_tree
function FCT_hidden_hiddenall()
stat -c %n "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/"* | awk '{print "multisystem-red|" $0}' >/tmp/multisystem/multisystem-hidden
echo -e "$(stat -c %n "$(cat /tmp/multisystem/multisystem-mountpoint-usb )/"* | awk '{print $0}')" | sed "s|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/||" >"$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
FCT_hidden_update_tree
function FCT_hidden_modify()
echo
rechercher="$(echo "${1}" | sed "s|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/||")"
if [ ! "$(grep "^${rechercher}$" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden")" ]; then
#zenity --info --text "Masquer ${rechercher}"
echo "${rechercher}" >>"$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
else
#zenity --info --text "Afficher ${rechercher}"
sed -i "s|^${rechercher}$||" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
sed -i "/^$/d" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
fi
FCT_hidden_update_tree
export -f FCT_hidden_showall FCT_hidden_hiddenall FCT_hidden_modify FCT_hidden_update_tree
function comment()
{ true; }
export -f comment
MULTISYSTEM='<window spacing="0" width_request="400" height_request="420" window_position="1" title="MultiSystem" icon-name="multisystem-icon" decorated="true" resizable="false">
<notebook show-border="false" show_tabs="false" page="0" labels="0|1">
'$(comment Onglet masqué primaire 0)'
<vbox spacing="0">
<notebook tab-pos="2" show-border="false" scrollable="true" show-tabs="true" page="0" enable-popup="true" homogeneous="false" labels="MS|'$(eval_gettext 'Menus')'|'$(eval_gettext 'Démarrage')'|'$(eval_gettext 'Non-Libre')'|'$(eval_gettext 'À propos')'">
'$(comment Onglet N°0 MultiSystem)'
<vbox spacing="0" height_request="380">
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox height_request="200">
<vbox spacing="0">
<button name="stylebt" width_request="32" height_request="100" tooltip-text="'$(eval_gettext 'Tester dans Qemu')'">
<input file icon="multisystem-qemu"></input>
<action>./fonctions.sh qemu</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="100" tooltip-text="'$(eval_gettext 'Tester dans VirtualBox')'">
<input file icon="multisystem-vbox"></input>
<action>./fonctions.sh vbox</action>
<action>refresh:MESSAGES</action>
</button>
</vbox>
<tree icon="multisystem-tux" tooltip-text="'$(eval_gettext "Double clic pour modifier les noms dans le menu du bootloader.")'" rules_hint="true" headers_visible="false" hover_expand="false" hover_selection="false" exported_column="1">
<label>1|2|3|4|5</label>
<variable>tree</variable>
<input icon_column="0">if [ "$(cat /tmp/multisystem/multisystem-laisserpasser-usb)" = "ok" ];then cat /tmp/multisystem/multisystem-mise-en-forme;else echo "multisystem-logo|||||||";fi</input>
<action>./fonctions.sh menu\|$tree</action>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</tree>
<vbox spacing="0">
<button name="stylebt" width_request="32" height_request="40" tooltip-text="Menu up">
<input file stock="gtk-go-up"></input>
<action>test $tree && ./fonctions.sh selup\|$tree</action>
<variable>btup</variable>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="40" tooltip-text="Menu move">
<input file stock="gtk-jump-to"></input>
<action>test $tree && ./fonctions.sh move\|$tree</action>
<variable>btmove</variable>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="40" tooltip-text="Menu down">
<input file stock="gtk-go-down"></input>
<action>test $tree && ./fonctions.sh seldown\|$tree</action>
<variable>btdown</variable>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Supprimer un système d'exploitation")'">
<input file stock="gtk-delete"></input>
<action>test $tree && ./fonctions.sh selclear\|$tree</action>
<variable>btclear</variable>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<checkbox width_request="32" height_request="40" use-underline="true" active="'$check_rem'" tooltip-text="'$(eval_gettext "Prévenir avant de supprimer")'">
<label>_</label>
<variable>ckeckrem</variable>
<action>if true echo "true" >"$HOME/.multisystem/check_rem"</action>
<action>if false echo "false" >"$HOME/.multisystem/check_rem"</action>
</checkbox>
</vbox>
<vbox spacing="0">
<button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Afficher/Masquer des fichiers/dossiers dans votre clé usb")'">
<input file icon="multisystem-hidden"></input>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 6 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Ajouter une option de démarrage (cmdline)")'">
<input file stock="gtk-edit"></input>
<variable>btcmdline</variable>
<action>test $tree && ./fonctions.sh cmdline\|$tree</action>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Ajouter mode persistent")'">
<input file icon="multisystem-save"></input>
<variable>btpersistent1</variable>
<action>./fonctions.sh persistent\|$tree</action>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Créer CD pour lancer USB")'">
<input file icon="multisystem-cdrom"></input>
<variable>btcdamorce2</variable>
<action>./fonctions.sh cdamorce</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Internationalisation")'">
<input file icon="multisystem-language"></input>
<variable>btlang1</variable>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:MESSAGES</action>
</button>
</vbox>
<vbox spacing="0">
<button name="stylebt" width_request="32" height_request="80" tooltip-text="'$(eval_gettext "Réglages Grub")'">
<input file stock="gtk-preferences"></input>
<variable>btpref2</variable>
<action>./fonctions.sh pref</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="80" tooltip-text="'$(eval_gettext "Mettre à jour Grub2")'">
<input file icon="multisystem-grub48"></input>
<variable>btgrub</variable>
<action>./fonctions.sh grub</action>
<action>refresh:MESSAGES</action>
</button>
<checkbox width_request="32" height_request="40" use-underline="true" active="true" tooltip-text="'$(eval_gettext "Décochez pour déplacer rapidement les menus, ne pas mettre à jour les bootloader, ATTENTION! cochez lors du dernier déplacement pour mettre à jour les bootloader.")'">
<label>_</label>
<variable>update_bootloader</variable>
<action>if true echo true >/tmp/multisystem/multisystem-update-bootloader</action>
<action>if false echo false >/tmp/multisystem/multisystem-update-bootloader</action>
</checkbox>
</vbox>
<vbox spacing="0">
<button name="stylebt" width_request="32" height_request="80" tooltip-text="'$(eval_gettext "Télécharger des LiveCD")'">
<input file icon="multisystem-download"></input>
<variable>btdownload1</variable>
<action>echo All | tee /tmp/multisystem/multisystem-output-list</action>
<action>refresh:tree_list</action>
<action>clear:QUOI</action>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 2 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<button name="stylebt" width_request="32" height_request="80" tooltip-text="'$(eval_gettext "Mise à jour")'">
<input file icon="multisystem-update"></input>
<variable>btmaj1</variable>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 3 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:MESSAGES</action>
</button>
<checkbox width_request="32" height_request="40" use-underline="true" tooltip-text="'$(eval_gettext 'Vérifier les mise à jour à chaque lancement')'">
<label>_</label>
<variable>checkupdate2</variable>
<default>true</default>
<action>if true echo true >"'$HOME'/.multisystem/checkupdate"</action>
<action>if false echo false >"'$HOME'/.multisystem/checkupdate"</action>
<input>cat "'$HOME'/.multisystem/checkupdate"</input>
<action>refresh:checkupdate</action>
<action>refresh:checkupdate2</action>
</checkbox>
</vbox>
</hbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<vbox height_request="70" spacing="0">
<text sensitive="false">
<variable>MESSAGES</variable>
<input>echo "'$(eval_gettext "Volume USB:")'$(cat /tmp/multisystem/multisystem-selection-usb) UUID:$(cat /tmp/multisystem/multisystem-selection-uuid-usb)\n'$(eval_gettext 'Point de montage:')'$(cat /tmp/multisystem/multisystem-mountpoint-usb)\n'$(eval_gettext 'Taille:')'$(($(df | grep ^$(cat /tmp/multisystem/multisystem-selection-usb) | awk '\''{print $2}'\'')/1024))Mio '$(eval_gettext 'Occupé:')'$(($(df | grep ^$(cat /tmp/multisystem/multisystem-selection-usb) | awk '\''{print $3}'\'')/1024))Mio '$(eval_gettext 'Libre:')'$(($(df | grep ^$(cat /tmp/multisystem/multisystem-selection-usb) | awk '\''{print $4}'\'')/1024))Mio\n'$(eval_gettext 'Nombre de LiveCD:')'$(cat /tmp/multisystem/multisystem-nombreiso-usb)"</input>
</text>
</vbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox spacing="0">
<button name="stylebt" relief="2" tooltip-text="'$(eval_gettext 'Sauvegarde/Restauration')'">
<input file icon="multisystem-save2"></input>
<action>./fonctions.sh save</action>
</button>
<frame '$(eval_gettext "Glisser/Déposer iso/img")'>
<hbox spacing="0">
<entry primary-icon-name="multisystem-seliso" secondary-icon-name="'${theme_btn}'"
accept="filename" activates-default="false" fs-folder="'$HOME/'" fs-action="file"
fs-filters="*.iso|*.img" show-hidden="false" fs-title="Select an iso file"
tooltip-text="'$(eval_gettext "Glisser/Déposer iso/img")'"
primary-icon-tooltip-text="'$(eval_gettext 'Utilisez ce bouton si le Glisser/Déposer ne fonctionne pas.')'"
secondary-icon-tooltip-text="'$(eval_gettext "Ajouter un liveCD")'">
<variable>DAG</variable>
<width>50</width><height>50</height>
<action signal="changed">test "$DAG" && echo "DAG:$DAG"</action>
<action signal="changed">test "$DAG" && ./fonctions.sh add\|"${DAG}" &</action>
<action signal="changed">clear:DAG</action>
<action signal="changed">refresh:DAG</action>
<action signal="changed">refresh:MESSAGES</action>
<action signal="changed">refresh:tree</action>
<action signal="primary-icon-press">fileselect:DAG</action>
<action signal="secondary-icon-press">./gui_multi_sel_launch.sh</action>
</entry>
</hbox>
</frame>
<button name="stylebt" relief="2" tooltip-text="'$(eval_gettext "Quitter")'">
<input file icon="multisystem-exit"></input>
<action>wmctrl -c "MultiSystem-logo"</action>
<action>wmctrl -c "MultiSystem-logo2"</action>
<action>wmctrl -c "VBox"</action>
<action type="exit">exit</action>
</button>
</hbox>
</vbox>
'$(comment Onglet N°1 Menus)'
<vbox spacing="0">
<hbox spacing="0">
<hbox spacing="0">
<button name="stylebt" width_request="36" height_request="36">
<input file stock="gtk-preferences"></input>
<variable>btpref</variable>
<action>./fonctions.sh pref</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="157" use-markup="true">
<label>"<b>'$(eval_gettext 'Réglages Grub')'</b>"</label>
</text>
</hbox>
<hbox spacing="0">
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-grub48"></input>
<variable>btgrub2</variable>
<action>./fonctions.sh grub</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="157" use-markup="true">
<label>"<b>'$(eval_gettext 'Mettre à jour Grub2')'</b>"</label>
</text>
</hbox>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-grub48"></input>
<variable>btburg</variable>
<action>./fonctions.sh burg</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Mettre à jour Burg')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file stock="gtk-save"></input>
<variable>btsave</variable>
<action>./fonctions.sh save</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Sauvegarde/Restauration')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-save"></input>
<variable>btpersistent2</variable>
<action>./fonctions.sh persistent\|$tree</action>
<action>refresh:MESSAGES</action>
<action>refresh:tree</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Ajouter mode persistent')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-resize"></input>
<variable>btpersistent3</variable>
<action>./fonctions.sh persistent-resize</action>
<action>refresh:MESSAGES</action>
<action>refresh:tree</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Redimensionner persistent')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-download"></input>
<variable>btdownload2</variable>
<action>echo All | tee /tmp/multisystem/multisystem-output-list</action>
<action>refresh:tree_list</action>
<action>clear:QUOI</action>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 2 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:tree</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Télécharger des LiveCD')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-language"></input>
<variable>btlang2</variable>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Internationalisation')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-gparted64"></input>
<variable>btformat</variable>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 5 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Formater votre clé USB')'</b>"</label>
</text>
</hbox>
<hbox spacing="0">
<hbox spacing="0">
<button name="stylebt" width_request="36" height_request="36">
<input file stock="gtk-execute"></input>
<variable>btdebug</variable>
<action>echo "" >/tmp/multisystem/multisystem-test-usb</action>
<action>refresh:debug_edit</action>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 4 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="157" use-markup="true">
<label>"<b>'$(eval_gettext 'Déboguer')'</b>"</label>
</text>
</hbox>
<hbox spacing="0">
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-vbox"></input>
<variable>btinstallvbox</variable>
<action>./fonctions.sh installvbox</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="157" use-markup="true">
<label>"<b>'$(eval_gettext 'Installer VirtualBox')'</b>"</label>
</text>
</hbox>
</hbox>
<hbox spacing="0">
<hbox spacing="0">
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-update"></input>
<variable>btmaj2</variable>
<action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
<action>echo 3 > /tmp/multisystem/multisystem-inputtab3</action>
<action>refresh:tab1</action>
<action>refresh:tab3</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="157" use-markup="true">
<label>"<b>'$(eval_gettext 'Mise à jour')'</b>"</label>
</text>
</hbox>
<hbox spacing="0">
<button name="stylebt" width_request="36" height_request="36">
<input file stock="gtk-delete"></input>
<variable>btuninstall</variable>
<action>nohup xterm -title 'Uninstall' -e "sudo ./uninstall.sh" &</action>
<action>wmctrl -c "MultiSystem-logo"</action>
<action>wmctrl -c "MultiSystem-logo2"</action>
<action>wmctrl -c "VBox"</action>
<action type="exit">exit</action>
</button><text width_request="157" use-markup="true">
<label>"<b>'$(eval_gettext 'Désinstaller')'</b>"</label>
</text>
</hbox>
</hbox>
</vbox>
'$(comment Onglet N°2 Démarrage)'
<vbox spacing="0">
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-cdrom"></input>
<variable>btcdamorce</variable>
<action>./fonctions.sh cdamorce</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Créer CD pour lancer USB')'</b>"</label>
</text>
</hbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-grub48"></input>
<variable>btinfoboot</variable>
<action>./fonctions.sh infoboot\|grub</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Boot depuis Grub/Grub2')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-windows48"></input>
<variable>btinfoboot</variable>
<action>./fonctions.sh infoboot\|xp</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Boot depuis Windows XP')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-windows48"></input>
<variable>btinfoboot</variable>
<action>./fonctions.sh infoboot\|vista</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Boot depuis Windows Vista')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-apple48"></input>
<variable>btinfoboot</variable>
<action>./fonctions.sh infoboot\|macintel</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Boot depuis MacIntel')'</b>"</label>
</text>
</hbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-qemu"></input>
<variable>btqemu</variable>
<action>./fonctions.sh qemu</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Tester votre liveUSB dans Qemu')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-vbox"></input>
<variable>btvbox1</variable>
<action>./fonctions.sh vbox</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Tester votre liveUSB dans VirtualBox')'</b>"</label>
</text>
</hbox>
<hbox>
<button name="stylebt" width_request="36" height_request="36">
<input file icon="multisystem-vbox"></input>
<variable>btvbox2</variable>
<action>wmctrl -c "VBox"</action>
<action>./VBox_livecd_gui.sh &</action>
<action>refresh:MESSAGES</action>
</button>
<text width_request="345" use-markup="true">
<label>"<b>'$(eval_gettext 'Tester un LiveCD dans VirtualBox')'</b>"</label>
</text>
</hbox>
</vbox>
'$(comment Onglet N°3 Non-Libre)'
<vbox spacing="0">
<text use-markup="true" wrap="true" width-chars="70" sensitive="false">
<input>echo "\<b>\<big>'$(eval_gettext "Partie Non Libre de MultiSystem")'\</big>\</b>" | sed "s%\\\%%g"</input>
</text>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox>
<button name="stylebt" tooltip-text="'$(eval_gettext 'PLoP Boot Manager est un freeware.')'">
<input file icon="multisystem-plop-logo"></input>
<label>'$(eval_gettext 'Télécharger PLoP Boot Manager')'</label>
<action>./fonctions-nonfree.sh plop</action>
<action>refresh:tree2</action>
</button>
</hbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox>
<button name="stylebt" tooltip-text="'$(eval_gettext 'Utilisé pour démarrer les iso de Windows XP')'">
<input file icon="multisystem-windows48"></input>
<label>'$(eval_gettext 'Télécharger firadisk.ima')'</label>
<action>./fonctions-nonfree.sh firadisk</action>
<action>refresh:tree2</action>
</button>
</hbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<vbox homogeneous="true">
<hbox>
<button name="stylebt" tooltip-text="'$(eval_gettext 'Utilisé pour les iso BartPE')'">
<input file icon="multisystem-windows48"></input>
<label>'$(eval_gettext 'Télécharger Microsoft Windows Server 2003 SP1')'</label>
<action>./fonctions-nonfree.sh bartpe</action>
<action>refresh:tree2</action>
</button>
</hbox>
</vbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox height_request="200">
<tree hover_selection="true" headers_visible="false" exported_column="0">
<label>files</label>
<input icon_column="0">cat /tmp/multisystem/multisystem-nonfree</input>
<variable>tree2</variable>
<action signal="button-press-event">nohup '${navuse}' "$HOME"/.multisystem/nonfree&</action>
</tree>
</hbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
</vbox>
'$(comment Onglet N°4 À propos)'
<vbox spacing="0">
<text use-markup="true" wrap="true" sensitive="false">
<input>echo "\<b>'$(eval_gettext 'MultiSystem recherche des traducteurs,\nSi vous souhaitez participer,\nMerci de nous contacter.\nContact:')'[email protected]\</b>" | sed "s%\\\%%g"</input>
</text>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<vbox height_request="32" homogeneous="true">
<text use-underline="true"><label>_</label></text>
<text use-markup="true">
<input file>/tmp/multisystem/multisystem-inputversion</input>
</text>
</vbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox>
<pixmap>
<input file>"'${dossier}'/pixmaps/multisystem-map-flags.png"</input>
</pixmap>
</hbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox height_request="160">
<tree headers_visible="false" exported_column="1">
<label>1|2|3</label>
<input icon_column="0">cat /tmp/multisystem/multisystem-about</input>
<variable>tree3</variable>
<action>xdg-email --utf8 --subject "MultiSystem translation" --body "message" "${tree3}" &</action>
</tree>
</hbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
</vbox>
<variable>tab2</variable>
<input file>/tmp/multisystem/multisystem-inputtab2</input>
<action signal="show">refresh:tree</action>
</notebook>
</vbox>
'$(comment Onglet masqué secondaire 1)'
<vbox spacing="0">
<notebook show-border="false" show_tabs="false" page="0" labels="0|1|2|3|4|5|6|7|8|9|10|11">
'$(comment Onglet N°0 N/A)'
<vbox spacing="0">
<vbox height_request="370">
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<text><label>N/A</label></text>
</vbox>
'$(FCT_HOME)'
</vbox>
'$(comment Onglet N°1 Internationalisation)'
<vbox spacing="0">
<vbox height_request="370">
<frame '$(eval_gettext 'Changer de language')'>
<hbox spacing="0" height_request="32">
<pixmap>
<input file icon="config-language"></input>
<height>32</height>
<width>32</width>
</pixmap>
<text width_request="5" use-underline="true"><label>_</label></text>
<comboboxtext allow-empty="false" value-in-list="true" tooltip-text="'$(eval_gettext 'Changer de language')'">
<variable>lister_lang</variable>
<input>bash -c "FCT_lister_lang"</input>
<action signal="changed">echo "$(grep "^$lister_lang" "'${dossier}'/lang_list.txt")" >"$HOME/.multisystem/lang_sel.txt"</action>
<action signal="changed">nohup "${dossier}/gui_multisystem.sh" &</action>
<action signal="changed">wmctrl -c "MultiSystem-logo"</action>
<action signal="changed">wmctrl -c "MultiSystem-logo2"</action>
<action signal="changed">wmctrl -c "VBox"</action>
<action signal="changed">exit:selang</action>
</comboboxtext>
</hbox>
</frame>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<frame>
<text use-markup="true" wrap="true" sensitive="false">
<input>echo "\<b>\<big>'$texte_annonce'\</big>\</b>" | sed "s%\\\%%g"</input>
</text>
</frame>
</vbox>
'$(FCT_HOME)'
</vbox>
'$(comment Onglet N°2 Télécharger des LiveCD)'
<vbox spacing="0">
<vbox height_request="370">
<hbox>
<entry activates_default="true">
<variable>QUOI</variable>
</entry>
<button name="stylebt">
<input file stock="gtk-find"></input>
<variable>RECHERCHER</variable>
<action>echo "$QUOI" >/tmp/multisystem/multisystem-output-list</action>
<action>refresh:tree_list</action>
</button>
</hbox>
<hbox>
<button name="stylebt">
<label>All</label>
<input file stock="gtk-find"></input>
<action>clear:QUOI</action>
<action>echo All | tee /tmp/multisystem/multisystem-output-list</action>
<action>refresh:tree_list</action>
</button>
<button name="stylebt">
<label>Audio</label>
<input file stock="gtk-find"></input>
<action>clear:QUOI</action>
<action>echo Audio | tee /tmp/multisystem/multisystem-output-list</action>
<action>refresh:tree_list</action>
</button>
<button name="stylebt">
<label>Utility</label>
<input file stock="gtk-find"></input>
<action>clear:QUOI</action>
<action>echo Utility | tee /tmp/multisystem/multisystem-output-list</action>
<action>refresh:tree_list</action>
</button>
<button name="stylebt">
<label>Antivirus</label>
<input file stock="gtk-find"></input>
<action>clear:QUOI</action>
<action>echo Antivirus | tee /tmp/multisystem/multisystem-output-list</action>
<action>refresh:tree_list</action>
</button>
<button name="stylebt">
<label>Gamer</label>
<input file stock="gtk-find"></input>
<action>clear:QUOI</action>
<action>echo Gamer | tee /tmp/multisystem/multisystem-output-list</action>
<action>refresh:tree_list</action>
</button>
</hbox>
<tree headers_visible="true" exported_column="3" rules_hint="true">
<label>Name|Bootloader|Category|URL Download</label>
<variable>tree_list</variable>
<input icon_column="0">bash -c "FCT_download_livecd"</input>
<action>test ${tree_list} && xdg-open ${tree_list} &</action>
</tree>
</vbox>
'$(FCT_HOME)'
</vbox>
'$(comment Onglet N°3 Mise à jour)'
<vbox spacing="0">
<vbox height_request="370">
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<vbox width_request="400" width_request="50"scrollable="true">
<text use-markup="true" wrap="true" width-chars="70">
<input>echo "\<b>\<span color=\"red\">'$(eval_gettext "A ce jour MultiSystem est gratuit\nmais son développement n\\047est pas sans frais!\nSi vous l\\047utilisez régulièrement\net que vous souhaitez qu\\047il continue à évoluer,\nmerci de faire un geste de soutien via paypal.\n\npar avance MERCI!\nFrançois Fabre @frafa")'\</span>\</b>" | sed "s%\\\%%g" | sed "s%\\\\n\\\\n\\\\n%%g"</input>
</text>
</vbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<checkbox>
<label>"'$(eval_gettext 'Vérifier les mise à jour à chaque lancement')'"</label>
<variable>checkupdate</variable>
<default>true</default>
<action>if true echo true >"'$HOME'/.multisystem/checkupdate"</action>
<action>if false echo false >"'$HOME'/.multisystem/checkupdate"</action>
<input>cat "'$HOME'/.multisystem/checkupdate"</input>
<action>refresh:checkupdate</action>
<action>refresh:checkupdate2</action>
</checkbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<vbox spacing="0">
<radiobutton active="true">
<label>"'$(eval_gettext "Faire une donation")'"</label>
<variable>radio1</variable>
</radiobutton>
<radiobutton>
<label>"'$(eval_gettext "Ne pas faire de donation")'"</label>
<variable>radio2</variable>
</radiobutton>
</vbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<vbox spacing="0">
<radiobutton active="true">
<label>"'$(eval_gettext "Mise à jour")'"</label>
<variable>radio3</variable>
</radiobutton>
<radiobutton>
<label>"'$(eval_gettext "Mise à jour partielle")'"</label>
<variable>radio4</variable>
</radiobutton>
</vbox>
<pixmap>
<input file>'${theme_bdo}'</input>
</pixmap>
<hbox>
<button name="stylebt">
<input file icon="multisystem-update"></input>
<label>'$(eval_gettext 'Mise à jour')'</label>
<action>bash -c "FCT_update" &</action>
<action>wmctrl -c "MultiSystem-logo"</action>
<action>wmctrl -c "MultiSystem-logo2"</action>
<action>wmctrl -c "VBox"</action>
<action type="exit">exit</action>
</button>
</hbox>
</vbox>
'$(FCT_HOME)'
</vbox>
'$(comment Onglet N°4 Déboguer)'
<vbox spacing="0">
<vbox height_request="370">
<frame Debug>
<vbox scrollable="true">
<edit>
<variable>debug_edit</variable>
<input file>/tmp/multisystem/multisystem-test-usb</input>
</edit>
</vbox>
</frame>
<hbox homogeneous="true">
<button name="stylebt" width_request="180">
<input file icon="gtk-execute"></input>
<label>"'$(eval_gettext "fdisk -l")'"</label>
<action>fdisk -l $(cat /tmp/multisystem/multisystem-selection-usb | sed '\''s/[0-9]//'\'')>/tmp/multisystem/multisystem-test-usb</action>
<action>refresh:debug_edit</action>
</button>
<button name="stylebt" width_request="180">
<input file icon="gtk-execute"></input>
<label>"'$(eval_gettext "parted print")'"</label>
<action>parted -s $(cat /tmp/multisystem/multisystem-selection-usb | sed '\''s/[0-9]//'\'') unit MB print >/tmp/multisystem/multisystem-test-usb</action>
<action>refresh:debug_edit</action>
</button>
</hbox>
<hbox homogeneous="true">
<hbox spacing="0">
<button name="stylebt" width_request="115">
<input file icon="gtk-execute"></input>
<label>"'$(eval_gettext "Afficher mbr")'"</label>
<action>dd if="$(cat /tmp/multisystem/multisystem-selection-usb | sed '\''s/[0-9]//'\'')" bs=512 count=1 | xxd >/tmp/multisystem/multisystem-test-usb</action>
<action>refresh:debug_edit</action>
</button>
<button name="stylebt" width_request="65">
<input file icon="gtk-execute"></input>
<label>"'$(cat /tmp/multisystem/multisystem-selection-usb | sed 's@/dev/@@')'"</label>
<action>dd if="$(cat /tmp/multisystem/multisystem-selection-usb)" bs=512 count=1 | xxd >/tmp/multisystem/multisystem-test-usb</action>
<action>refresh:debug_edit</action>
</button>
</hbox>
<button name="stylebt" width_request="180">
<input file icon="gtk-execute"></input>
<label>"'$(eval_gettext "udevadm info")'"</label>
<action>udevadm info -q all -n $(cat /tmp/multisystem/multisystem-selection-usb | sed '\''s/[0-9]//'\'') >/tmp/multisystem/multisystem-test-usb</action>
<action>refresh:debug_edit</action>
</button>
</hbox>
<hbox homogeneous="true">
<button name="stylebt" width_request="180">
<input file icon="gtk-execute"></input>
<label>"'$(eval_gettext "Version Grub2")'"</label>
<action>grub-install -v >/tmp/multisystem/multisystem-test-usb</action>
<action>refresh:debug_edit</action>
</button>
<button name="stylebt" width_request="180">
<input file icon="gtk-execute"></input>
<label>"'$(eval_gettext "Réparer fat32")'"</label>
<action signal="button-press-event">echo '${message_debug}' >/tmp/multisystem/multisystem-test-usb</action>
<action signal="button-press-event">refresh:debug_edit</action>
<action signal="button-release-event">bash -c "xterm -e FCT_debug_repair"</action>
<action signal="button-release-event">echo >/tmp/multisystem/multisystem-test-usb</action>
<action signal="button-release-event">refresh:debug_edit</action>
</button>
</hbox>
<hbox homogeneous="true">
<button name="stylebt" width_request="180">
<input file icon="gtk-execute"></input>
<label>"'$(eval_gettext "Benchmark écriture")'"</label>
<action signal="button-press-event">echo '${message_debug}' >/tmp/multisystem/multisystem-test-usb</action>
<action signal="button-press-event">refresh:debug_edit</action>
<action signal="button-release-event">bash -c "xterm -e FCT_debug_write"</action>
<action signal="button-release-event">refresh:debug_edit</action>
</button>
<button name="stylebt" width_request="180">
<input file icon="gtk-execute"></input>
<label>"'$(eval_gettext "Benchmark lecture")'"</label>
<action signal="button-press-event">echo '${message_debug}' >/tmp/multisystem/multisystem-test-usb</action>
<action signal="button-press-event">refresh:debug_edit</action>
<action signal="button-release-eveLone_Wolf wrote:
Not sure why the usermod command didn't have the desired effect, but the gpasswd command is the preferred way :
try
# gpasswd -a [user] [group]
I tried this and restarted
#gpasswd -a <user> adm
Adding <user> to group adm
and it exited successfully but still it didn't fix the problem
Maybe you are looking for
-
How do i convert an AAC file into an Mp3 file on my New 2015 iMac? The option to "convert to mp3" isn't available in controls. Thank you.
-
XI is not able to archive file in file-idoc scenario
Hello friends, I have an issue in my file->idoc scenario. When a file is placed to XI's filesystem using FTP, it is placed under xiftpuser user. Owner of all directories in this structure wher the file is placed is xiftpuser. XI is not able to archiv
-
IOs7 crashed many times... HELP!
Hello, just updated to iOs7 couple days back. Now my phone is becoming unresponsive. the os sometimes crashed when i try to open an app. it hang up by itself. sometimes even in the lock screen the phone will hang up and when i hit the home button, no
-
Macbook Pro Retina 13 inch or 15 inch? Please advise.
Hi all, debating on the 13 inch rMBP or the 15 inch rMBP. I have never owned a MBP before, but have used the familly macbook mini occasionally and have done thorough research. As a final year university student, My main uses for the machine would be:
-
How to open CS5 project in CS3
Hi All, How can I open CS5 project in CS3? Thanks Shaul