<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" />
<head>
    <meta name="description" content="The official home page of the Apache OpenOffice open source project, home of OpenOffice Writer, Calc, Impress, Draw and Base." />
    <meta name="keywords" content="OpenOffice, Open Office, Apache OpenOffice, Apache Open Office, OpenOffice.org, Calc, Impress, Draw, Base, ODF, Open Document Format, free office editors" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache OpenOffice - The Free and Open Productivity Suite</title>
    <script type="text/javascript" src="../download/globalvars.js"></script>
    <script type="text/javascript" src="msg_prop_l10n_xx.js"></script>
    <style type="text/css">
    /* <![CDATA[ */
    /*-------------------- Exceptions on standard css -----------------------*/
    @import "../home.css";
    @import "../styles.css";
    @import "../exceptions.css";
    /* ]]> */
    </style>
    <script>
      function follow( platform ) {
        // _gaq.push( ['_trackEvent','social', 'followUs', platform] );

        if ( platform == 'ApacheBlog' )
          window.open( "https://blogs.apache.org/OOo/", "_blank" );
        else if ( platform == 'Facebook' )
          window.open( "https://www.facebook.com/ApacheOO", "_blank" );
        else if ( platform == 'Twitter' )
          window.open( "https://twitter.com/ApacheOO", "_blank" );
      }

      function showAlertBox() {
	// The text is defined in "/msg_prop_l10n.js".

	// Show alert box or not?
	if( l10n.index_alert_box_show ) {
		// If no background color value was set then use the default value.
		if( ! l10n.index_alert_box_background_color || l10n.index_alert_box_background_color === "" )
			l10n.index_alert_box_background_color = "#FFD9A7";

		// Show alert box with defined background color.
		// Depending if link is available, make the whole DIV clickable or not.
		if( l10n.index_alert_box_href ) {
			// Show the text with link and cursor as poiner.
			document.write( "<div id='alert_box' style='background: "
			+ l10n.index_alert_box_background_color
			+ "; ' onclick='window.open( \"" + l10n.index_alert_box_href
			+ "\", \"_blank\" ); return false;'>" );

			// Show headline.
			document.write( "<h2 style='cursor: pointer;'>"
			+ l10n.index_alert_box_headline_text + "</h2>" );

			// Show text.
			if( l10n.index_alert_box_text_text ) {
				document.write( "<p style='cursor: pointer;'>"
				+ l10n.index_alert_box_text_text + "</p>" );
			}
		} else {
			// Show the text without link and normal cursor.
			document.write( "<div id='alert_box' style='background: "
			+ l10n.index_alert_box_background_color + "'>" );

			// Show headline.
			document.write( "<h2 style='cursor: default;'>"
			+ l10n.index_alert_box_headline_text + "</h2>" );

			// Show text.
			if( l10n.index_alert_box_text_text ) {
				document.write( "<p style='cursor: default;'>"
				+ l10n.index_alert_box_text_text + "</p>" );
			}
		}
		document.write( "</div>" ); // Alert box
	}
      }
    </script>
</head>

<body>

<!-- The text in the H1 tag is intentionally shown as not displayable, just to please accessibility tools like a
screen reader.
-->
<h1 style="display: none;">Apache OpenOffice</h1>

<div id="actionstatements">

  <script type="text/javascript">
  <!--
  // Show alert box.
  // Change to 'true' if you want to show the text that is defined in the variables above.
  showAlertBox();
  //-->
  </script>

  <ul>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-info">
        <div class="action-text action-link">
          <a href="why/index.html"><h2>Желим да научим више о OpenOffice-у</h2>
          <p>Шта је Apache OpenOffice? И зашто би требало да га користим?</p></a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
  </ul>

  <!-- Show the download link with currently available version number, loaded via JavaScript -->
  <script type="text/javascript">
  <!--
  document.write( "<ul><li>"
    + "<div class='action-download'>"
      + "<div class='action-text action-link'>"
        + "<a href='download/index.html'>"
          + "<h2>Желим да преузмем Apache OpenOffice</h2>"
          + "<p style='font-size: 1.0em; font-weight: bold;'>(Most recent release: " + DL.VERSION + ")</p>"
          + "<p>Преузмите бесплатно Apache OpenOffice <b>(заиста бесплатно!)</b> | "
            + "<a href='https://blogs.apache.org/OOo/entry/with_apache_openoffice_you_get'"
              + "title='Објава на блогу: With Apache OpenOffice you get what you do not pay for' target='_blank'>"
              + "Click here to get more information"
            + "</a>."
          + "</p>"
        + "</a>"
      + "</div>"
    + "</div>"
  + "</li></ul>" );
  //-->
  </script>

  <!-- Show the download link, without version number -->
  <noscript>
    <div class="action-download">
      <div class="action-text action-link">
        <a href="download/index.html">
          <h2>Желим да преузмем Apache OpenOffice</h2>
          <p>Преузмите Apache OpenOffice бесплатно, или сазнајте друге начине да га добијете.</p>
        </a>
      </div>
    </div>
  </noscript>

  <ul>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-help">
        <div class="action-text action-link">
          <a href="support/index.html"><h2>Треба ми помоћ са мојим OpenOffice-ом</h2>
          <p>Помоћ је при руци кад год је потребно.</p></a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-extend">
        <div class="action-text action-link">
          <a href="extensions/index.html"><h2>Желим више од мог OpenOffice-а</h2>
          <p>Проширите Апаче OpenOffice са додатном функционалношћу, шаблонима, готовим сличицама.</p></a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-participate">
        <div class="action-text action-link">
          <a href="http://openoffice.apache.org/get-involved.html"><h2>Желим да учествујем у OpenOffice-у</h2>
          <p>Apache OpenOffice направљен је уз помоћ људи широм света. Слободно дајте свој допринос!</p></a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
     <div class="action-social">
        <div class="action-text action-link">
          <a href="social/index.html" onclick="javascript:follow('SocialLink');">
          <h2>Желим да останем у контакту са OpenOffice-ом</h2>
          <p>Пратите напредак&nbsp;OpenOffice-а путем дописне листе, друштвених медија и блога.</p></a>
            <div class="action-social-extra">
              <p>
                <span style="padding:0 5px;cursor: pointer;" onclick="javascript:follow('ApacheBlog');"
                title="Blog OpenOffice-а."><img src="../images/logo-rss-16.png" alt="Blog OpenOffice-а" />
                <a>Официјелни блог</a></span>
                <span style="padding:0 5px;cursor: pointer;" onclick="javascript:follow('Facebook');"
                title="Пратите нас на Facebook-у."><img src="../images/logo-facebook-16.png" alt="Пратите нас на Facebook-у." />
                <a>Facebook</a></span>
                <span style="padding:0 5px;cursor: pointer;" onclick="javascript:follow('Twitter');"
                title="Пратите нас на Twitter-у."><img src="../images/logo-twitter-16.png" alt="Пратите нас на Twitter-у." />
                <a>Twitter</a></span>
              </p>
            </div>
        </div>
      </div>
     </li>
    <li>
      <hr />
    </li>
  </ul>

  <div id="SupportedAndSupporters">
    <a href="http://validator.w3.org/check?uri=referer"
    title="W3C Markup Validation Service - Check the markup (HTML, XHTML, ...) of Web documents">
    <img src="http://www.w3.org/Icons/valid-xhtml10-blue.png"
    alt="W3C Markup Validation Service - Check the markup (HTML, XHTML, ...) of Web documents"/></a>
  </div>
</div>

<div id="news" style="margin: 2% 3% 0 0; height: 520px;">

  <div class="campaign" style="height: 200px; float: right; overflow: auto;">
    <h2 style="display: inline;">Скорашње објаве на блогу</h2>

    <p style="text-align:right">
      <a href="http://blogs.apache.org/OOo/">Све објаве</a>
    </p>

    <p>
      <em>21. август:</em><br /><a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_1">
      Apache OpenOffice 4.1.1 је објављен</a>
      <br />
      <em>29. април:</em><br /><a href="https://blogs.apache.org/OOo/entry/the_apache_openoffice_project_announce">
      Apache OpenOffice 4.1.0 је објављен</a>
      <br/>
      <em>28. април:</em><br /><a href="https://blogs.apache.org/OOo/entry/apache_openoffice_weekly_news_2">
      Apache OpenOffice недељне новости #2</a>
      <br/>
      <em>25. април:</em><br /><a href="https://blogs.apache.org/OOo/entry/apache_openoffice_weekly_news_1">
      Apache OpenOffice недељне новости #1</a>
      <br/>
      <em>17. април:</em><br /><a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces56">
      100 милиона преузимања</a>
      <br/>
      <em>31. децембар:</em><br /><a href="https://blogs.apache.org/OOo/entry/apache_openoffice_in_2013_a">
      Apache OpenOffice у 2013: годишњи преглед</a>
      <br/>
    </p>
  </div>

  <div id="all_news" style="height: 320px; float: left; overflow: auto;">
    <div class="campaign">
      <h2>Најновије вести</h2>

      <p style="text-align:right">
        <a href="news/index.html">Све вести</a>
      </p>
      <p></p>

      <h2>Apache OpenOffice 4.1.1 је објављен</h2>

      <p><em>21. август 2014:</em>
      Пројекат Apache OpenOffice објављује
      <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_1"
      title="Offical blog post about Apache OpenOffice 4.1.1">Званично издање верзије 4.1.1</a>.
      У <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.1+Release+Notes"
      title="Release Notes for Apache OpenOffice 4.1.1">Напоменама о издању</a> можете прочитати о свим новим могућностима, функцијама
      и језицима. <a href="https://www.openoffice.org/download/"
      title="Download Apache OpenOffice 4.1.1">Не пропустите да преузмете</a> ново издање.</p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.0 је објављен</h2>

      <p><em>29. април 2014:</em>
      Пројекат Apache OpenOffice објављује
      <a href="https://blogs.apache.org/OOo/entry/the_apache_openoffice_project_announce"
      title="Offical blog post about Apache OpenOffice 4.1.0">Званично издање верзије 4.1.0</a>.
      У <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1+Release+Notes"
      title="Release Notes for Apache OpenOffice 4.1.0">Напоменама о издању</a> можете прочитати о свим новим могућностима, функцијама
      и језицима. <a href="https://www.openoffice.org/download/"
      title="Download Apache OpenOffice 4.1.0">Не пропустите да преузмете</a> ново издање.</p>
    </div>

    <div class="campaign">
      <h2>100 милиона преузимања</h2>

      <p><em>17. април 2014:</em>
      Пројекат Apache OpenOffice са поносом вам преноси да је наш софтвер
      <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces56"
      title="Apache OpenOffice was downloaded 100 million times">преузиман преко 100 милиона пута</a>. Придружите нам се у
      слављу овог великог постигнућа!</p>
    </div>

    <div class="campaign">
      <h2>Италијански регион усваја OpenOffice, уштеда око 2 милиона евра</h2>

      <p><em>10. октобар 2013:</em>
      Управа италијанске регије Emilia-Romagna прећи ће на канцеларијски пакет отвореног кода ОпенОффице,
      <a href="https://joinup.ec.europa.eu/community/osor/news/openoffice-italian-emilia-romagna-save-2-million">
      и надају се да ће уштедети око 2 милиона евра.</a>.</p>
    </div>

    <div class="campaign">
      <h2>Волонтери, не аматери</h2>

      <p>
        <em>8. јануар 2013:</em>
        Apache OpenOffice се развија искључиво од стране волонтера.  Apache не плаћа за програмере, за преводиоце, за QА, за
    маркетинг, за УИ, за подршку, итд. Наравно, бићемо сретни ако примимо
        <a href="http://www.apache.org/foundation/contributing.html">донацију за Апач софтверску фондацију</a>,
		да би одржали да наши сервери раде и за сличне опште трошкове. Али, наши производи се у
		потпуности развијају од стране волонтера.
      </p>
      <p>Неки корисници су у почетку забринути овом изјавом:<br /><strong>Како бесплатан софтвер, развијен од стране волонтера, може
        уопште да буде добар?<br /></strong><a href="why/why_volunteers.html">Прочитајте одговор на то...</a>
      </p>
    </div>

  </div>

</div>

<!-- Every new element and text that is defined below the previous DIV will be actually dislayed wrapped below this DIV
(because of "clear: both" instead of floated around the previous DIVs. This is really needed. -->

<div style="clear: both;"></div>

</body>
</html>

